1. 什么使智能体过度有能力
当工作区中的每个智能体共享一个密钥,或者密钥发放一次后从未 重新审视时,能力会向上漂移:- 无限制的模型——智能体可以调用工作区中的任何模型,包括 它从不需要的昂贵或高能力模型。
- 无消费上限——失控的循环、触发的注入或账单攻击可以在你 注意到之前耗尽工作区余额。
- 无到期时间——冲刺期间发放的密钥在一年后仍然有效,远超 它铸造的智能体退役之后。
- 无 IP 约束——凭证在任何地方都有效,因此泄露的密钥没有 地理限制。
- 无工具允许列表——智能体可以调用任何工具,即使与其功能 无关的。
2. 混淆代理人模式
混淆代理人是过度代理的特殊化。智能体没有被劫持;它被说服了。 检索到的网页、文档或工具结果中的提示注入载荷告诉智能体采取 一个它被合法授权执行的动作——转移资金、删除记录、发送消息—— 代表攻击者。 智能体采取了行动。它被授权做恰好那件事。授权检查通过了。 损害已经造成。 防御需要两件事协同工作:- 窄范围——智能体不能被欺骗做其任务从未预期的事情, 因为它根本没有被授权做。
- 对不可逆动作的人工审批——即使在授权范围内,高风险调用 也需要人工在执行前确认。
3. 深度防御:四个层
OrcaRouter 在组合在单个 API 密钥上的四个独立控制中执行最小权限。 没有一个需要修改你的智能体代码。第 1 层——限定范围的密钥(身份 + 硬性限制)
每个智能体都应该有自己的 API 密钥。密钥携带网关无论智能体请求 什么都会执行的硬性限制:| 字段 | 它限制什么 |
|---|---|
model_limits | 此密钥可以调用的确切模型集合。对任何其他模型的请求在离开网关之前被拒绝。 |
allow_ips | 来自不在此列表上的任何地址的请求在认证层被拒绝。空意味着无 IP 限制。 |
credit_limit_usd | 以 USD 计的终身消费上限。0 表示无限制。网关对密钥的累积消费执行此上限。 |
expired_time | 绝对到期时间戳。-1 表示密钥永不过期。将其设置为智能体的部署生命周期。 |
environment | 用于组织密钥和过滤审计日志的标签(prod、staging、dev)。 |
第 2 层——防火墙策略(工具允许列表)
通过firewall_policy_id 将防火墙策略附加到
密钥。策略治理该密钥发出的每一次工具调用:
- 写规则允许智能体合法使用的工具名(支持工具名 glob——
例如
db.query*)。 - 将策略的
default_verdict设置为deny,这样未明确列出 的任何东西都被拦截。 - 添加参数谓词来限制即使是允许的工具——例如只有在
database参数匹配特定 schema 时才允许db.query。
第 3 层——对高风险动作的人工审批(pending_approval)
对于不可逆或高价值的工具调用——支付派发、记录删除、邮件发送——
添加 pending_approval 规则。流程:
- 智能体发出工具调用。防火墙挂起它并返回带有审批 id 的”挂起” 响应。调用不会到达工具。
- 审查者带外批准或拒绝——从控制台(Developer+)或通过 HMAC 签名的 webhook 到你自己的审批系统。
- 你的智能体轮询审批 id。一旦批准,它用一次性
X-OrcaRouter-Firewall-Approval头重新提交原始调用。 网关只让它通过一次。
第 4 层——每次运行成本上限(cap_cost)
cap_cost 规则一旦智能体运行的累积消费(以分计)超过每条规则
的上限,就拒绝任何工具调用。这是以下情况的断路器:
- 由注入触发的失控循环。
- 在任何人注意之前驱动消费的账单攻击。
- 多步计划中的意外递归。
cap_cost 在运行级别操作,而不是密钥终身级别——因此它每次
智能体调用重置,单个行为不当的运行无法耗尽密钥的 credit_limit_usd
上限。
4. 一个限定范围良好的智能体密钥——示例
使用gpt-4o-mini 总结客户工单并查询只读副本的智能体
应该看起来像这样:
model_limits:["openai/gpt-4o-mini"]——不能升级到更有能力 或更昂贵的模型。allow_ips:工作进程池的出站 CIDR——密钥在其他任何地方都 无效。credit_limit_usd:匹配任务预期成本(有一些余量)的每周上限—— 例如5.00。expired_time:冲刺或部署期结束——密钥自动过期,无需手动清理。environment:"prod"——出现在日志过滤器和异常视图中。guardrail_id:针对此智能体数据敏感性的防护栏(PII 脱敏, 输出中无密钥)。firewall_policy_id:只允许db.query*和ticket.read*的策略, 默认判定deny。
is_firewall_gateway 将密钥标记为 MCP 派发和 evaluate hook 路由的
网关限定令牌。只为以编程方式驱动防火墙的智能体创建这些——永不
用于一般推理流量。推理路径上的网关密钥暴露了广用途密钥永远不
应该到达的路由。启用 is_firewall_gateway 需要 Admin+。5. 所需角色
| 动作 | 最低角色 |
|---|---|
| 读取任何密钥、策略或防火墙事件 | Member |
| 创建或编辑密钥、防火墙策略、规则 | Developer |
| 从控制台批准被挂起的工具调用 | Developer |
在密钥上启用 is_firewall_gateway | Admin |
6. 与其他威胁的关系
过度代理是几乎所有其他智能体威胁的推动因素:- 危险工具调用——带有 严格工具允许列表的密钥不能被迫调用它没有列出的工具,即使注入 成功了。
- 提示注入——范围限制了注入能做到什么;审批门阻止了注入试图 触发的不可逆动作。
- 威胁模型——完整的攻击面图, 显示过度代理相对于其他向量的位置。
限定范围的密钥与策略
完整的密钥字段参考、解析顺序和工作区边界模型。
防火墙
策略编写、判定、HITL 审批流程和完整 API 参考。
