2025年是智能体元年,基于大模型的智能体应用大爆发,也带来了更多的互操作性要求。继Athropic推出MCP协议,让智能体更好与外部资源、工具、API接口集成之后,谷歌在4月份推出了开放的A2A(Agent2Agent)协议,旨在提升跨平台异构智能体之间的互操作性。原先都是单个智能体单打独斗,用户如果使用多个智能体完成一件任务,需要在不同智能体之间进行手动衔接(比如拷贝粘贴、导出导入等),现在有了A2A协议,智能体之间可以相互协作,一起完成更加复杂的任务。作为一个开放的协议,A2A协议允许不同框架和供应商的智能体相互协作,解决了企业在采用多智能体系统时面临的挑战。
虽然刚刚推出不久,已经有50多家行业领先企业宣布支持A2A协议。这其中包括两类企业,一类是技术合作伙伴,比如Atlassian、Box、Cohere、Intuit、Langchain、MongoDB、PayPal、Salesforce、SAP、ServiceNow、UKG、Workday等,另一类是服务提供商,包括埃森哲(Accenture)、波士顿咨询(BCG)、凯捷(Capgemini)、德勤(Deloitte)、Infosys、毕马威(KPMG)、麦肯锡(McKinsey)等。这一做法和当年谷歌联合80多家企业做安卓系统开源类似,是希望打造更开放的智能体生态。
01 A2A协议的核心概念
A2A 协议的核心概念包括:
-
Agent Card:一个公开的元数据文件,描述智能体的能力、技能、端点 URL 和认证要求。客户端使用它进行智能体发现。
-
A2A 服务器:实现 A2A 协议方法的智能体,接收请求并管理任务执行。
-
A2A 客户端:使用 A2A 服务的应用程序或其他智能体,发送请求到 A2A 服务器。
-
任务(Task):工作的基本单位,客户端通过发送消息来启动任务。
-
消息(Message):表示客户端和智能体之间的通信回合,包含多个部分(Parts)。
-
部分(Part):消息或工件中的基本内容单元,可以是文本、文件或结构化数据。
-
工件(Artifact):智能体在任务过程中生成的输出。
任务是用户使用智能体系统要完成的工作。任务的产出结果就是工件(Artifact),比如用户需要智能体完成的调研报告等。
AI应用可以使用A2A客户端来发送请求,启动一个任务。A2A服务器收到请求之后进行任务处理,可以与多个其他智能体进行交互,共同完成任务。每一个智能体都有一个AgentCard来说明自己的身份、能力和使用方法。A2A服务器就是通过AgentCard来发现智能体,并了解每一个智能体能做什么,怎么使用。
客户端与智能体之间的通信使用消息来完成。消息是包含任何非工件内容的实体。这些内容可以包括代理的思考、用户的上下文、指令、错误信息、状态更新或元数据。消息可以包含多个部分(Part),每个部分可以是不同格式的数据,包括文本、文件、结构化数据等。
02 A2A协议的典型工作流程
A2A 协议的典型工作流程包括以下几个阶段:
-
发现:客户端从服务器的已知 URL 获取 Agent Card。 -
初始化:客户端发送包含初始用户消息和唯一任务 ID 的请求。 -
处理:流式处理:服务器通过 SSE 事件发送任务进度和工件更新。 非流式处理:服务器异步处理任务并返回最终任务对象。 -
交互:如果任务需要输入,客户端通过相同的任务 ID 发送后续消息。 -
完成:任务最终达到完成、失败或取消状态。
03 A2A协议的通信机制与异步支持
A2A 支持三种通信机制:
1.A2A支持安全的推送通知机制,允许智能体在不连接的情况下向客户端发送更新;
2.客户端和服务器可以使用标准请求/响应模式;
3.客户端和服务器也可以通过SSE(服务器发送事件)进行流式更新。
在推送通知时,智能体需要验证通知服务的身份,并使用受信任的凭证进行身份验证,以确保通知的安全性。A2A 协议内置了对认证、授权、安全和隐私的支持。每个智能体可以在 Agent Card中声明自己的认证需求,如 OAuth2、API Key 或 JWT。
基于以上的通信机制,A2A 支持客户端在处理长时间运行的任务时进行轮询,代理也可以通过 SSE 向客户端推送状态更新,这样就能够支持异步方式。因为在大模型应用中,输出是需要一定时间的,如果采用异步方式,可以带给用户更好的体验。
04 A2A协议与MCP协议的比较
同样是属于智能体的通信协议,A2A协议关注智能体之间的通信,MCP关注智能体与外部资源、工具和API接口的通信。通过MCP,智能体可以调用外部工具或者与现有信息系统集成。
以下是A2A与MCP之间的对比:
维度 |
A2A协议 |
MCP协议 |
主要用途 |
代理间通信和协作 |
为模型提供工具和上下文,连接外部资源 |
架构模式 |
客户端–服务器(client智能体-remote智能体) |
客户端–主机–服务器(应用-LLM-外部资源) |
核心概念 |
智能体卡、任务、消息、工件 |
资源、工具、记忆、提示词 |
通信协议 |
HTTP,JSON-RPC,SSE,兼容企业现有IT堆栈 |
基于JSON-RPC 2.0, 支持本地(stdio)和远程(HTTP with SSE) |
数据安全 |
企业级身份认证和授权,符合OpenAPI安全标准 |
支持权限控制、用户同意机制和Https加密 |
任务处理 |
支持长时任务(数小时至数天),提供实时状态更新和异步通知 |
实时响应为主,适合短时操作(如数据库查询、设备控制) |
多模态支持 |
支持音频、视频流等多模态交互 |
文本为主,部分扩展至结构化数据 |
性能重点 |
异步通信,处理负载 |
高效上下文管理、并行处理、缓存以提高吞吐量 |
使用情况 |
初期行业支持良好,新兴生态系统 |
行业广泛采用,社区快速增长 |
典型应用场景 |
企业级任务分配、跨平台协作、复杂工作流自动化 |
增强问答系统、智能助手、知识管理 |
05 多智能体协作示例
考虑一个多智能体协作的场景,用户去旅游之前要制定行程,需要使用到行程助手智能体、机票/火车票预订智能体、酒店预订智能体等三个智能体。当前三个智能体是相互独立的,用户需要使用行程助手智能体首先制定初步行程,然后再通过机票/火车票预订智能体订机票、高铁票,通过酒店预订智能体订酒店,然后将机票、高铁票、酒店信息更新到行程中。
如果使用了A2A协议,用户可以直接向行程助手智能体提出任务请求:请帮我制定到南京、上海、杭州的七天行程,并预订机票/高铁票和酒店。然后三个智能体就可以协作完成上述任务,在行程助手智能体完成行程规划之后就向机票/火车票预订智能体和酒店预订智能体发出预订请求,然后等待处理结果并更新到行程中,最后向用户反馈行程的处理结果。过程中,行程助手智能体也可以随时和用户进行交互,获取更多信息或者确认各项处理选择。具体如下图所示。
结语
A2A协议的出现,为跨平台多智能体之间的协作提供了方便,将大大促进智能体的广泛应用。A2A协作的作用,就好比人与人之间通过语言进行交互,成为人类社会的基础,不同智能体可以通过A2A协议进行通信,构建出一个分布式的智能体网络,并通过相互协作带来生产效率的极大提升。



