跳转到主要内容
在每一次模型调用前放置内容策略的最快方式是 防护栏——一个工作区级别的、命名的策略,你在控制台中 编写一次并绑定到某个 API 密钥。之后网关会在下一次调用时 筛查请求输入和模型输出,无需重新部署,也无需修改 SDK。 本页走完端到端的流程:创建防护栏、添加规则、在沙箱中测试、 绑定到密钥,然后发送一个真实请求。完整的引擎参考——每种 规则类型、字段和路由——请见 防护栏参考
这里的每一步都是托管网关(api.orcarouter.ai)上的控制台 操作。防护栏配置在你自己的会话下运行;只有最后的 /v1/* 调用使用 sk-orca-... 中继密钥。创建和编辑防护栏需要 工作区中的 Developer+ 角色。

1. 如何用五步添加 LLM 防护栏

以下是整个流程的概览——每一步在下面展开。
1

创建防护栏

在控制台中打开 Guardrails,点击 New guardrail。给它 起一个名字(≤ 64 字符),例如 pii-shield
2

添加规则

input 阶段添加一条 PII detection 规则,动作为 mask
3

在沙箱中测试

打开 Test 标签页,粘贴一个样本,在本地运行该策略—— 没有上游调用,没有配额。
4

绑定到密钥

编辑一个 API 密钥,从 Guardrail 下拉菜单选择该防护栏。 绑定关系存在于密钥上。
5

发送请求

用该密钥调用 /v1/chat/completions。网关会在转发前应用 该策略。

2. 创建防护栏

在控制台中打开 Guardrails,点击 New guardrail。防护栏 是一个工作区级别的、命名的内容策略——网关会用这个有序的 规则列表检查请求输入和模型输出。将它命名为 pii-shield 并保存。
New guardrail 分裂按钮也会直接打开一个模板PII Shield 预设是单条 pii 规则,会脱敏 emailphonessncredit_cardip。应用预设是 种子,而不是锁——之后可以自由编辑。浏览 预设模板以获取更多起点。

3. 添加规则

每条规则决定三件事——查找什么(规则类型)、在哪里 查找(一个阶段),以及如何处理(一个动作)。添加一条规则:
  • Type: PII detection(pii
  • Stage: Input(请求)
  • Action: Mask——脱敏匹配项
  • Entities: emailphonessn
mask 动作下,每个匹配项会被替换为一个带类型的标签——email 变成 [EMAIL],SSN 变成 [SSN]。七种规则类型 (keywordregexpiimax_charsexternalllm_judgegrounding)和五种动作(blockmaskflagannotatespotlight)在参考中介绍。 对于这第一个防护栏,一条脱敏规则就足够了。
脱敏在两个阶段都已上线。输入阶段规则在模型看到请求之前 脱敏请求;输出阶段规则脱敏模型的响应——在非流式响应上 以及在流式响应上逐 chunk——在客户端收到之前。Block 在 两个阶段也都会执行。如果你想把关模型的响应,将规则的阶段 设为 output(或 both);参见 输出阶段规则

4. 在沙箱中测试

在把防护栏绑定到任何密钥之前,先证明它如你所愿地工作。 打开编辑器内的 Test 标签页,粘贴一个样本,选择 input 阶段,然后运行:
Reply to jane@acme.com please
沙箱在本地评估当前策略,并返回判定结果加上 渲染后的文本:
Reply to [EMAIL] please
不会向上游发送任何内容,也不计量。要针对一个输入语料库 做 A/B 对照,Eval 工具 就在隔壁那个标签页。

5. 绑定到密钥

在某个密钥指向它之前,防护栏什么都不做。两种绑定方式:

按密钥

编辑一个 API 密钥,从 Guardrail 下拉菜单选择该防护栏。 这会在密钥上设置 guardrail_id。参见 绑定到密钥

工作区默认值

将该防护栏标记为工作区默认值,使任何没有明确绑定的 密钥继承它。参见 账户默认值
解析是明确且可预测的:
顺序适用内容
1密钥明确的 guardrail_id(如果它存在且已启用)。
2工作区默认值(如果密钥没有绑定)。
3无——请求与没有策略的工作区字节相同。
明确绑定永不静默回退。禁用一个绑定的防护栏就是 关闭开关——它不会下沉到工作区默认值。(防火墙策略在这里 不同;参见 防护栏 vs. 防火墙。)

6. 发送请求

用一个绑定到 pii-shield 的密钥,像以前一样调用 OrcaRouter——无需 修改 SDK,无需新的请求头:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Reply to jane@acme.com please"}
    ]
  }'
网关会在转发前把 email 脱敏为 [EMAIL]——上游模型永远 看不到该地址。将规则的动作换成 block,紧接着下一个包含 该实体的请求就会以 HTTP 400 guardrail_blocked 被拒绝。 被拦截的请求不消耗配额(输入拦截在计量之前触发;输出 拦截会退回预先扣除的配额),并被标记为 skip-retry。完整的 响应形态见 guardrail_blocked 错误

7. 接下来去哪里

每条触发的规则都会记录一个 match——类型、动作、阶段和 一个详情字符串。只有在开启 Log raw content 时(默认 关闭)才记录匹配的子串。参见 Matches 信息流日志与隐私
PII 检测覆盖 emailphonecredit_cardssnipibanmac_addressjwtaws_access_keyapi_key_openaibitcoin_address(外加区域性实体),你也可以编写 自己的。参见 PII Shield自定义 PII 实体脱敏格式
添加一个密钥拦截器提示注入基础 预设——后者会 flag 常见越狱短语以供审查。要在语义层面而非 短语层面捕获注入意图,在旁边再加一条 llm_judge 规则。
每次编辑都会写入一条版本历史记录。打开 History 进行 diff 和回退。参见版本管理
防护栏筛查内容。要治理智能体的工具调用——拒绝破坏性 动作、封顶成本、要求审批——请使用 防火墙。从 保护 AI 智能体危险工具调用威胁开始。
阅读防护栏参考以了解完整引擎——规则 字段、外部供应商、eval 工具,以及完整的 API——或阅读 安全快速开始,把防护栏和 防火墙连接起来构成一个智能体基线。