7.6 Agents Rule of Two 与智能体安全设计原则
“Rule of Two” 是 Meta 在 2025 年提出的一项重要 AI 智能体安全实践指导。按照 Meta 原文,这一原则的核心不是“所有不可逆操作都必须由两个 Agent 批准”,而是:在单个 session 中,一个 agent 最多只能同时满足以下三项性质中的两项:处理不可信输入、访问敏感系统/私有数据、改变状态或对外通信;若三项都需要,则至少要加入监督或可靠验证。 本节将围绕这一更准确的定义来讨论其设计含义。
7.6.1 Rule of Two 的核心原则
基本概念
Rule of Two:
在单个 session 中,一个 agent 最多同时满足以下三项中的两项:
1. 处理不可信输入
2. 访问敏感系统或私有数据
3. 改变状态或对外通信
如果三项都需要,则至少要有监督或可靠验证。这一原则可以类比“关键操作需要独立验证”的传统安全思想,但在 AI 场景中更准确的落点是:不要让单个 agent 在同一 session 中同时具备看不可信输入、访问敏感资源、执行高影响动作这三项能力。
原则的哲学基础
图 7-20:Rule of Two 的理论基础
Rule of Two 与其他安全实践的关系
权限最小化
限制单个系统的权限
辅助:减少单个系统的威胁面
审计日志
记录所有操作
补充:提供事后追踪
工具调用沙盒
隔离执行环境
辅助:限制操作影响
Rule of Two
前置约束
核心:避免单个 Agent 同时具备三类高风险能力
7.6.2 不可逆操作的监督网关(Rule of Two 之外的一种实现)
先厘清命名:本节的「双 Agent 复核」是一种监督网关实现,不是 Rule of Two 本身。 按 7.6.1 引的 Meta 原文,Rule of Two 约束的是单个 session 内一个 agent 最多同时具备三项性质中的两项;当三项都需要时,Meta 给出的基线是人工确认(human-in-the-loop)或其他可靠校验。用第二个 LLM Agent 去复核是一种更弱的替代——本节 7.6.4「勾结攻击」正是在讲它为什么脆弱。下文的代码与流程图沿用「双 Agent」写法时,请按此理解。
不可逆操作的定义和分类
图 7-21:操作可逆性分类
不可逆操作的风险矩阵
账户删除
用户数据完全丧失
极高(可能无法恢复)
关键
资金转账
资金直接丧失
极高(需法律介入)
关键
生产数据删除
业务中断,数据丧失
很高(需完整备份)
关键
权限撤销
用户功能受限
中高(需重新审批)
高
配置更改
系统行为改变
中(需回滚)
中高
安全网关架构
不可逆操作通常需要经过多层安全网关,并在必要时引入额外监督或可靠验证;双重验证只是其中一种实现方式:
图 7-22:不可逆操作安全网关流程
实现示例(伪代码)
下面的伪代码展示的是 Rule of Two 的一种实现方式:通过主处理器 + 独立验证通道来处理不可逆操作。它不应被误读为“Rule of Two 必然等于两个 Agent 审批”。
7.6.3 权限最小化实践
权限模型架构
图 7-23:多层权限模型
Zero Trust 原则在 Agent 中的应用
权限降级案例(典型场景示例)
以下是一个基于真实工程场景构造的假设案例,用以说明权限模型的重要性:假设一个 AI 代码生成 Agent 误删了生产数据库中的关键表:
事件经过:
Agent 被赋予“数据库修改”的广泛权限
Agent 在执行“清理过期日志”任务时,因为理解错误执行了 DROP TABLE 操作
数据丧失,恢复耗时 3 天
事件教训:
权限过于宽泛(可以删除任何表,而不仅是日志表)
缺少第二层验证(没有要求人类确认 DELETE/DROP 操作)
操作前缺少 dry-run(可以显示将要删除的内容)
改进方案:
7.6.4 多智能体安全边界
智能体间的信任模型
图 7-24:多智能体信任模型
勾结攻击防御
在多智能体系统中,一个新兴的风险是两个或多个智能体进行“勾结”,共同规避安全检查。如果系统把 Rule of Two 实现成“双重验证”,那么这些验证通道之间的独立性就会成为新的安全前提。
勾结攻击的形式
勾结攻击防御机制
1. 来自不同供应商的验证通道
2. 异步验证与时间隔离
3. 防篡改的审计日志
4. 定期 Agent 轮换
防御的综合应用
Agent 间通信的安全协议
组织级 Agent 协调
图 7-25:企业 Agent 生态的权限架构
7.6.5 代表性场景分析
案例 1:高权限采购智能体的失控(教学化场景)
背景:以下为基于真实工程风险抽象出的代表性场景,用来说明如果没有 Rule of Two,采购类智能体为何容易造成高成本失误。
事件:
Agent 无意中购买了错误的云服务配额
由于权限过于宽泛,没有价格上限检查
造成月度成本增加 300 万美元
根本原因:
缺少 Rule of Two 验证
采购权限设置不合理(无预算上限)
没有及时的支出告警
改进方案:
案例 2:代码审查 Agent 误操作的连锁反应(假设场景)
背景:以下为基于真实工程风险构造的典型场景示例。一个代码审查 Agent 被给予代码合并权限,在主分支上引入了漏洞。
事件流:
Agent 试图修复一个 bug(权限:修改代码)
修复引入了一个微妙的逻辑错误
Agent 通过了自己的测试(测试用例不全)
Agent 自动合并了代码到主分支(权限:合并代码)
在生产环境引起故障
防御失败点:
只有 Agent 的单一验证,缺少第二层
自动合并权限过于宽泛
改进的 Code Review Agent:
7.6.6 Rule of Two 的适用范围与经验总结
系统化的 Rule of Two 应用清单
基于 2025-2026 年的安全事件,形成了以下应用清单:
图 7-26:Rule of Two 应用场景清单
经验总结
Rule of Two 更适合被理解为 高风险操作的约束框架,而不是固定的“双 Agent 审批模板”或某一组通用量化指标。不同组织的收益、误操作率和审批成本会因业务类型、权限模型和自动化程度而显著不同,因此更稳妥的做法是把它作为设计原则,再结合本组织的监控数据选择实现方式。
7.6.7 实现 Rule of Two 的技术路径
技术选择决策树
开源方案
7.6.8 与其他 AI 安全实践的综合
图 7-27:Rule of Two 在 AI 安全防线中的位置
最后更新于
