1. 按密钥的安全策略:密钥上的两个字段
一个防护栏筛查流经一个模型的文本(PII、密钥、越狱)。一个 防火墙策略治理一个智能体发出的工具调用(哪些工具、哪些 MCP 服务器、哪些主机)。两者都是工作区限定的、命名的策略—— 编写一次、在整个工作区共享——而一个密钥通过两个字段选择 加入某个特定的策略:| 字段 | 绑定 | 在控制台中设置 |
|---|---|---|
guardrail_id | 筛查该密钥提示词与响应的防护栏。 | Developer+ |
firewall_policy_id | 评估该密钥工具调用的防火墙策略。 | Developer+ |
/console/token 的密钥编辑器中设置。设置任一项都是一个
Developer+ 操作——策略本身同样由 Developer+ 编写
(参见 范围与密钥)。
这两个字段是独立的。一个密钥可以附加一个防护栏而不附加
防火墙策略,或反之,或两者都附加,或都不附加——每个平面各自
解析。把一个字段留空(
0)与关闭执行不是一回事;
参见 §3。2. 一个具体的例子
假设你的工作区默认防护栏标记 PII 但允许它通过,而默认防火墙 策略审计每一次工具调用。这对大多数智能体都没问题——但你的 财务智能体处理客户 SSN,且永远不应调用一个 shell 工具。编写一份 更严格的finance-guardrail(直接拦截 PII)和一份
finance-firewall(只允许它需要的三个工具),然后把两者都
绑定到那个智能体的密钥上:
12 筛查,它的工具
调用被策略 8 评估——而工作区中的每个其他密钥都继续运行
工作区默认值。该智能体自己的代码从不改变;它继续用它的
sk-orca-… 密钥像以前一样调用
https://api.orcarouter.ai/v1/...。
3. 解析:那条让人踩坑的规则
对于每个请求,网关独立地解析活跃的防护栏和活跃的防火墙 策略。对两者而言顺序看起来相同——先附加项、后工作区默认值 ——但它们在一种情形上分道扬镳。防护栏解析
已附加且已启用 → 使用它
已附加且已启用 → 使用它
该密钥的
guardrail_id 指向一个存在且已启用的防护栏。该
防护栏筛查该请求。已附加但被禁用或被删除 → 无防护栏
已附加但被禁用或被删除 → 无防护栏
禁用被附加的防护栏是一个关闭开关。该密钥得到无内容
筛查——它不会回退到工作区默认值。这是有意为之:附加一个
防护栏并禁用它,正是你为该密钥关闭筛查的方式。
未设置(0)→ 工作区默认值
未设置(0)→ 工作区默认值
密钥上没有
guardrail_id。工作区已启用的默认防护栏适用
(如果设置了的话)。两者皆无 → 不执行
两者皆无 → 不执行
没有附加项且没有工作区默认值 → 该请求在无内容筛查的情况下
通过。
防火墙解析
已附加且已启用 → 使用它
已附加且已启用 → 使用它
该密钥的
firewall_policy_id 指向一个存在且已启用的策略。
该策略评估该密钥的工具调用。已附加但被禁用 → 工作区默认值
已附加但被禁用 → 工作区默认值
这里就是区别所在。一个被禁用的防火墙附加项回退到工作区
默认防火墙策略——它不会关闭执行。禁用一个防火墙附加项
会把该密钥还原到工作区默认值;它不会让该密钥失去防护。
未设置(0)→ 工作区默认值
未设置(0)→ 工作区默认值
密钥上没有
firewall_policy_id → 工作区已启用的默认防火墙
策略适用。4. 一次拦截的表现形式
当一个被绑定的策略拒绝一个请求时,调用方会看到一个结构化的 错误——智能体可以作出反应而不是崩溃:| 平面 | 错误码 | HTTP | 成本 |
|---|---|---|---|
| 防护栏 | guardrail_blocked | 400 | 无——输入拦截在计量之前触发;输出拦截会退款。标记为 skip-retry。 |
| 防火墙(inbound) | firewall_blocked | 400 | 一次 inbound 拦截在模型调用之前触发,因此不消耗模型 token。Skip-retry。 |
| 防火墙(已挂起) | firewall_approval_pending | 400 | 为人工审批挂起;智能体轮询并在获批后重新提交。 |
5. 下一步去哪里
范围与密钥
完整的三层模型——工作区、策略、密钥——以及一个密钥携带的
每个字段。
令牌对象
密钥上的每个字段:
model_limits、allow_ips、credit_limit_usd、
expired_time,以及两个策略附加项。防护栏
编写你通过
guardrail_id 绑定的内容策略——规则、PII
实体、动作和预设。防火墙
编写你通过
firewall_policy_id 绑定的工具调用策略——
判定、执行面和自治级别。想要一步设置你整个工作区的姿态,而不是一个一个地绑定密钥?
一个自治级别会一次性写入两个平面——防护栏和防火墙。然后
在少数几个需要比工作区默认值走得更远的密钥上附加更严格的
策略。参见
防护栏 vs 防火墙。
