1. 為何閘道是正確的審查點
大多數安全控制存在於應用程式中:程式庫包裝器、代理框架鉤子、 每個供應商的 SDK。這些控制有一個致命的結構性缺陷——一旦你增加第二個供應商、 切換框架,或讓代理自行安裝新技能,它們就會失效。 閘道沒有這些縫隙。你的代理發出的每次呼叫,無論模型、供應商或 工具能力如何到達,在任何東西到達上游之前都會穿越一個單一點。 這是你能做出保證的唯一層次:如果它發生了,閘道看見了它。 OrcaRouter 使用這個位置進行兩個不同的強制執行通道:- 防護欄審查文字——你的代理發送的提示詞和模型返回的回應。
防護欄封鎖返回 HTTP 400
guardrail_blocked且不消耗配額。 - 防火牆判斷動作——代理呼叫的工具、它觸及的 MCP 伺服器,
以及它報告的網路目的地。防火牆拒絕在 inbound 表面返回
HTTP 400
firewall_blocked,或在 MCP 表面返回工具錯誤, 這樣模型就能看到拒絕並對其做出推理。
https://api.orcarouter.ai/v1。
2. 四個強制執行表面
防火牆對照恰好一個表面評估每次工具呼叫—— 這是閘道在呼叫生命週期中看見它的那個點。| 表面 | 閘道看見什麼 |
|---|---|
inbound | 你的代理在請求上向模型公告的工具——工具定義。在這裡封鎖可防止模型選擇危險工具。 |
response | 模型在其回覆中發出的 tool_calls——模型在被派發之前選擇的動作。 |
mcp | 透過防火牆 MCP 閘道派發或透過 SDK 鉤子評估的 tools/call——派發時刻的呼叫。 |
egress | 工具報告的外向網路目的地(主機 / IP / CIDR)——SSRF 和資料外洩表面。 |
input(請求提示詞和訊息)
和 output(模型的回應文字)。一個請求可以通過所有這些。
3. 首次使用偵測
偵測發生在閘道,在首次使用時——而不是在安裝時。
代理自行安裝的工具、MCP 伺服器或技能,在其呼叫首次穿越閘道時被捕捉。
這是刻意設計的:閘道是能看見每個供應商、每個代理和每次呼叫的
唯一咽喉要道,無論能力如何到達。等待安裝時偵測會遺漏在執行期載入的能力。
4. 閘道看不見什麼
審查保證涵蓋穿越閘道的呼叫。它不延伸到你的代理 完全在其自己行程內執行的工具——一個讀取本地文件、 呼叫程式庫函數或在不向閘道發送訊息的情況下執行子行程的工具。 這是一個誠實的邊界,而不是設計缺陷。設計目標是使閘道 成為重要呼叫的稽核路徑——那些有真實世界後果的呼叫:| 它在哪裡執行 | 閘道看見它嗎? | 如何填補缺口 |
|---|---|---|
模型中介的工具呼叫(模型發出 tool_calls) | 是——response 表面 | 不需要採取行動;已受治理。 |
| 透過防火牆 MCP 閘道的 MCP 派發 | 是——mcp 表面 | 不需要採取行動;已受治理。 |
你的代理在派發之前呼叫 POST /api/v1/firewall/evaluate | 是——內聯評估 | 已透過評估鉤子受治理。 |
| 工具在行程內執行,沒有閘道聯繫 | 否 | 透過閘道路由 MCP 派發和網路呼叫工具,而不是直接從代理行程呼叫它們。 |
5. 審查資料的角色控管
在你的工作區內,審查表面的存取是角色範圍的:| 能力 | 最低角色 |
|---|---|
| 讀取防護欄匹配、防火牆政策和已發現工具 | Member |
| 讀取防火牆 Events & Runs 動態 | Developer |
| 建立或更改防護欄、防火牆政策、規則 | Developer |
合規性匯出、防火牆閘道範圍金鑰明文、is_firewall_gateway 金鑰旗標 | Admin |
防火牆閘道範圍的權杖(用於呼叫
/api/v1/firewall/evaluate 和 MCP 閘道的金鑰)
需要 Admin 角色才能建立。普通 API 金鑰在這些路由上會得到 403。6. 下一步去哪裡
控制堆疊
完整請求路徑——金鑰、防護欄、模型、防火牆、稽核——一張圖。
共同責任
閘道保護什麼以及什麼留在你的應用程式中。
代理防火牆
深入撰寫政策、設定表面和治理工具呼叫。
