这里的一切都是只读或沙箱化的——没有面向用户的拦截,没有生产流量受影响。
(关键词、正则和 PII 规则完全在本地运行;一条
llm_judge 规则仍会调用
它配置的模型,因此一次对 judge 策略的 eval 确实会做那次调用。)要点是
在你的条件下、在发布之前把东西弄坏。1. 如何在发布前红队一个 AI 智能体
一次发布前红队回答三个问题,而 OrcaRouter 对每个有一个工具:我的防护栏能捕捉攻击吗?
对照捆绑的对抗性语料库运行防护栏的 Eval 装置,并读回
precision / recall / F1。
我的防火墙会弄坏什么?
打开 shadow mode,并观察哪些真实工具调用会被拒绝——而暂时不
拒绝它们中的任何一个。
一个更紧的姿态安全吗?
Simulate 一个自治级别,在你应用之前对照你的流量精确预览它会
改变什么。
2. 对照对抗性语料库给你的防护栏评分
知道一条内容策略能否在与攻击者接触后存活的最快方式,是向它扔一个已知 攻击的语料库并读取得分。防护栏编辑器的 Eval 标签页恰好做这个:它把 一个语料库中的每个样本通过你的当前策略重放,并把判定与每个样本的 预期结果比较——在本地对照你的规则重放语料库,绝不对照实时流量。 OrcaRouter 附带捆绑的红队语料库,因此你不必自己采购。其中包括:| 语料库 | 它是什么 |
|---|---|
advbench_harmful_behaviors | 标准的对抗性后缀目标集——每一行都是一条防护栏应该拦截的不安全请求。 |
anthropic_hh_redteam | 针对一个助手的真实多轮人工红队记录。 |
deepset_prompt_injections | 标注的提示注入 vs 良性请求——一个输入阶段拦截的精确率/召回率基线。 |
databricks_dolly_benign | 一个纯良性基线:一条过于严格的策略应该一个都不拦截这些。 |
deepset_prompt_injections 语料库运行一次 eval:
- TP / FP / FN / TN——真/假阳性和阴性,其中一个”假阳性”包括以错误的 动作类捕捉一个攻击(例如在你预期一次拦截时做了掩码)。
- Precision / Recall / F1——头条数字。低召回意味着攻击溜过去;低精确 意味着你在拦截良性流量。
提示注入防御存在于哪里。 捆绑的 Prompt-Injection Basics 预设是
一条 flag 动作上的关键词规则——它呈现常见的越狱短语以供审查而不拦截
用户。对于任何关键词列表都捕捉不到的语义注入意图,加一条
llm_judge
规则并以同样方式红队它:对照 deepset_prompt_injections 和
anthropic_hh_redteam 对它做 eval 并读取 F1。参见
防护栏参考。3. 对照真实流量对防火墙做 shadow mode
一次防护栏 eval 对照一个固定语料库测试文本。相比之下,你的防火墙需要 对照你的智能体实际做什么的混乱现实来测试——而在发布前做这个的最 安全方式是 shadow mode。 Shadow mode 是一个按策略的标志,它让防火墙完全像在生产中那样评估并 记录每一次工具调用,但把每个执行性判定降级为audit。一个 deny
变成一条审计行,其原因前缀为 [shadow] would …。什么都不被拦截。
什么都不弄坏。但 Events 信息流现在向你展示你的策略会拒绝的调用的
精确列表。
这就是防火墙红队:编写你打算的最严格策略、把 shadow mode 翻开、让你的
智能体走一遍真实的发布彩排,然后读取 [shadow] would … 事件。
编写策略,然后对它做 shadow
编写策略,然后对它做 shadow
在控制台中构建你的执行策略(Developer+)——对于一次发布 dry-run,
把
default_verdict 设为 audit,并加入你打算上线的 deny 规则。
把 shadow mode 翻开。整条策略现在记录而不执行。像发布日那样运用智能体
像发布日那样运用智能体
用一个附加了被 shadow 策略的密钥,对照网关运行你真实的智能体流程。
每一次工具调用——inbound、response、MCP 派发、egress——都被评估和记录。
读取本会拦截的列表
读取本会拦截的列表
打开 Firewall → Events(Developer+)并过滤
[shadow] would …
原因。其中每一个都是你的策略在生产中本会拒绝的调用。确认每一个条目
都是一个你想要拒绝的调用——并且列表上没有任何合法的东西。翻掉 shadow 以上线
翻掉 shadow 以上线
一旦本会拦截的列表干净,关闭 shadow mode。紧接着的下一个匹配调用就
被真正执行——没有其他变更。
4. 在你提交之前模拟一个更紧的姿态
第三个红队动作是最便宜的:在你应用一个更严格的 自治级别 之前,模拟它。 模拟器对照你工作区近期的流量预览应用tight(或任何级别)会改变什么
——多少调用会翻转为 deny——而不写入一条策略行。
tight
准备好了吗?“:如果预览显示在你智能体依赖的调用上有一墙的本会拒绝,那么
你在 go-live 之前有规则要软化,而不是在它之后有一场事件。
Simulate 仅预览——它绝不变更你的策略。应用一个自治级别是一个独立的、
Developer+ 的动作,并且它是一个事务,带一键撤销,以防实时结果仍让
你意外。
5. 发布前红队清单
把三个过程放到一起,你就有了一道发布闸门:| 过程 | 工具 | 何时为绿 |
|---|---|---|
| 内容策略 | 防护栏 Eval vs 攻击 + 良性语料库 | 攻击上高召回,良性上无拦截 |
| 动作策略 | 防火墙 shadow mode vs 彩排流量 | 每一个 [shadow] would … 都是有意的 |
| 覆盖 | Observe mode + Discovered tools | 没有意外的工具坐在一个覆盖缺口里 |
| 姿态 | Simulate 目标自治级别 | 预览匹配你的预期 |
https://api.orcarouter.ai/v1/...。
6. 下一步
执行模式
Observe → shadow → enforce,本配方所彩排的安全上线。
Secure Agents 基线
每个自治级别设置什么——以及
simulate 如何预览它。提示注入
你的防护栏 eval 正在对照评分的那个威胁。
上线
红队通过之后的生产切换。
