1. 为何要在输出阶段筛查 unsafe ai output
输入筛查能捕获一个糟糕的提示词。它捕获不了一个糟糕的答案: 一个被诱导偏离策略的模型、一个内置防护更弱的微调模型,或者 一条完全合理的提示词却产生了一个不合理的补全。输出阶段正是 你断言”无论原因如何,这段文本都不会离开网关”的地方。 一条网关规则确定性地触发,并对你密钥背后的每一个模型一视同仁 地应用。而且每一条触发的规则都会落入工作区 Matches 信息流——规则 类型、动作、阶段——于是你就有了一份关于什么被捕获、什么被放行 的审计追踪。防御存在于网关,而非你的应用。 编辑该防护栏,变更就会在
下一次调用时对每个附加到它的密钥生效——无需重新部署,无需
修改 SDK。你的应用照旧一字不差地调用
/v1/chat/completions。2. 捕获它的两种方式
把一个确定性的拒绝列表与一个语义裁判配对,构成纵深防御。字面——keyword / regex(零延迟)
字面——keyword / regex(零延迟)
一条
keyword 规则是不区分大小写的子串匹配;一条 regex
规则是一个 RE2 模式(线性时间,无反向引用)。两者都在热路径上
运行,没有网络调用——非常适合一个已知的禁用词列表、一个
竞争对手拒绝列表,或一个结构性模式(一个泄露的 chat-template
令牌、一个确定性的”you are entitled to damages”措辞)。语义——llm_judge(捕获任何正则都捕获不到的东西)
语义——llm_judge(捕获任何正则都捕获不到的东西)
一条
llm_judge 规则使用你工作区里的一个模型,依据你编写的
评分准则对响应求值——有毒性、偏离品牌的语气、任何字面列表
都捕获不到的偏离策略建议。它携带一个 judge_timeout_ms,
默认 fail-open(一次裁判错误会被记录而响应继续),且它的
token 作为一条裁判子项计费。参见
LLM 裁判参考。3. 一个具体示例——block 有毒、mask 偏离品牌
一条单一的输出阶段防护栏,在语义上 block 一个有毒响应,并对 剩下的任何内容里的禁用品牌词做 mask:/console/guardrails → New
guardrail,添加这两条规则,并从 Token 编辑器把它附加到一个
密钥(绑定关系作为 guardrail_id 存在于密钥上)。配置运行在
你的控制台会话上,而非你的中继密钥上;只有下面的 /v1/* 调用
才使用 sk-orca-... 密钥。
guardrail_blocked 扣下。如果它干净但提到了一个禁用词,那个
片段会渲染为一个带类型的脱敏,其余内容照常流过。
4. 从一个预设起步
New guardrail 模板库在 Safety、Brand 和 Compliance 类别里附带了现成的起点。一个预设是一颗种子——应用它,然后 自由编辑。| 类别 | 可起步的输出阶段预设 |
|---|---|
| Safety | System-Prompt Leak Detector(output)、Strong System Prompt Leak——对回显系统提示词或 chat-template 令牌的响应 flag/block。 |
| Brand | Profanity Filter(mask)——在两个阶段都运行,并对响应中位于拒绝列表的词做 mask。(block 风格的 Profanity / Brand Safety 和 Competitor Mentions 预设是输入阶段的种子;如果你想用它们来筛查答案,把一个副本重新指向 output。) |
| Compliance | Legal Disclaimer Enforce——对给出确定性法律/财务建议的响应 flag,交团队审查。 |
5. 流式:那个要紧的注意事项
一条输出规则是否被实时执行,取决于动作以及你是否流式。| 动作 | 非流式 | 流式 |
|---|---|---|
block | 响应被扣下;HTTP 400 guardrail_blocked | 扫描器中途切断数据流并发出一条替代消息——被拦截的内容永远到不了客户端 |
mask | 在返回的文本中脱敏匹配 | 当下仅限非流式;带内的流式改写在路线图上 |
flag | 记录一次匹配,不改变任何内容 | 记录一次匹配,不改变任何内容 |
6. 推荐的策略形态
在一条防护栏里叠加三条规则
-
在
output上的keyword/regex——对已知禁用词和结构性 模式的零延迟捕获。 -
在
output上的llm_judge——对字面列表所遗漏内容的语义 有毒性 / 偏离品牌 / 偏离策略捕获。 -
先以
flag上线,观察 Matches 信息流,等 误报率可接受后再晋升为block。参见 执行模式。
防护栏参考
规则类型、动作、阶段、LLM 裁判、预设、评估框架和 Matches
信息流的完整参考。
数据外泄
阻止敏感数据在模型响应或工具调用中离开。
