For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 的关系

权限最小化

限制单个系统的权限

辅助:减少单个系统的威胁面

审计日志

记录所有操作

补充:提供事后追踪

工具调用沙盒

隔离执行环境

辅助:限制操作影响

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 误删了生产数据库中的关键表:

事件经过

  1. Agent 被赋予“数据库修改”的广泛权限

  2. Agent 在执行“清理过期日志”任务时,因为理解错误执行了 DROP TABLE 操作

  3. 数据丧失,恢复耗时 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 被给予代码合并权限,在主分支上引入了漏洞。

事件流

  1. Agent 试图修复一个 bug(权限:修改代码)

  2. 修复引入了一个微妙的逻辑错误

  3. Agent 通过了自己的测试(测试用例不全)

  4. Agent 自动合并了代码到主分支(权限:合并代码)

  5. 在生产环境引起故障

防御失败点

  • 只有 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 安全防线中的位置

最后更新于