
什么是MCP和A2A协议?两者有何区别?
2025年05期【AI专栏】
本文摘编自刘炜博客“数图笔记”:《MCP如何与谷歌的A2A协议一起振兴图书馆AI服务?》《如何建立图书馆领域的MCP应用市场?》《有哪些模型、中间件与Agent框架原生支持MCP?》,点击标题可阅读原文
一、MCP协议的目标与架构
MCP(Model Context Protocol,模型上下文协议)是一种开放标准,用于让AI模型方便、安全地访问外部数据源和工具。为了解决AI 模型缺乏实时信息和与工具互动能力的问题,Anthropic 公司推出MCP协议并开源。Anthropic 希望通过开放 MCP 标准,鼓励业界广泛采用和参与开发,构建一个更加统一和繁荣的 AI 应用生态。
作为一项新兴的开放标准协议,MCP正迅速成为开发者社区的焦点。它被誉为 AI 世界的“USB-C 接口”,为大语言模型(LLM)与外部工具、数据源的交互提供了一种统一、高效的方式。
https://github.com/modelcontextprotocol

MCP架构采用Host-Client-Server模式:
- Host(宿主应用)是运行LLM或智能体的应用环境(如Claude桌面应用、IDE插件等),负责发起与数据源的连接;
- MCP Client(客户端)是由Host管理的中间代理,每个客户端与一个特定MCP服务器通信,确保安全隔离;
- MCP Server(服务器)则是实现MCP标准的轻量程序,为某一数据源或工具提供标准化接口,包括数据资源(resources)、函数工具(tools)和提示模板(prompts)等能力。
基于这一架构,不同领域的应用市场可以通过标准方式将AI模型与领域数据、工具相集成。作为一个开放的“AI工具接口”标准,MCP得到了各大模型提供商和开源Agent框架的关注与初步支持,纷纷探索将其纳入。
二、A2A协议的目标与核心概念
Agent2Agent协议(简称A2A)是Google于2025年推出的一种开放标准协议,旨在实现不同AI智能体之间的跨平台、跨供应商、跨框架的安全通信与协作。在A2A出现之前,不同供应商开发或使用不同框架(如LangChain, AutoGen)构建的智能体往往生活在各自的“孤岛”中,讲着“方言”,无法直接沟通。这使得构建跨系统、跨组织的复杂自动化工作流变得异常困难,通常需要依赖复杂的定制中间件、被迫接受供应商锁定,或者依靠人工介入来连接不同的AI系统。
A2A的目标是创建一个通用的“语言”或“协议”,让任何符合规范的智能体都能相互理解和交互,无论其内部实现如何。它旨在实现智能体之间的安全、可靠、跨平台、跨组织边界的通信与协作。
A2A协议的设计体现了几个核心原则和特性:
- 智能体优先 (Agentic-first):协议的设计侧重于支持智能体的自主协作能力,即使它们不共享内存、工具或上下文也能进行交互。它不仅仅是将智能体视为被调用的“工具”,而是将其视为可以主动沟通和协调的对等实体;
- 遵循标准 (Standards-compliant):尽可能利用广泛采用的Web技术,如HTTP、JSON、RESTful原则、服务器发送事件(SSE)等,以降低开发者的学习成本和集成难度;
- 默认安全 (Secure by default):协议设计中内置了对身份验证和授权的考量,以保护敏感数据和事务;
- 支持长时任务 (Long-running Tasks):明确设计用于处理可能需要数秒、数小时甚至数天才能完成的异步操作,并提供了任务状态跟踪机制;
- 模态无关 (Modality Agnostic):不局限于文本交互,设计上支持包括音频、视频流在内的多种通信模态。
A2A协议在架构设计上体现了对构建健壮、可扩展的多智能体系统的深刻思考。其标准化的发现机制 (Agent Card) 和完善的任务生命周期管理框架,恰好解决了在构建类似“MCP Market Place”这样的生态系统时所遇到的挑战(即如何发现服务以及如何管理复杂的交互)。其中Agent Card提供了一种标准化的服务发现方法,而任务管理框架则为智能体之间进行复杂的、状态化的、可能长时间运行的异步协作提供了必要的支持,这超出了MCP主要关注的请求-响应或简单工具调用的模式。这些特性表明,A2A是专门为协调多个自主实体执行复杂工作流而设计的,其架构重点在于智能体间的协调与编排。
三、MCP与A2A协议的差异与协同
A2A能够与MCP侧重不同层面的连接,能够形成完美的互补关系。简单来说:MCP解决“模型与工具对接”,而A2A解决“智能体与智能体对接”。下面从协议特点、功能侧重等方面对比两者差异,并探讨协同运作的可能。
协议差异对比
MCP和A2A都采用了客户端-服务器架构思想,但针对的对象不同:
- 连接对象:MCP的客户端(LLM或其Host应用)连接的是各种外部数据/工具服务器,关注为单个智能体提供上下文和操作能力;A2A的客户端则是一个智能体,连接的服务器是另一智能体所提供的协作接口。换言之,MCP= Agent ↔Tool/API,A2A= Agent ↔Agent;
- 通信内容:MCP定义了资源读取、工具执行、提示模版等原语,让模型能读数据、调函数、用模版;A2A定义的是任务Task和消息Message语义,用于代理之间分发任务、交换信息。A2A提供了任务生命周期管理(状态包括submitted、working、completed等)和流式结果支持,一个Agent可以请求另一个执行任务并持续收到中间进度或最终结果。相比之下,MCP的交互更类似函数调用或文件读取——一次请求对应一次结果,没有任务的多阶段状态管理;
- 标准描述:A2A引入了Agent Card概念,即每个Agent公开一个元数据文件(通常放在/.well-known/agent.json路径)描述自己的能力、技能、端点URL、所需认证等。这使得Agent可以被发现和了解,正如服务注册表。MCP则没有规范统一的服务发现机制,一般需要Host预先配置要连接的服务器地址。但MCP提供了工具和资源的自描述(服务器会列出自己有哪些工具函数及调用方式),某种程度上也允许客户端在连接后查询可用能力;
- 数据焦点:MCP直接面向数据/上下文整合,旨在提升单个模型的知识广度和操作能力;A2A侧重多智能体协作,关注如何让不同Agent互相配合、共享技能。因此,MCP被视为增强模型性能的手段,而A2A是扩展系统规模的手段——通过A2A可以把多个Agent组成一个更大的工作单元,各自发挥专长;
- 典型使用方式:在MCP场景中,一个LLM(如Claude)作为Host挂载多个客户端,每个客户端连向特定MCP服务器。例如Claude通过客户端A读取数据库,通过客户端B访问文件系统… 最终Claude综合这些信息回答问题。在A2A场景中,则可能是Agent X发现Agent Y会某项技能,于是通过Agent Y的A2A接口发送任务请求,Agent Y执行后将结果返回给X。这个过程中Agent Y本身可能再调用MCP去获取数据——因此两协议可以嵌套使用。
两者差异对比表

(注:“✅/❌”表示显著的有/无支持;两者并非截然对立,也有交叉:如一个Agent完全可作为MCP服务器提供信息给另一个Agent,此时在功能上MCP渠道也实现了Agent通讯,只是无任务协商能力。)
协同作用与多智能体网络
正如Google在A2A发布声明中所说:“A2A是开放协议,补充了Anthropic的MCP,后者为Agent提供工具和上下文”。两者协同能带来比各自单独使用更强大的自治智能体网络:
- 各司其职:MCP让单个Agent变得更聪明,因为它随时可以获取所需的信息、调用外部操作;A2A让多个Agent组队更高效,因为他们有了共同语言协调彼此。当一个复杂任务超出单Agent能力或需要并行时,A2A可以把任务拆分给多个Agent合作完成,每个Agent又通过MCP获取完成子任务所需的数据和工具。这种模式下,整个系统好比一个合作社:MCP是每位工人访问工具和原料的标准接口,A2A是工人之间沟通协作的标准接口;
- 多模型、多厂商共舞:通过A2A,一个Agent可以调用另一个Agent提供的服务,而双方底层可以是不同的大模型和平台(例如Agent A用Claude,Agent B用GPT-4)。A2A屏蔽了底层差异,让异构智能体能够互操作。同时,任何Agent如果需要更多信息,还能通过MCP连接自家数据源再反馈给请求方。这构建出一种跨服务、跨模型的Agent网络:不同组织或供应商开发的Agent都可以接入,同一个任务可以由最适合的Agent处理其部分。比如企业开发了一个法律顾问Agent(精通法律文档),又购买了一个财务分析Agent(由第三方提供,精通财报数据)。通过A2A协议,当用户提出一个法律+财务的综合问题时,法律Agent可以识别出财务部分交给财务Agent来处理,后者通过MCP连公司财务数据库拿到数据分析后,将结果返回法律Agent汇总,最终给出完整答案。整个过程对用户透明,但幕后各Agent各展所长,真正实现多专家系统的组合;
- 任务自治协商:A2A提供了任务的标准定义和协商流程,一个Agent可以像向另一个发起“服务请求”一样下达任务,并可以订阅任务进展。这意味着自治Agent网络能够自发形成工作流,而不需要人类编排每一步。例如,在无人干预的情况下,一个主Agent(统筹者)接到高层任务后,可通过Agent Card目录发现有哪些Agent可用,然后依次委派子任务。任务执行过程中,如果某子任务需要额外信息,负责该任务的Agent又可通过MCP或寻找其他Agent协助,从而动态组装出解决方案。这种协同远超单一LLM自行“思考”的范畴,更接近分布式团队协作。正如有评价指出,这种架构让系统“看起来更像一支协作的劳动力队伍,而非一堆脚本拼凑”;
- Loose Coupling & 重用:在MCP+A2A架构下,每个Agent可被设计得高度内聚、职责单一(如只管一类知识或操作),通过标准接口提供服务。这类似微服务架构原则,每个服务自包含状态,通过API交互。这样带来的好处是松耦合:新增或替换Agent不影响整体,其它Agent只需根据Agent Card发现新服务即可;以及重用:一个Agent提供的能力可被多个上层应用或其他Agent反复调用,不需要为每个应用重复开发。同理,MCP服务器提供的工具也可被不同Agent重用。这为“Agent市场”奠定了基础——优秀的Agent/工具可以作为独立服务发布,被有需要者组合使用。
需要指出的是,MCP和A2A的协同并不意味着所有场景都要两者同时上。根据Cisco Outshift团队的分析:如果两个Agent的关系只是信息提供(例如Agent B纯粹提供某数据库查询能力给Agent A用),那么无需复杂协商,可直接让Agent B作为MCP服务器供Agent A调用即可。仅当Agent之间需要共同决策、推理时,A2A的丰富交互才是必要的。现实系统中常会两种并存:简单调用走MCP接口,复杂协作走A2A协议。这种弹性组合保证性能和复杂度间的平衡。
综上,MCP与A2A在智能体网络中分别扮演“工具接入层”和“协作通信层”。两者结合,实现了多智能体自治协同的新范式,即“任意模型+任意工具+任意伙伴”的开放网络:一个Agent既能利用万千工具丰富自己,又能与万千其他Agent组成临时团队,共同完成任务。这被认为是迈向更大规模自治AI系统和Agent市场化的重要一步。
MCP和A2A的出现,为构建垂直领域的AI服务市场(Domain-Specific AI Service Marketplace)提供了核心技术支撑。我们可以想象,在学术出版、图书馆服务、企业知识管理等各领域,都将涌现出由众多Agent和工具服务组成的生态系统:各参与方通过标准协议连接,按需协作,形成繁荣的“智能体市场”。