系统:运行中
← 返回所有攻击
DEFENSE MEDIUM

Agents Rule of Two:Meta 应对 Prompt Injection 的务实方案

Meta 于 2025 年 10 月 31 日发布、并在 2026 年 5 月 Databricks 指南中被重新采用的 Agents Rule of Two,将单次智能体会话限制在三项风险属性中的两项 —— 在 prompt injection 仍未被解决之前,这是最具可操作性的框架。

2026-05-25 // 6 min affects: llm-agents, tool-use, rag-pipelines, mcp-clients, ai-coding-assistants

什么是 Agents Rule of Two?

Meta AI Security 团队于 2025 年 10 月 31 日发布了 Agents Rule of Two。此后,该框架被 Databricks(2026 年 5 月发布的 prompt-injection 指南)、Oso、Xano 以及大多数智能体平台厂商采纳。它是业界对 prompt injection 这一问题最常被引用的 运行时 应对方案 —— 业界如今已公开承认,从模型侧并不存在可靠的解决方案。

规则可以用一句话表述:在同一次智能体会话中,最多只能同时满足以下三项属性中的两项。

  • (A) 智能体 处理不可信输入(网页、电子邮件、工具输出、RAG 文档、用户生成内容)。
  • (B) 智能体 可以访问敏感系统或私有数据(企业机密、客户 PII、源代码、凭据)。
  • (C) 智能体可以 改变状态或对外通信(写入数据库、发送邮件、调用付费 API、推送到 git、在 Slack 发消息)。

任选其二。永远不要在没有人类介入的情况下,把三者全部接入同一个执行回路。

工作原理

Agents Rule of Two 在结构上重写了 Simon Willison 提出的 lethal trifecta(2024 年 9 月提出),并明显借鉴了 Chromium 沙箱边界的 Rule of Two。两者基于同一个洞察:当已知存在脆弱性的接口(解析器、LLM)位于不可信数据与敏感能力之间时,不要试图”修复”该接口 —— 而是去掉三角形的一条边。

转化为设计模式:

  • A + B,不含 C —— 只读的研究助手,对客户工单进行摘要,但没有发送或写入能力。
  • A + C,不含 B —— 公共聊天机器人,可以回复消息,但仅看到当前消息,且不接触内部数据。
  • B + C,不含 A —— 接触私有数据并写回的自动化流程,但只消费由可信代码产生的结构化字段(不接受来自外部的自由文本)。

Meta 在 2025 年 10 月的博客中明确指出失败模式:当三项属性同时存在时,仅需一次嵌入在不可信文档中的间接 prompt injection,就足以把智能体变成 confused deputy,以恶意意图执行被授权的操作。这正是 2026 年 5 月披露的 Comment and Control 攻击在 Claude Code、Gemini CLI 和 GitHub Copilot Agent 上利用的模式,也是 2026 年针对 PraisonAI(CVE-2026-44338)、Semantic Kernel(CVE-2026-25592、CVE-2026-26030)和 LMDeploy(CVE-2026-33626)一系列 CVE 最终所依赖的前提。

为什么重要

2025 年 10 月的论文 The Attacker Moves Second(Nasr、Carlini 等人,arXiv:2510.09023)对十二种已发表的 prompt-injection 防御方案进行了自适应攻击测试。其中十一种被攻破,攻击成功率超过 90%。2026 年 5 月的 Output filtering beats model self-defense(Swept AI / 密歇根大学)也得出了相同结论:在 20 000 次自适应攻击下,所有模型侧防御最终都被突破。

如果不能依赖模型侧防御,那么部署就从 prompt 工程问题变成了 架构 问题。Rule of Two 给出的回答非常直接:不再尝试让 LLM 变安全;而是约束 LLM 被允许 触及 的范围。

Databricks 2026 年 5 月的指南在 Unity Catalog 和 Agent Bricks 上以九层叠加的控制将这一思路落地:在 AI Gateway 进行 PII 脱敏、在输入输出处运行 Llama Protection 模型、出站白名单、绑定到单一用户会话的能力 token,以及在三项属性不可避免地同时出现时引入人工审批。

防御措施

把智能体投入生产之前的具体步骤:

  • 对每个工具按三项属性(A、B、C)分类。这是一项电子表格级别的工作 —— 多数团队会发现,他们的智能体已经违反了规则。
  • 拆分会话,而非仅拆分 prompt。任何需要 C 的工具调用都必须在一个独立进程中执行,且不能访问 B 中的机密。
  • 隔离不可信内容。把网页和邮件当成 数据 渲染,绝不要再把它们重新注入为指令。ASCII 标签走私和间接注入的前提都是:智能体把工具输出当作权威指令。
  • 将能力绑定到用户身份,使用短期 token,而不是绑定到智能体自身的会话。被劫持的智能体不应能在调用者的权限范围之外行动。
  • 在 A + B + C 确实无法避免时(事件响应、code-review-and-merge 智能体、运维 runbook),强制要求人工介入。
  • 记录三元组。每当一次智能体会话越过两条阈值时输出一条结构化事件;触发三条时告警。

批评者 —— 尤其是 Ken Huang 在 2025 年 11 月的 Rule of Two vs. Reality 一文中 —— 指出该框架未覆盖记忆投毒、多智能体串谋和训练期攻击。这是事实:Rule of Two 是一种运行时架构控制,而不是完整的威胁模型。请配合 MITRE ATLAS 与 OWASP LLM Top 10 共同使用。

现状

项目日期状态
Meta 博客2025-10-31已公开
Simon Willison 背书2025-11-02已公开
Michael Bargury 分析2025-11-01已公开
Databricks 操作指南2026(5 月)已公开
批评性评论(Ken Huang)2025-11已公开
被 OWASP LLM Top 10 2026 采纳待定讨论中

Rule of Two 不是补丁。它是一种部署姿态。截至 2026 年 5 月,它是业界在如何上线 LLM 智能体方面最接近共识的方案 —— 与其等待一项也许永远不会到来的模型侧突破,不如先用它把架构守好。

Sources