跳转到主要内容
OrcaRouter 以固定顺序对每个请求应用四个层。每个层都是独立的、 工作区限定的,并且无需修改代码就能附加到 API 密钥上。本页 带一个请求按顺序走过所有四个层,然后讲解解析顺序和 故障开放/故障关闭行为。 更广泛的介绍请参见使用 OrcaRouter 保护 AI 智能体

1. 第 1 层 — 限定范围的 API 密钥

密钥是第一道门。在检查任何内容或调用任何模型之前, 网关解析调用密钥并决定请求是否被允许。 密钥携带的内容:
  • model_limits — 密钥可以调用的模型集合。对列表之外模型 的请求会立即被拒绝。
  • allow_ips — 可选的 IP 允许列表。来自未列出来源的请求 会被拒绝。
  • credit_limit_usd — 硬性消费上限。会将密钥推过上限的 请求会被拒绝。
  • expiry — 硬性到期日期。已过期的密钥会被拒绝。
  • environment — 一个标签(productionstagingdev 等), 用于按部署环境组织和识别密钥。
  • guardrail_id — 绑定到此密钥的防护栏策略(参见第 2 层和第 4 层)。
  • firewall_policy_id — 绑定到此密钥的防火墙策略(参见第 3 层)。
  • is_firewall_gateway — 将密钥标记为防火墙网关限定令牌; evaluate 和 MCP 网关路由需要此标志。
密钥验证失败的请求永远不会到达模型——也不会被计量。 配置位置: 控制台 → API Keys,或 token API。创建或编辑需要 Developer+is_firewall_gateway 和明文密钥读取需要 Admin 完整的密钥模型请参见范围、密钥、策略和工作区

2. 第 2 层 — 输入防护栏

一旦密钥验证通过,网关就会在上游模型调用之前,对请求 文本运行绑定防护栏的输入阶段规则 它看到什么: 调用者提交的消息。(从注册表提示词注入的提示词 稍后在路由阶段追加;输入规则看不到它。) 可用的规则类型: keywordregexpiimax_charsexternalllm_judgegrounding 规则可以产生的动作:
动作发生什么
block请求被拒绝——HTTP 400 guardrail_blocked。不消耗任何配额。标记为 skip-retry。
mask匹配项被脱敏(例如 jane@acme.com[EMAIL])。净化后的文本继续到模型。
flag匹配被记录;流量不变。
在此阶段的 block 意味着模型永远不会被调用。成本:零。 调用者看到一个结构化错误,命名触发的防护栏和规则。 配置位置: 控制台 → Guardrails,或防护栏 API。创建或修改需要 Developer+。完整规则参考请参见防护栏

3. 第 3 层 — 模型运行

如果密钥有效且输入防护栏通过,网关将请求转发到上游模型。 这是唯一没有可配置执行的层——它只是模型在做它的工作。 防火墙对模型产生的动作进行操作(下面的第 3 层 → 第 4 层), 而不是对模型本身。路由、回退和负载均衡在此透明地发生。

4. 第 4 层 — 智能体防火墙(工具调用和出站流量)

在模型响应后——或内联地,随着工具调用的发出——智能体防火墙 判断模型请求的每一个动作。 四个执行面:
执行面防火墙看到什么
inbound智能体向模型声明的工具定义。在模型选择之前就拦截危险工具。
response模型在其回复中发出的 tool_calls
mcp通过防火墙 MCP 网关派发的或通过 evaluate hook 评估的 tools/call
egress工具报告的出站网络目的地(host/IP/CIDR)——SSRF 和数据外泄的执行面。
规则(或默认值)可以产生的判定:
判定它做什么
allow调用继续。被记录。
audit调用继续;记录以供审查。默认的 default_verdict
deny调用被拦截——inbound 执行面上 HTTP 400 firewall_blockedmcp 上为工具错误。
sanitize从工具参数中脱敏匹配的子串;净化后的调用继续。在 inbound 上(还没有参数),升级为 deny。
pending_approval调用被挂起;带外审查者批准或拒绝;智能体使用一次性审批令牌重新提交。
cap_cost一旦智能体运行的累积消费超过每条规则的分上限,就拒绝。
inbound 执行面上的 deny 不消耗模型令牌——拦截在上游调用之前 触发。pending_approval 挂起返回 HTTP 400 firewall_approval_pending, 带有客户端轮询的审批 id。 配置位置: 控制台 → Firewall,或防火墙 API。创建或修改策略 和规则需要 Developer+。完整规则语言请参见防火墙防火墙规则

5. 第 5 层 — 输出防护栏

在模型响应之后(以及任何工具调用循环完成之后),网关在响应 到达调用者之前,对响应文本运行绑定防护栏的输出阶段规则 相同的规则类型和动作适用,与第 2 层相同。输出 block 返回 HTTP 400 guardrail_blocked,并退回预先扣除的配额——调用者 不付任何费用。
流式传输和输出脱敏。 block 动作在流式和非流式响应上都会 执行——在流式响应上,扫描器会中途切断流并发出替换消息。输出上的 mask 动作目前仅适用于非流式响应;在流式响应上,原始 chunk 会未经脱敏地放行。在依赖它之前,先在防护栏沙箱中验证你的 阶段/流式组合。

6. 第 6 层 — 审计

每一次匹配、判定和审批决策都被写入审计追踪,关联到触发它的 智能体运行和会话。这不是一个单独的执行步骤——它与第 2-5 层并行 运行——但它是使其他层负责任的层。 被记录的内容:
  • 防护栏匹配:规则类型、动作、阶段、详情字符串,以及(如果 启用了Log raw content)匹配的子串。
  • 防火墙事件:执行面、工具名、判定、匹配的规则、原因码、 风险因子,以及调用所属的运行/会话。
  • 审批决策:谁批准或拒绝、何时,以及底层规则是否在挂起和 决策之间发生了变化。
  • 策略变更:每次创建、更新、删除和自治级别变更都会写入一条 版本化审计行。
审查位置: 控制台 → Guardrails → Matches;控制台 → Firewall → Events、Runs & Sessions、Audit。防护栏 Matches 信息流对任何 工作区 Member 开放;防火墙 EventsRuns & Sessions 信息流需要 Developer+

7. 总结表

它控制什么它看到什么命中时的结果配置位置
1. 限定范围的密钥身份、模型访问、消费、IP、到期请求的认证令牌任何运行前 HTTP 4xx;不计量控制台 → API Keys(Developer+)
2. 输入防护栏请求文本内容调用者的消息Block(HTTP 400 guardrail_blocked,不收费)、mask 或 flag控制台 → Guardrails(Developer+)
3. 模型路由/通道配置
4. 智能体防火墙工具调用、MCP 派发、出站流量工具名、参数、目的地allow / audit / deny / sanitize / pending_approval / cap_cost控制台 → Firewall(Developer+)
5. 输出防护栏响应文本内容模型的回复Block(HTTP 400,配额退回)、mask 或 flag控制台 → 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 judge、grounding 和测试沙箱。

防火墙

策略模型、判定、执行面、影子模式、HITL 审批和异常检测。

防火墙规则

规则匹配语言——工具 glob、参数子句、出站列表和 sanitizer。

防护栏 vs. 防火墙

哪个层捕获哪种威胁——以及何时你需要两者都用。

范围、密钥和策略

完整密钥模型:密钥携带什么以及策略如何解析。

执行模式

故障开放 vs. 故障关闭——完整决策树。
通过 OrcaRouter 的每一次调用都按顺序通过所有四个执行层——密钥验证、 输入筛查、防火墙判断、输出筛查——并且在所有这些层面都有完整的 审计追踪写入。