block、mask、flag、
annotate 和 spotlight。本页涵盖你最先会用到的三个执行
选择:block、mask 和 flag。每条规则选一个(或者,对于
PII 规则,把不同实体路由到不同动作;参见
§5)。另外两个是塑形提示词的非拦截
动作:annotate 向上游注入一条安全注释(参见
代码安全),spotlight
用分隔符包裹匹配到的不可信输入,让模型将其视为数据而非
指令。完整清单见防护栏概览。
更广的引擎——规则类型、阶段、把策略绑定到密钥——从
防护栏概览或完整的
防护栏参考开始。
1. 一句话讲清 block mask flag 的取舍
block
以 HTTP 400
guardrail_blocked 拒绝调用。模型从不运行
(输入阶段)或其答案从不返回(输出阶段)。mask
脱敏每个匹配项——例如
jane@acme.com → [EMAIL]——并放行
净化后的文本。请求继续。flag
不改变流量的任何方面。在信息流中记录一条匹配然后
继续。仅观察。
这是三种执行动作。无论你设置哪一个,它在规则运行的每个地方
都会被遵循——控制台规则构建器、Test 沙箱
和真实的
/v1/* 中继路径读取的都是同一个 block / mask / flag
值。2. 一个具体示例——三条规则,三种动作
这里是一个防护栏,它的三条规则各自选了不同的动作。你在 控制台(/console/guardrails)的会话上编写它——sk-orca-...
中继密钥只用于 /v1/* 调用,绝不用于编辑策略。创建或编辑
防护栏需要 Developer+ 角色。
- block 规则拒绝任何包含那些字面词项之一的提示词——HTTP 400,模型从不运行。
- mask 规则在模型看到提示词之前,把 email 和电话号码
改写为
[EMAIL]/[PHONE]。 - flag 规则监视模型的输出中是否有机密标记,并在不改变 响应的情况下记录一条匹配——这样你可以在决定执行之前衡量 它出现的频率。
3. block——以 HTTP 400 拒绝
block 动作拒绝整个调用。调用方会得到 HTTP 400,错误码为
guardrail_blocked,消息中指明触发的防护栏和规则。
不消耗任何配额
不消耗任何配额
输入阶段拦截在计量之前触发,因此什么都不消耗。
输出阶段拦截会在拒绝答案后退回预先扣除的配额。无论
哪种方式,调用方都不为被拦截的调用付费。
它被标记为 skip-retry
它被标记为 skip-retry
一个
guardrail_blocked 结果是 skip-retry——针对另一个
通道重新运行同一个提示词只会再次拦截,因此网关不会浪费
一次重试。参见
guardrail_blocked 错误。它在流式上也会执行
它在流式上也会执行
在非流式响应上,答案会在返回前被筛查。在流式
响应上,一个扫描器会中途切断流,并在任何被拦截的内容
到达客户端之前发出一条替换消息。参见
流式覆盖。
block——提示词中的
密钥、一次越狱尝试、一条硬性合规红线。
4. mask——脱敏并继续
mask 动作脱敏每个匹配项,并带着净化后的文本放行请求。
上游模型永远看不到原始内容。在 PII 规则上,每个匹配项会被
替换为一个从实体派生的带类型的标签——email 变成 [EMAIL],
SSN 变成 [SSN],信用卡变成 [CREDIT_CARD],依此类推。(你可以
按自定义实体覆盖替换字符串;参见
脱敏格式。)
输入阶段脱敏在每个流上都已上线。 它在模型运行之前改写
请求,无论是否流式。输出阶段脱敏只适用于非流式响应——
被脱敏的文本在完整答案被筛查后转发。在流式响应上,网关
计算脱敏但尚未转发被脱敏的文本,因此 mask 规则今天不会
脱敏流式回复;带内的流式输出脱敏在规划路线图上。(输出
block 仍会中途切断流——参见 §3。)先在沙箱中证明你具体的
阶段/流组合。参见
流式覆盖。
mask——PII
脱敏是典型用例。开箱即用的起点是 PII Shield 预设;参见
PII Shield。
5. flag——只记录,不改变任何东西
flag 动作是仅观察:请求与一个完全没有规则的请求字节
相同,只是会在Matches 信息流
中记录一条匹配。什么都不拦截,什么都不脱敏。
一条被 flag 的匹配会记录规则类型、动作、阶段和一个详情
字符串——而匹配的子串仅当该防护栏开启了 Log raw content
时才记录(默认关闭,隐私保守的姿态)。参见
日志与隐私。
6. 按实体的动作覆盖
单条 PII 规则可以通过entity_actions 把不同实体路由到
不同动作,而不必堆叠互相重叠的规则。每个覆盖值必须是
block / mask / flag / annotate 之一,并且必须引用该规则
已经声明的实体——校验器会拒绝其他任何内容。
7. 选择正确的动作
| 如果你想… | 使用 | 效果 |
|---|---|---|
| 完全停止请求 | block | HTTP 400,无配额,skip-retry |
| 剥离一个子串,保留调用 | mask | 转发被脱敏的文本 |
| 在不触碰流量的情况下观察 | flag | 仅记录匹配 |
8. 接下来去哪里
guardrail_blocked 错误
一个 400 是什么样子、为什么它不消耗配额,以及 skip-retry
如何工作。
脱敏格式
带类型的标签、自定义替换字符串,以及被脱敏的提示词在
模型看来是什么样子。
流式覆盖
今天究竟哪些 动作 × 阶段 × 流 组合会被执行。
执行模式
block / mask / flag 如何映射到网关更广的执行模型,包括
防火墙的 audit 判定。
