1. 为什么网关是正确的检查点
大多数安全控制存在于应用中:库包装器、智能体框架 hook、 每个提供商的 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 hook 评估的 tools/call——在派发时刻的调用。 |
egress | 工具报告的出站网络目的地(host/IP/CIDR)——SSRF 和数据外泄的执行面。 |
input(请求提示词
和消息)和 output(模型的响应文本)。一个请求可以通过所有这些。
3. 首次使用检测
检测在网关上发生,于首次使用时——而不是在安装时。
智能体自安装的工具、MCP 服务器或技能,在其调用首次穿越网关
时被捕获。这是有意为之:网关是唯一一个能看到每个提供商、每个
智能体和每次调用的咽喉点,无论能力如何到达。等待安装时检测
会错过运行时加载的能力。
4. 网关无法看到什么
检查保证涵盖穿越网关的调用。它不延伸到你的智能体完全在 其自己进程内运行的工具——读取本地文件、调用库函数或在 不向网关发送任何消息的情况下执行子进程的工具。 这是一个诚实的边界,不是设计缺陷。设计目标是使网关成为 重要调用的受审计路径——具有真实世界后果的那些:| 运行位置 | 网关能看到? | 如何填补空白 |
|---|---|---|
模型中介的工具调用(模型发出 tool_calls) | 是——response 执行面 | 无需操作;已受治理。 |
| 通过防火墙 MCP 网关的 MCP 派发 | 是——mcp 执行面 | 无需操作;已受治理。 |
你的智能体在派发之前调用 POST /api/v1/firewall/evaluate | 是——内联评估 | 已通过 evaluate hook 受治理。 |
| 工具在进程内运行,无网关接触 | 否 | 将 MCP 派发和网络调用工具通过网关路由,而不是直接从智能体进程调用它们。 |
5. 检查数据的角色门控
访问检查执行面在你的工作区内受角色限定:| 能力 | 最低角色 |
|---|---|
| 读取防护栏匹配、防火墙策略和已发现工具 | Member |
| 读取防火墙 Events & Runs 信息流 | Developer |
| 创建或更改防护栏、防火墙策略、规则 | Developer |
合规导出、防火墙网关限定密钥明文、is_firewall_gateway 密钥标志 | Admin |
防火墙网关限定令牌(用于调用
/api/v1/firewall/evaluate 和 MCP
网关的密钥)需要 Admin 角色才能创建。普通 API 密钥在那些路由上
会得到 403。6. 下一步去哪里
控制栈
完整请求路径——密钥、防护栏、模型、防火墙、审计——一张图。
共同责任
网关保护什么以及什么仍在你的应用中。
智能体防火墙
深入编写策略、配置执行面和治理工具调用。
