精选·工具调用与协议

MCP 和 A2A 都是协议,区别在哪?为什么 MCP 解决不了 A2A 要解决的问题?

91学AI·2026/7/13·7 阅读

考察点

快手、阿里都问过,是 MCP/A2A 题的进阶版。面试官想听的不是两个定义并列背诵,而是「为什么一个协议搞不定两件事」的底层论证。追问方向:能不能只选一个、生产上怎么共存。

参考答案

一张表看清分工

维度MCPA2A
交互双方Agent ↔ 工具/数据源Agent ↔ Agent
方向垂直(能力下沉)水平(对等协作)
核心抽象Tool / Resource / PromptAgent Card / Task / Artifact
交互模式请求-响应,同步为主任务制,异步、多轮、长耗时
对端的假设无智能,确定性执行有智能,自己规划和决策
发起方模型决策(经 Host)Agent 的规划层

为什么 MCP 解决不了 A2A 的问题

关键在「对端的假设」这一行。MCP 的世界观里,Server 是没有智能的能力提供方:你传确定的参数,它执行确定的逻辑,返回确定的结果,一次请求-响应闭环。这套抽象套在「调另一个 Agent」头上会立刻崩掉:

  1. 输入装不下:给另一个 Agent 派活,输入往往不是结构化参数而是一句模糊的话——「帮我盯一下这个竞品的动态」。硬塞进 Tool 的 JSON Schema,等于逼调用方替对方做规划,Agent 的智能被削成了函数。
  2. 时间装不下:工具调用假设秒级返回,Agent 干活是分钟到小时级。MCP 没有任务对象、没有状态机、没有「先挂起回头再问」的语义,长任务只能挂着连接干等。
  3. 交互装不下:协作中对方可能反问(「预算上限是多少」),这在 MCP 里没有对应原语——Tool 要么成功要么报错,没有「做到一半需要补充输入」这个状态。A2A 的 input-required 状态和多轮 Message 就是干这个的。
  4. 发现装不下:工具发现是列函数清单,Agent 发现要知道对方「会干哪类活、输出什么形态、怎么鉴权」,信息量和语义层级不同,所以 A2A 有 Agent Card 而不是复用 tools/list。

反过来 A2A 也替代不了 MCP:用它调一个查汇率的函数,等于为一次确定性调用维护任务状态机,杀鸡用牛刀还更慢。

生产上怎么共存

标准的多 Agent 系统里两者是嵌套关系:主 Agent 通过 A2A 把子任务委托给远程的专业 Agent;每个专业 Agent 内部再通过 MCP 接自己的数据库、API、文件系统。A2A 是组织对组织的接口,MCP 是组织内部对工具的接口,边界清晰。判断一个新接入方该用哪个,就问一句:对面是会自己动脑的 Agent,还是等参数执行的函数?前者 A2A,后者 MCP。

可能的追问

  • 能只用 MCP 模拟 Agent 间协作吗? 技术上可以把「调某 Agent」包成一个 Tool,但这只是把 A2A 的问题(长任务、多轮、发现)推回给自己造轮子,协议的意义就是不用每家公司各造一遍。
  • 两个协议会融合吗? 短期内更可能是边界磨合而非融合,比如远程 MCP Server 和轻量 Agent 的界限会模糊。但「函数语义」和「任务语义」的差异是本质的,两套抽象大概率都会留着。
  • A2A 里的 Remote Agent 自己不接工具行不行? 完全可以,它可能纯靠模型能力干活(比如翻译 Agent)。MCP 是 Agent 增强能力的手段,不是 Agent 的必备组件。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.