deny、sanitize、[EMAIL]。本頁是這些詞的查找
表:每個的含義、它對呼叫做什麼,以及去哪裡查
完整機制。在你撰寫規則或分類事件動態時保持開啟。
兩個控制平面產生兩套詞彙。防火牆
治理工具動作並發出一個裁決。防護欄
篩查提示詞和回應文字並發出一個動作,以及在遮罩時發出一個
型別化的遮罩標籤。它們從不共用一個詞——防護欄從不說 deny,
防火牆從不說 mask。
1. 防火牆裁決詞彙表
一條防火牆規則(或政策的default_verdict)將每個工具呼叫解析為
這六個裁決中的確切一個。引擎按優先順序遍歷規則,
第一個匹配者勝出,若無匹配則回退到預設值。
allow — 讓呼叫通過
allow — 讓呼叫通過
呼叫進行到工具。仍記錄為防火牆事件,所以它出現
在 Runs 和事件動態中。這是你想要的,對於代理被
明確信任使用的工具。
audit — 允許,但記錄供審查
audit — 允許,但記錄供審查
與
allow 流量相同,但被標記為你想觀察的東西。
它是推薦的 default_verdict:觀察一切、不封鎖任何東西,
直到你的規則被調校好。balanced 自主等級以僅標記(audit)
出貨 PII Shield 防護欄,所以 PII 被記錄而不保留
呼叫。deny — 封鎖呼叫
deny — 封鎖呼叫
呼叫從不到達工具。在
inbound 表面上這返回
HTTP 400 firewall_blocked;透過 MCP 閘道它以一個
工具錯誤(firewall deny: <reason>)返回,以便模型可以反應而非
崩潰。標記為 skip-retry。消耗無模型權杖。sanitize — 修訂引數,轉發清理後的呼叫
sanitize — 修訂引數,轉發清理後的呼叫
用
[redacted:<preset>] 權杖替換工具呼叫引數中
匹配到的子字串(密鑰、PII),然後轉發帶有清理後
引數的呼叫。它只修訂引數——絕不修訂工具返回的內容。
在 inbound 表面上,那裡還沒有
呼叫時引數,sanitize 升級為 deny。pending_approval — 保留供人工審查
pending_approval — 保留供人工審查
呼叫被排入佇列供審查,代理得到一個攜帶
審批 id 的保留回應(HTTP 400
firewall_approval_pending)。審查者
在控制台或透過 HMAC webhook 回呼解析它;代理輪詢
該 id 並用單次使用的審批標頭重新提交一次。參見
人工審批。cap_cost — 一旦執行超支就拒絕
cap_cost — 一旦執行超支就拒絕
撰寫為一條帶有每規則分數上限的規則。當代理執行
在預算之下時它解析為
allow,當累計支出
越過上限時解析為 deny——所以事件顯示 allow 或 deny,而非字面詞
cap_cost。失控迴圈的斷路器。預設裁決
default_verdict 只接受三個非互動裁決:
| 值 | 無規則匹配時的含義 |
|---|---|
allow | 靜默地允許未覆蓋的工具呼叫。 |
audit | 允許但記錄——預設。 |
deny | 封鎖任何沒有規則明確允許的東西(預設拒絕姿態)。 |
tight 自主等級設定 default_verdict: deny;balanced 和
出貨預設值使用 audit。
2. 防護欄動作
一條防護欄規則觸發五個動作之一。它們是文字平面 等同於裁決的東西——而防護欄規則從不產生防火牆裁決。| 動作 | 它做什麼 | 配額 |
|---|---|---|
block | 用 HTTP 400 guardrail_blocked 拒絕整個請求。 | 無——輸入封鎖在計量前觸發;輸出封鎖退還。 |
mask | 把每個匹配修訂為型別化標籤(參見 §3)並轉發清理後的文字。 | 正常——呼叫進行。 |
flag | 僅記錄。記錄一個匹配;不改變流量任何東西。 | 正常。 |
annotate | 非阻塞。在不遮罩或封鎖文字的情況下,向請求附加一個人類可讀的註記(作為安全通知向上游注入)。 | 正常。 |
spotlight | 非阻塞。將匹配到的(不可信)文字包進分隔符並告訴模型將分隔區域視為資料、絕非指令——提示注入「spotlighting」防禦。 | 正常。 |
pii 規則可以用 entity_actions 對不同實體套用不同
動作——遮罩電子郵件和電話,但在 credit_card 和
ssn 上封鎖,從一條規則。鍵必須是該規則上啟用的實體;值必須是
block / mask / flag / annotate。
3. 遮罩標籤詞彙表
在mask 動作上,每個匹配到的實體被就地替換為一個型別化標籤——
[<UPPERCASE_ENTITY_NAME>]——所以模型(輸入階段)或呼叫者(輸出
階段)看到資料的形狀而非值。遮罩在兩個
階段上執行,包括串流回應:一個權杖感知的串流掃描器遮罩
跨越區塊邊界的匹配,在它們到達客戶端之前。
| 實體 | 標籤 |
|---|---|
email | [EMAIL] |
phone | [PHONE] |
credit_card | [CREDIT_CARD] |
ssn | [SSN] |
ip | [IP] |
iban | [IBAN] |
mac_address | [MAC_ADDRESS] |
jwt | [JWT] |
aws_access_key | [AWS_ACCESS_KEY] |
api_key_openai | [API_KEY_OPENAI] |
bitcoin_address | [BITCOIN_ADDRESS] |
| 實體 | 標籤 | 地區 |
|---|---|---|
jp_mynumber | [JP_MYNUMBER] | 日本 |
kr_rrn | [KR_RRN] | 南韓 |
cn_resident_id | [CN_RESIDENT_ID] | 中國 |
自訂實體遵循相同的慣例。一個名為
employee_id 的自訂實體
遮罩為 [EMPLOYEE_ID],除非你設定一個明確的 mask_with
替換。每條規則最多 25 個自訂實體,每個是一個 RE2 正規表示式,附帶一個
可選的 luhn 校驗和。參見PII 偵測。4. 一個演練範例
一個單一的db.query 工具呼叫,從頭讀到尾,觸及兩套詞彙:
sanitize 清理了工具引數;防護欄 mask
清理了提示詞文字;[EMAIL] 標籤是模型在
地址位置看到的東西。同一個請求、三個不同層次、本
詞彙表中的三個詞。
5. 你會在裁決旁看到的姿態詞
這些不是裁決或動作,但它們決定一個裁決是否被強制執行—— 所以它們出現在相同的事件和設定視圖中。| 詞 | 平面 | 含義 |
|---|---|---|
| 影子模式 | 防火牆 | 每政策旗標。把每個強制執行裁決降級為 audit,原因加 [shadow] would … 前綴。 |
| 觀察模式 | 防火牆 | 工作區設定。當無政策解析時,允許呼叫但記錄為覆蓋缺口(Discovered tools)。 |
| 強制執行 | 防火牆 | 影子關閉 + 附加政策:裁決生效。 |
| 失敗開放(Fail-open) | 防護欄 | 進階規則(llm_judge、grounding、external)的預設——逾時被觀察,請求繼續。每規則翻轉為失敗封閉。 |
| 記錄原始內容 | 防護欄 | 預設關閉。關閉時,匹配記錄一條規則觸發了但不記錄匹配到的子字串。 |
6. 每個詞在哪裡定義
| 表面 | 詞彙 | 主頁 |
|---|---|---|
| 防火牆政策 | allow audit deny sanitize pending_approval cap_cost | 防火牆 |
| 防火牆規則匹配 | tool_name_glob、args_match、egress、sequence | 防火牆規則 |
| 防護欄規則 | block mask flag annotate spotlight | 防護欄 |
| 防護欄 PII | 實體名稱 + 遮罩標籤 | 防護欄 |
| MCP 與技能 | 技能風險等級、quarantine / block 模式 | 防火牆 MCP、防火牆技能 |
| HTTP 錯誤主體 | guardrail_blocked、firewall_blocked、firewall_approval_pending | 錯誤代碼 |
7. 相關閱讀
為何被攔下?
將單次被拒絕的呼叫追溯到攔下它的確切規則和裁決。
強制執行模式
audit、shadow、observe 和 enforce 如何關聯——以及如何安全推出。
防護欄與防火牆
哪個平面擁有哪個決定,以及為何一個請求能同時穿過兩者。
危險的工具呼叫
deny 和 sanitize 裁決存在以攔下的威脅。