跳轉到主要內容
OrcaRouter 以固定順序對每個請求套用四個層次。每個層次都是獨立的、 工作區範圍的,並且無需更改程式碼即可附加到 API 金鑰。本頁引導一個 請求按順序穿越所有四個層次,然後涵蓋解析順序和失敗開放/失敗關閉行為。 如需更廣泛的介紹,請參見以 OrcaRouter 保護 AI 代理

1. 第一層——範圍化的 API 金鑰

金鑰是第一道關卡。在任何內容被審查或任何模型被呼叫之前, 閘道會解析呼叫的金鑰並決定請求是否被允許。 金鑰攜帶的內容:
  • model_limits——金鑰可以呼叫的模型集合。對清單之外的模型的請求會立即被拒絕。
  • allow_ips——可選的 IP 允許清單。來自未列出來源的請求會被拒絕。
  • credit_limit_usd——硬性支出上限。會將金鑰推過上限的請求會被拒絕。
  • expiry——硬性到期日。過期的金鑰會被拒絕。
  • environment——一個標籤(productionstagingdev,……)用於按部署環境組織和識別金鑰。
  • guardrail_id——綁定到此金鑰的防護欄政策(見第二層和第四層)。
  • firewall_policy_id——綁定到此金鑰的防火牆政策(見第三層)。
  • is_firewall_gateway——將金鑰標記為防火牆閘道範圍的權杖;評估和 MCP 閘道路由需要此標記。
金鑰驗證失敗的請求永遠不會到達模型——也永遠不會被計量。 設定位置: 主控台 → API Keys,或 token API。需要 Developer+ 才能建立或編輯; is_firewall_gateway 和明文金鑰讀取需要 Admin 完整的金鑰模型請參見範圍、金鑰、政策和工作區

2. 第二層——輸入防護欄

一旦金鑰被驗證,閘道就會對請求文字執行綁定防護欄的輸入階段規則——在任何上游模型呼叫之前。 它看見什麼: 呼叫者提交的訊息。(從登錄檔提示詞注入的提示詞稍後在路由階段附加;輸入規則看不到它。) 可用的規則類型: keywordregexpiimax_charsexternalllm_judgegrounding 規則可產生的動作:
動作發生什麼
block請求被拒絕——HTTP 400 guardrail_blocked。不收取配額。標記為 skip-retry。
mask匹配項被遮罩(例如 jane@acme.com[EMAIL])。淨化後的文字繼續傳送給模型。
flag匹配項被記錄;流量不受影響。
此階段的 block 意味著模型永遠不會被呼叫。成本:零。呼叫者看到一個命名了防護欄和觸發規則的結構化錯誤。 設定位置: 主控台 → Guardrails,或防護欄 API。需要 Developer+ 才能建立或修改。 完整規則參考請參見防護欄

3. 第三層——模型執行

如果金鑰有效且輸入防護欄通過,閘道就會將請求轉發給上游模型。 這是唯一沒有可設定強制執行的層次——它只是模型在做它的工作。 防火牆對模型產生的動作(下面的第三層 → 第四層)進行操作,而不是對模型本身。 路由、回退和負載平衡在這裡透明地發生。

4. 第四層——代理防火牆(工具呼叫和外向請求)

在模型回應後——或內聯地,當工具呼叫被發出時——代理防火牆判斷模型請求的每個動作。 四個強制執行表面:
表面防火牆看見什麼
inbound代理向模型公告的工具定義。在模型能夠選擇危險工具之前封鎖它。
response模型在其回覆中發出的 tool_calls
mcp透過防火牆 MCP 閘道或評估鉤子派發的 tools/call
egress工具報告的外向網路目的地(主機 / IP / CIDR)——SSRF 和資料外洩表面。
規則(或預設值)可產生的裁決:
裁決作用
allow呼叫繼續。被記錄。
audit呼叫繼續;被記錄以供審查。預設的 default_verdict
deny呼叫被封鎖——inbound 表面上 HTTP 400 firewall_blockedmcp 上的工具錯誤。
sanitize匹配到的子字串從工具引數中被遮罩;清理後的呼叫繼續。在 inbound 上(還沒有引數時),升級為拒絕。
pending_approval呼叫被保留;頻道外的審查者批准或拒絕;代理帶著一次性審批權杖重新提交。
cap_cost一旦代理執行的累計支出超過每規則分上限就拒絕。
inbound 表面上的 deny 不消耗模型權杖——封鎖在上游呼叫之前觸發。 pending_approval 保留返回 HTTP 400 firewall_approval_pending,帶有客戶端輪詢的審批 id。 設定位置: 主控台 → Firewall,或防火牆 API。需要 Developer+ 才能建立或修改政策和規則。 完整規則語言請參見防火牆防火牆規則

5. 第五層——輸出防護欄

在模型回應後(以及任何工具呼叫週期完成後),閘道在回應文字到達呼叫者之前 執行綁定防護欄的輸出階段規則 相同的規則類型和動作適用於第二層。輸出 block 返回 HTTP 400 guardrail_blocked 並退還預先消耗的配額——呼叫者不支付任何費用。
串流和輸出遮罩。 block 動作在串流和非串流回應上都會被強制執行—— 在串流上,掃描器會在傳輸途中切斷並發出替代訊息。輸出上的 mask 動作 目前僅適用於非串流回應;在串流回應上,原始 chunk 會未遮罩地通過。 在依賴它之前,請在防護欄沙盒中驗證你的階段/串流組合。

6. 第六層——稽核

每次匹配、裁決和審批決策都會被寫入稽核軌跡,與造成它的代理執行和工作階段相關聯。 這不是一個單獨的強制執行步驟——它與第 2–5 層並行執行——但它是使其他層次負責的層次。 被記錄的內容:
  • 防護欄匹配:規則類型、動作、階段、詳細字串,以及(如果記錄原始內容已啟用)匹配到的子字串。
  • 防火牆事件:表面、工具名稱、裁決、匹配規則、原因代碼、風險因子,以及呼叫所屬的執行/工作階段。
  • 審批決策:誰批准或拒絕、何時,以及在保留和決策之間底層規則是否更改了。
  • 政策更改:每次建立、更新、刪除和自主等級更改都會寫入一個版本化的稽核行。
查看位置: 主控台 → Guardrails → Matches;主控台 → Firewall → Events、Runs & Sessions、Audit。 防護欄Matches 動態對任何工作區成員開放;防火牆EventsRuns & Sessions 動態需要 Developer+

7. 摘要表格

層次它控制什麼它看見什麼命中時的結果設定位置
1. 範圍化金鑰身份、模型存取、支出、IP、到期請求的驗證權杖在任何東西執行前 HTTP 4xx;不計量主控台 → API Keys(Developer+)
2. 輸入防護欄請求文字內容呼叫者的訊息封鎖(HTTP 400 guardrail_blocked,不收費)、遮罩或標記主控台 → Guardrails(Developer+)
3. 模型路由 / 通道設定
4. 代理防火牆工具呼叫、MCP 派發、外向請求工具名稱、引數、目的地allow / audit / deny / sanitize / pending_approval / cap_cost主控台 → Firewall(Developer+)
5. 輸出防護欄回應文字內容模型的回覆封鎖(HTTP 400,配額退還)、遮罩或標記主控台 → Guardrails(Developer+)
6. 稽核歸因和軌跡以上所有不可變的日誌條目主控台 → Matches(Member)/ Events & Runs(Developer+)

8. 政策解析順序

對於任何請求,作用中的防護欄和防火牆政策都是獨立解析的:
  1. 金鑰附加——如果金鑰攜帶明確的 guardrail_idfirewall_policy_id, 該政策就會綁定(當它存在且已啟用時)。
  2. 工作區預設值——如果金鑰沒有附加,則套用工作區已啟用的 is_default 防護欄或政策。
  3. 兩者皆無——不強制執行。請求與從未啟用此功能的工作區位元組完全一致。
兩個平面在附加政策被停用時有所不同:停用的防護欄附加會為該金鑰關閉防護欄 (不回退),而停用的防火牆附加則會回退到工作區預設防火牆政策。 每個工作區最多只能有一個防護欄和一個防火牆政策作為預設值。 晉升新預設值會在同一交易中降級舊的。

9. 失敗開放和失敗關閉

兩種行為——適用於不同情況。失敗開放(暫時性錯誤): 如果政策解析遇到暫時性錯誤——資料庫抖動、 去往外部廠商途中的網路抖動——閘道會降級為不強制執行,而不是讓流量中斷。 安全性降級;可用性得以保留。當遺漏一次檢查對你的政策來說是不可接受的時, 在 externalllm_judge 規則上設定 fail_open: false失敗關閉(模稜兩可的情況):強制執行會使規則失效的地方, 引擎失敗關閉:具有無法解析目的地的外向報告被拒絕;無法觸及的審批儲存 保留呼叫而不是通過它;無法解析其擁有權的技能被封鎖。可用性在正常路徑上得以保留; 在重要的邊緣情況下,安全性不會被靜默跳過。
完整決策樹請參見強制執行模式, 中繼路徑機制請參見OrcaRouter 如何審查請求

10. 深入研究

防護欄

完整規則參考——類型、動作、PII 實體、LLM 評審、接地和測試沙盒。

防火牆

政策模型、裁決、表面、影子模式、HITL 審批和異常偵測。

防火牆規則

規則匹配語言——工具 glob、引數子句、外向清單和淨化器。

防護欄與防火牆

哪個層次捕捉哪個威脅——以及何時你需要兩者。

範圍、金鑰和政策

完整的金鑰模型:金鑰攜帶什麼以及政策如何解析。

強制執行模式

失敗開放與失敗關閉——完整決策樹。
透過 OrcaRouter 的每次呼叫都按順序通過所有四個強制執行層次——金鑰驗證、 輸入審查、防火牆判斷、輸出審查——並在所有層次寫入完整的稽核軌跡。