is_default 的防护栏,当某个密钥没有明确绑定时
网关会回退到它。
本页涵盖默认 AI 防护栏:如何设置它、解析如何工作,以及一条
值得记住的不变量——每个工作区一个默认值。完整的引擎
参考请见防护栏参考。
这里的一切都是托管网关(
api.orcarouter.ai)上的控制台
操作,在你自己的会话下运行。只有最后的 /v1/* 调用使用
sk-orca-... 中继密钥。晋级或降级默认防护栏需要工作区中的
Developer+。1. 为何设置默认 AI 防护栏
按密钥绑定很精确,但容易遗忘——签发一个新密钥、跳过 下拉菜单,那个密钥就带着零筛查上线了。工作区默认值 弥补了这个缺口:无绑定的密钥继承它
任何
guardrail_id 未设置(0/null)的密钥都会被默认值
自动筛查——包括你设置之后创建的密钥。编辑一次,切换整个工作区
默认值存在于网关中,而不在每个密钥上。编辑它,每个继承的
密钥都会在下一次调用时切换——无需重新部署,无需修改 SDK。
2. 将防护栏晋级为默认值
在控制台中打开 Guardrails,编辑你想作为底线的那个防护栏, 并打开 Set as workspace default。保存。创建或选择一个防护栏
像往常一样编写一个策略——例如
PII Shield 预设,一条在
both 阶段脱敏的单条 pii 规则。3. 每个工作区一个默认值——晋级是原子的
这是那条不变量:每个工作区最多有一个防护栏带有is_default。你永远不必手动取消旧的那个。
当你将一个新防护栏晋级为默认值时,网关会在同一事务中
降级上一个默认值——晋级和降级要么都落地,要么都不落地。
永远不会出现两个防护栏同时是默认值的窗口,也永远不会出现
没有默认值的窗口。
4. 解析如何使用默认值
对任意请求,网关按如下固定顺序精确解析出一个防护栏 (或无):| 顺序 | 适用内容 |
|---|---|
| 1 | 密钥明确的 guardrail_id——如果它存在且已启用。 |
| 2 | 工作区已启用的 is_default 防护栏(密钥没有绑定)。 |
| 3 | 无——请求与没有策略的工作区字节相同。 |
设计上故障开放(Fail-open)。 如果默认值解析遇到瞬时错误,
网关会降级为不执行,而不是让请求失败。
安全性降级;可用性得以保留。
5. 实例演练
假设你的工作区有两个防护栏和三个密钥:pii-shield——被标记为工作区默认值,已启用。strict-block——拦截信用卡,不是默认值。- 密钥
A——无绑定。密钥B——绑定到strict-block。密钥C——绑定到一个你后来禁用的防护栏。
密钥 A(无绑定)→ 继承默认值
密钥 A(无绑定)→ 继承默认值
guardrail_id 未设置,因此解析下沉到已启用的
is_default 防护栏 pii-shield。email 在模型看到之前被
脱敏为 [EMAIL]。密钥 B(已绑定)→ 使用它自己的策略
密钥 B(已绑定)→ 使用它自己的策略
明确绑定胜出。
strict-block 适用;从不查询默认值。密钥 C(已绑定但被禁用)→ 不执行
密钥 C(已绑定但被禁用)→ 不执行
绑定存在,但它的防护栏被禁用,因此解析返回无——它
不会下沉到
pii-shield。请求未被筛查。strict-block 晋级为默认值并保存。在一个事务中
strict-block.is_default 变为 true,pii-shield.is_default
变为 false。密钥 A 在它的下一次调用时立即继承
strict-block——而无需对密钥本身做任何改动。
6. 确认请求命中了默认值
用一个无绑定密钥发送请求,并检查 Matches 信息流——在你的 默认防护栏下记录的一条匹配就确认了回退触发:[EMAIL]。如果它拦截,调用返回 HTTP 400 guardrail_blocked
——这不消耗配额并被标记为 skip-retry。完整的响应形态见
guardrail_blocked 错误。
7. 接下来去哪里
绑定到单个密钥
当一个密钥需要与工作区底线不同的策略时。
创建你的第一个防护栏
端到端的流程——创建、测试、绑定、发送。
解析与范围
密钥、策略和工作区如何组合。
版本管理
每次晋级都会写入一条历史记录——diff 和回退。
is_default 何时翻转以及谁做的。完整的
引擎请阅读防护栏参考。