MCP 与 A2A:Agent 的「手」和「队友」怎么接? - 编程一生

MCP 与 A2A:Agent 的「手」和「队友」怎么接? - 编程一生

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

MCP与A2A是Agent连接外部世界的两套标准。MCP由Anthropic于2024年推出,规范Agent连接工具、API、数据库的方式,返回结构化结果以减少幻觉,相当于Agent的“手脚”。A2A由Google于2025年推出,解决不同厂商Agent间的发现、派活与协作,相当于“队友协议”。二者需警惕间接提示词注入和级联幻觉风险,小错误可能经协作放大,扰乱整个系统。

🔎

延伸解读

MCP 与 A2A 的分工:手脚与队友

文章用“手”和“队友”比喻 MCP 与 A2A 的定位:MCP 规范 Agent 连接工具、API、数据库的方式,让模型少靠猜、多靠查,从而缓解幻觉;A2A 则解决不同厂商 Agent 之间的发现、派活与协作。两者并非替代关系,而是分别处理“连世界”和“连其他 Agent”两类问题,共同补足 Agent OS 之外的能力。

协议统一降低集成成本,但并非唯一路线

文章指出,若多个 Agent 各用各的接口、各写适配器,集成成本会爆炸,且缺少结构化工具结果时模型更容易瞎编。MCP 让工具方按标准暴露能力,Agent 方少写定制胶水,换模型或框架时工具层可复用。不过作者也说明,实际开发中他们走的是“声明式 CLI 能力契约”路线,而非 MCP/A2A,说明标准化连接业务能力还有别的实现方式。

协作放大风险:间接注入与级联幻觉

文章提醒两类风险:一是间接提示词注入,攻击者把恶意指令藏在 Agent 需读取的外部数据源中,Agent 正常读取时可能泄漏敏感信息或执行恶意操作;二是级联幻觉,一个 Agent 把发票上的 7 月误读成 1 月,经 A2A 传给物流 Agent 后,可能触发错误订车并取消七月运力,小错误经协作放大,扰乱整个系统。

❓

Q&A

MCP 和 A2A 分别是什么?它们有什么区别?

MCP(Model Context Protocol)由 Anthropic 于 2024 年推出,是 Agent 连接外部工具、API、数据库、文件系统的标准协议,相当于 Agent 的“手脚”。A2A(Agent2Agent Protocol)由 Google 于 2025 年推出,是不同厂商、不同框架的 Agent 之间发现、派活、协作的开放标准,相当于 Agent 的“队友协议”。区别在于:MCP 解决 Agent 与工具/数据的连接,A2A 解决 Agent 与 Agent 之间的协作。

为什么有了 Agent OS 还需要 MCP 和 A2A?

Agent OS 负责管理 LLM、上下文和调度,但 Agent 还需要连接工具和数据(如查库、发邮件、调 API)以及与其他 Agent 协作(分工、派活、组队)。没有 MCP 和 A2A,Agent 就像“够不着世界的脑子”,无法与外部交互。协议能统一插头和队友语言,降低集成成本,减少幻觉。

MCP 如何帮助减少模型幻觉?

MCP 让 Agent 以标准化方式连接经过内部核查的可信数据源(如工具、API、数据库),返回结构化结果。模型因此可以“少靠猜、多靠查”,基于真实数据生成回答,从而缓解幻觉。

A2A 协议中 Agent 之间是如何协作的?

A2A 的典型流程包括:Agent 发布“能力卡片”(Agent Card)声明自己能做什么;客户端 Agent 将子任务派给远程 Agent;对于长任务,支持异步通知和流式回报进度。这样不同厂商的 Agent 可以互相发现、派活和协作。

使用 MCP 和 A2A 时有哪些风险?

主要风险有两个:一是间接提示词注入,攻击者将恶意指令隐藏在 Agent 读取的外部数据源中,导致敏感信息泄漏或恶意操作;二是级联幻觉,一个小错误(如日期识别错误)通过 A2A 协议传播给其他 Agent,可能引发连锁反应,扰乱整个系统。

级联幻觉在 Agent 协作中会造成什么后果?

级联幻觉指一个 Agent 的小错误通过 A2A 协议传播给其他 Agent,导致错误被放大。例如,读取发票的 Agent 因图片模糊将 7 月误认为 1 月,通过 A2A 告知物流 Agent 后,物流 Agent 错误地预定了半年前就该出发的货车并取消所有 7 月运力,瞬间扰乱整个供应链系统。

🏷️

标签

➡️

继续阅读