deny、綁定到一個金鑰——
從此閘道在每一次呼叫上拒絕那個工具,而無需更動你的代理程式碼。
本頁涵蓋拒絕清單使用情境,以及它逼你做的那一個決定:你封鎖在
哪個介面上——你公告的工具(inbound)還是模型發出的工具
呼叫(response)。關於完整的匹配詞彙與裁決語意,參見
規則綱要與
裁決。
1. 封鎖 AI 代理發出的一次工具呼叫
一條拒絕清單規則是一個防火牆政策能表達的最簡單的東西:依名稱匹配 一個工具,傳回deny。當一個工具對某個給定金鑰應該絕不觸發時就
使用它——shell.exec、*.delete、一個你不信任的社群插件——無論
引數為何。
在你的工作區主控台中,開啟一個政策(或
建立一個)並加入一條規則:
tool_name_glob 是一個小而區分大小寫的 glob——shell.* 捕捉
整個家族、*.delete 跨伺服器捕捉一個動詞、* 捕捉一切。不需要
引數子句:一個光禿禿的 glob + deny 會無條件封鎖該工具。只有當你
想在一般情況下允許該工具但拒絕某一種呼叫形狀時,才加入一個
引數子句。
2. Inbound vs response:挑選介面
一個 deny 可以落在請求生命週期中的兩個不同點,而其差別很重要。用stage 欄位固定該規則,或將它留空以涵蓋兩者。
inbound
你的代理在請求上向模型公告的工具(工具定義)。這裡的一個
deny 會在模型甚至無法選擇它之前剝除該工具——模型從不把它看作
一個選項。
response
模型在其回覆中發出的
tool_calls。這裡的一個 deny 會在模型
已決定要做的呼叫抵達工具之前捕捉它。inbound——模型無法呼叫它從未被
提供的東西,所以你避免了它選了一個工具卻被拒絕的浪費回合。當該
工具在某些請求中正當出現、而你想捕捉實際發出的呼叫時,或當你只
控制代理迴圈而非被公告的工具集時,使用 response(或將 stage
留空)。
3. 綁定政策並觀察它觸發
一個政策在某個金鑰解析到它之前什麼都不做。在主控台中透過在 金鑰上設定firewall_policy_id 來綁定,或將該政策設為工作區預設值。解析是:
金鑰綁定的政策(當它存在且已啟用時),否則是工作區預設值。(一個
已停用的綁定政策會回退到預設值——參見
管理政策。)
一旦綁定,inbound 介面上一個被拒絕的呼叫會傳回 HTTP 400,
帶有錯誤代碼 firewall_blocked 與一個指名工具的原因——例如
tool "shell.exec" blocked by firewall。該錯誤被標記為 skip-retry
(重跑同一個呼叫只會再次被封鎖),且不耗費任何模型權杖,因為一個
inbound 封鎖在上游呼叫之前觸發。一個
透過 MCP 閘道派發的 deny 會以一個
工具錯誤呈現,這樣模型會看見該拒絕並能做出反應。
4. Deny 是若干裁決之一
Deny 是拒絕清單上最直接了當的工具。當一個硬封鎖太過時,同一個 glob 可以攜帶一個較柔和的裁決:| 裁決 | 何時改用它而非 deny |
|---|---|
audit | 你想看見該工具觸發,但尚不封鎖它。 |
sanitize | 工具沒問題但它的引數可能攜帶密鑰/PII——遮罩 args,絕不遮罩工具結果。 |
pending_approval | 一個人類應該頻道外批准每一次呼叫。 |
cap_cost | 允許,直到某代理執行的花費跨越一個分(cents)上限。 |
deny 的那個子集。對於一個允許清單姿態(拒絕
一切、許可一個指名集合),將政策的 default_verdict 切換為 deny
並加入窄的 allow 規則——參見
工具允許清單。
5. 安全地推出
在你依賴它之前乾跑
在你依賴它之前乾跑
主控台 Test 分頁會對照一個樣本工具呼叫乾跑一個政策,並傳回
裁決、匹配到的規則與原因——不派發、不持久化任何東西。在綁定一個
金鑰之前,確認你的 glob 匹配你意指的工具(且只有那個工具)。
參見測試規則。
以影子模式進行即時衡量
以影子模式進行即時衡量
在政策上開啟影子模式,
每個強制執行的裁決——包括你的 deny——都會被降級為
audit,原因
加上前綴 [shadow] would …。你能精確衡量該 deny 會對照真實
流量封鎖什麼,然後關閉影子以強制執行。從真實流量找出工具名稱
從真實流量找出工具名稱
不確定要 glob 的精確工具名稱?Discovered Tools 檢視列出工作區
看過的每一個工具,標記為 covered 或 gap。直接從實際出現的名稱
撰寫你的 deny。參見分析。
在事件記錄中確認封鎖
在事件記錄中確認封鎖
每一次評估都會寫入一個帶有裁決、介面、工具與匹配規則的防火牆
事件。在你強制執行後,按裁決
deny 篩選
事件記錄,以看見規則在你
預期的呼叫上觸發。6. 誰能做什麼
所有拒絕清單設定都在主控台中於你的工作階段下執行 (/api/workspace/firewall/*):
| 動作 | 角色 |
|---|---|
| 讀取政策、預設集、discovered tools、Simulate | Member |
| 乾跑一個政策(Test) | Developer+ |
| 建立/編輯/刪除規則與政策 | Developer+ |
| 讀取事件記錄與執行彙整 | Developer+ |
相關
Glob 語法
shell.*、*.exec 與 *.shell.* 究竟如何匹配。工具允許清單
反向姿態:default-deny、許可一個指名集合。
驗證引數
只拒絕一種呼叫形狀,而非整個工具。
危險的工具呼叫
一個拒絕清單處理的威脅。
裁決
deny 與它較柔和的同類在線路上做什麼。
防火牆參考
完整的規則 + 匹配參考。
