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 架构设计中的真实经验。所有事实性表述都可追溯到原始素材;具体案例为通用化描述,不指向特定企业。*