https://api.orcarouter.ai/v1/...。
新到這裡?先套用
balanced 基準
並觀察你的代理做什麼
一天。本頁是下一步:把觀察轉化為強制執行,
為一個你無法保姆式照看的代理。1. 安全自主代理配方
一個安全的自主代理需要四樣聊天機器人不需要的東西:一個硬性成本上限
一條
cap_cost 規則會在 run 的累計花費跨越你的上限後
拒絕該 run——為一個停不下來的迴圈設的斷路器。飆升偵測
異常偵測會學習代理正常的週小時形狀,並
標記溜過靜態規則的速率與成本飆升。
對危險呼叫的審批
一個
pending_approval 裁決會為一個人類保留破壞性或
不可逆的工具呼叫,而不是信任代理會小心。一把會過期的金鑰
把代理的金鑰範圍限定到一個到期日與一個額度上限,這樣一個
被遺忘的實驗就無法永遠運行——或花費。
2. 為每次 run 設定成本上限
一個失控的迴圈第一個炸掉的是你的預算。一條cap_cost 規則是
一個嚴格的預先檢查成本上限:當它匹配時,閘道會估算
請求的成本,並在該 run 的累計花費會超出上限後在派發前
拒絕——所以一個超出預算的呼叫永遠不會抵達供應商。
該上限是run 範圍的。閘道會把整個代理 run 的先前花費
加總,所以一個已經燒掉大部分預算的長 run,即使下一個
個別呼叫很便宜,也會被拒絕。那就是讓它成為一個
斷路器而非一個逐請求限制的原因。
在你的防火牆政策中加入一條萬用字元規則:
cap_cost_cents 以美元分計)。
裁決在預算內時解析為 allow,一旦估算會跨越它就解析為 deny。大多數內建的防火牆範本(Coding、
Support、RAG、Data、DevOps、Browser)都出貨一個正是
這樣的逐 run 成本上限——套用一個並編輯該上限。
3. 對照一個習得基準偵測飆升
一個上限阻止災難;異常偵測會在怪異變成 災難之前捕捉它。防火牆會學習每個工作區正常的 工具使用形狀——一個按週小時分桶的 14 天滾動平均, 所以週二 14:00 的流量會對照週二 14:00 的歷史比較,而非一個 平坦的每日均值——並在一個檢視者可讀的動態上浮現偏差:rate_spike —— 一個工具的觸發遠高於其常態
rate_spike —— 一個工具的觸發遠高於其常態
每個工具的呼叫量會對照習得基準評分。「一小時內 143
次
db.query 呼叫對照基準的 8」即使每個個別呼叫都被
允許也會浮現。burn_spike —— 成本爬升超過習得花費
burn_spike —— 成本爬升超過習得花費
同一個基準,套用於花費而非次數——一個 run 突然
燒得遠比這個小時平常多。
retry_loop —— 一個代理反覆敲打一個失敗的工具
retry_loop —— 一個代理反覆敲打一個失敗的工具
一個卡在重試同一個壞掉呼叫的自主代理的
特徵。參見 excessive-agency。
novel_path —— 一次從未見過的工具轉移
novel_path —— 一次從未見過的工具轉移
這個工作區從未做過的一次工具到工具的躍遷——一個
代理走向新地方的形狀。
cap_cost 規則搭配,這樣一個同時超出預算的飆升就會被阻止,
而不只是被注意到。
4. 為一個人類保留危險呼叫
你無法審查一個自主代理發出的每個呼叫——但你可以讓 它在那少數重要的呼叫之前停下並詢問。一個pending_approval
裁決會在頻道外保留一個工具呼叫:
- 代理發出,比方說,一個
payments.transfer呼叫。規則匹配, 引擎回傳 HTTP 400firewall_approval_pending,帶一個 審批 id——該呼叫永遠不會抵達工具。 - 一位審查者從主控台(Developer+)解決它,或你自己的
系統透過一個 HMAC 簽署的 webhook 回呼到
POST /api/v1/firewall/approvals/:id/callback解決它。 - 代理輪詢
GET /api/v1/firewall/approvals/:id;一旦獲批它就 帶著一個一次性的X-OrcaRouter-Firewall-Approval標頭重新提交原始 呼叫,而閘道讓它通過那一次。
5. 給代理一把會過期的金鑰
那個比每個政策都活得久的控制是金鑰本身。一個 自主代理應該得到一把範圍限定的金鑰,而非你的預設金鑰。在你鑄造它時 設定這些欄位(console → keys,或 token API):| 欄位 | 設為 | 為什麼 |
|---|---|---|
expired_time | 一個 Unix 時間戳 | 實驗結束;金鑰隨之而亡。-1 表示永不——別在這裡用那個。 |
credit_limit_usd | 一個美元上限 | 金鑰上獨立於 run 上限的一個花費上限。0 表示無限制。 |
firewall_policy_id | 上方你的政策 | 把 cap_cost + 審批規則綁定到這把金鑰。 |
allow_ips | 代理的外送 IP | 一把外洩的金鑰從其他任何地方都沒用。 |
environment 標籤,這樣金鑰——以及它在
Events 與 Matches 中所做的一切——都可歸因到這個代理。一把會過期、
有額度上限、IP 固定的金鑰是最後一道防線:即使每個政策都
不知怎地被繞過,爆炸半徑也受時間與美元所限。
金鑰設定是一個 console / token-API 動作,且有角色管控。
讀取一把防火牆閘道金鑰的明文需要 Admin+。
6. 把它組合起來
一個加固過的自主代理最終會有一個防火牆政策與一把 範圍限定金鑰:| 層次 | 控制 | 捕捉 |
|---|---|---|
| 預算 | cap_cost 規則,run 範圍 | 失控迴圈、denial-of-wallet |
| 行為 | Anomaly feed(rate / burn / retry / novel) | 怪異但被允許的 |
| 信任 | 破壞性工具上的 pending_approval | 不可逆的動作 |
| 範圍 | 會過期、有額度上限、IP 固定的金鑰 | 被遺忘或外洩的金鑰 |
7. 下一步
加固一個 MCP 代理
治理一個透過 MCP 伺服器觸及工具的代理。
停止外洩
為一個擷取自己 URL 的代理設定 egress 規則。
強制執行模式
Observe → shadow → enforce,安全的上線。
防火牆規則
上方每條規則背後的匹配語言。
