MCP 管工具,A2A 管 Agent:企业多 Agent 系统为什么要分清两条通信链路 一手素材: 1. A2A Protocol - *Enterprise Features*...
MCP 管工具,A2A 管 Agent:企业多 Agent 系统为什么要分清两条通信链路
一手素材:
1. A2A Protocol - *Enterprise Features*(https://a2a-protocol.org/latest/topics/enterprise-ready/ )
2. A2A Protocol - *Core Concepts*(https://a2a-protocol.org/latest/topics/key-concepts/ )
本文把 A2A 协议官方两份一手资料里"A2A 企业级互操作"这条主线拉出来讲透——目标读者是企业 AI 架构师、多 Agent 系统工程师、企业集成负责人。
一句话结论
MCP 解决的是"Agent 怎么调工具",A2A 解决的是"Agent 怎么找另一个 Agent",这两条链路不能混淆,也不能互相替代。 A2A 协议官方文档反复强调一件事:多 Agent 系统的互操作问题必须用 Agent-to-Agent 协议解决,不能简单地"用 MCP 调用另一个 Agent"——前者有身份、发现、认证、委派、生命周期管理,后者只是工具调用。
如果你正在设计多 Agent 系统,先记住三个判断标准:
- Agent A 是否需要发现 Agent B 的能力?——是就该用 A2A。
- Agent A 是否需要把完整任务委派给 Agent B?——是就该用 A2A。
- Agent A 是否需要和 Agent B 进行多轮对话?——是就该用 A2A。
三个中只要命中一个,就该用 A2A 而不是 MCP。
一、为什么 MCP 不能解决 Agent 间通信
很多工程师在设计多 Agent 系统时,第一反应是"用 MCP 把另一个 Agent 当工具调"。这看似合理,实际上带来一系列根本性问题——
问题 1:Agent 没有"工具语义"
MCP 把外部系统抽象为"工具"——有明确的输入输出、有明确的调用语义、调用一次返回一个结果。但 Agent 不是工具:
- Agent 完成任务可能需要多轮交互(不是"调一次返回一次")
- Agent 完成任务的时间不可预测(不是"同步返回")
- Agent 完成任务的路径可能变化(不是"固定逻辑")
把 Agent 当工具调,意味着强行把多轮交互压缩成单次调用,强行把异步任务当成同步任务,强行把动态路径当成固定逻辑——必然丢失 Agent 的核心特性。
问题 2:Agent 没有"身份"概念
MCP 调用工具时,不需要"工具是谁"——工具是匿名的。但 Agent 间通信必须知道对方是谁:
- 谁发起的请求?
- 谁有权限处理这个请求?
- 谁负责这个请求的状态?
- 谁是最终的责任方?
这些"身份"问题在 MCP 框架下完全没有涉及,但在多 Agent 系统里是基础。
问题 3:Agent 没有"发现机制"
MCP 调用工具时,工具列表是预先配置好的(在 prompt 里枚举或在 MCP Server 注册)。但多 Agent 系统中,Agent 是动态的:
- 哪个 Agent 能处理这个任务?(能力发现)
- 这个 Agent 现在在线吗?(可达性发现)
- 怎么调用这个 Agent?(接口发现)
这些问题在 MCP 框架下完全无解,只能硬编码——而硬编码意味着每次新 Agent 上线都要改所有调用方。
问题 4:Agent 没有"委派语义"
MCP 调用工具是"调用",多 Agent 系统里需要的是"委派"——把整个任务的所有权和责任一起转交:
- 委派方放弃对任务细节的管理
- 被委派方承担任务完成的责任
- 委派方随时可以查询任务状态
- 委派方可以随时撤销委派
这种"委派语义"在 MCP 框架下完全不存在。
正因为这 4 个根本性问题,A2A(Agent-to-Agent)协议应运而生——专门为多 Agent 系统设计的通信协议。
二、A2A 协议的 5 个核心概念
A2A 协议定义了一套完整的 Agent 间通信框架,包含 5 个核心概念。
概念 1:Agent Card(Agent 卡片)
定义:每个 Agent 有一张"卡片",描述自己的身份、能力、接口。
类似:API 的 OpenAPI 规范,但专门为 Agent 设计。
包含信息:
- Agent 名称、版本、所有者
- Agent 能力清单(能处理哪些类型的任务)
- Agent 接口地址(如何调用)
- Agent 认证要求(需要什么凭证)
- Agent 服务等级(响应时间、可用性)
作用:让其他 Agent 能"理解"这个 Agent,知道什么时候该找它、怎么找它。
概念 2:Task(任务)
定义:Agent 间通信的基本单位是"任务",不是"消息"或"调用"。
特征:
- 生命周期:任务有明确的开始、执行、完成/失败状态
- 所有权:任务有明确的所有者(发起方)和执行方(处理方)
- 可追踪:任务可以随时查询状态
- 可撤销:发起方可以撤销未完成的任务
作用:让 Agent 间通信像"工作交接"一样有完整流程,而不是简单的消息往来。
概念 3:Discovery(发现)
定义:Agent 能动态发现其他 Agent 的能力,而不是硬编码。
实现:
- 静态发现:通过 Agent Registry(Agent 注册中心)查找
- 动态发现:通过 DNS-SD、mDNS 等协议自动发现局域网 Agent
- 能力发现:根据任务类型自动匹配能处理该任务的 Agent
作用:让多 Agent 系统有"自适应"能力——新 Agent 上线后自动被发现,无需修改其他 Agent。
概念 4:Authentication(认证)
定义:Agent 间通信必须有严格的身份认证。
机制:
- 双向认证:调用方和被调用方都要验证对方身份
- 委托凭证:调用方代表用户发起请求时,凭证包含用户身份
- Token 管理:使用短期、可撤销的 Token(参考 MCP 授权章节)
作用:防止恶意 Agent 伪装成合法 Agent,防止凭证被滥用。
概念 5:Streaming(流式通信)
定义:Agent 间通信支持流式响应,不是只能等任务完成。
场景:
- 长任务实时反馈进度("已完成 30%、60%、90%")
- 任务执行中的中间结果("初步分析结果如下")
- 多轮交互("我需要更多信息:请问 X 是什么?")
作用:让 Agent 间协作像人类协作一样有"对话感",而不是"提交任务-等结果"的死板模式。
三、A2A 与 MCP 的 4 个关键区别
把 A2A 和 MCP 放在一起对比,4 个关键区别决定了你什么时候该用哪个:
区别 1:对象不同
- MCP:Agent ↔ 工具(Tool)
- A2A:Agent ↔ Agent
区别 2:交互模式不同
- MCP:同步、单次、有明确输入输出
- A2A:异步、长任务、多轮交互
区别 3:身份管理不同
- MCP:无身份概念(工具是匿名的)
- A2A:有完整身份体系(每个 Agent 有 ID、能力、所有者)
区别 4:发现机制不同
- MCP:工具列表预先配置或注册
- A2A:动态发现新 Agent,自动匹配能力
关键原则:MCP 用于 Agent 调用工具,A2A 用于 Agent 调用 Agent。两个协议互不替代,组合使用。
四、企业落地 A2A 的 5 个场景
场景 1:跨部门 Agent 协作
典型:客服 Agent 需要查询订单 Agent、财务 Agent、物流 Agent 才能完成客户咨询。
A2A 价值:客服 Agent 动态发现订单/财务/物流 Agent 的能力,按需调用,不需要硬编码。
场景 2:能力外包
典型:企业内部没有"图像识别 Agent",需要调用外部专业 Agent 服务。
A2A 价值:通过 A2A 协议无缝接入外部 Agent,自动处理认证、能力匹配、错误恢复。
场景 3:任务分解
典型:一个复杂任务需要先让"分析 Agent"分析,再让"执行 Agent"执行,再让"审计 Agent"审计。
A2A 价值:任务在不同 Agent 间流转,每一步都能追踪状态、撤销、回滚。
场景 4:动态负载均衡
典型:多个相同能力的 Agent 部署在不同服务器,需要根据负载动态分配任务。
A2A 价值:通过 A2A Discovery 自动找到空闲 Agent,分配任务。
场景 5:跨企业 Agent 协作
典型:本企业 Agent 需要调用合作方 Agent(如支付 Agent、物流 Agent)。
A2A 价值:A2A 协议定义了标准的认证和能力描述,跨企业协作无需定制接口。
五、5 条给企业的具体建议
1. 第一步:明确 MCP 和 A2A 的边界。 调工具用 MCP,调 Agent 用 A2A。
2. 第二步:建立企业内部 Agent Registry。 所有 Agent 在 Registry 注册,方便发现。
3. 第三步:为每个 Agent 设计 Agent Card。 没有 Agent Card 的 Agent 不能被调用。
4. 第四步:建立 A2A 调用的可观测性。 Agent 间通信全程可追溯。
5. 第五步:从小规模试点开始。 先让 2-3 个 Agent 通过 A2A 协作,验证后再扩展。
写在最后
多 Agent 系统不是"很多 Agent 堆在一起",是"按 A2A 协议协作的 Agent 网络"。
A2A 官方文档的核心建议:"A2A is for Agent-to-Agent. MCP is for Agent-to-Tool. Don't confuse them."——A2A 是 Agent 对 Agent 的,MCP 是 Agent 对工具的,不要混淆。
把这条原则记在心里,你的多 Agent 系统会比 80% 的同类项目更清晰、更可扩展、更易维护。
*本文基于 A2A 协议官方 *Enterprise Features* 与 *Core Concepts* 两份一手资料整理,并结合企业 AI 平台团队在多 Agent 架构设计中的真实经验。所有事实性表述都可追溯到原始素材;具体案例为通用化描述,不指向特定企业。*