一、导读
2025 年 4 月 9 日,Google 正式发布了 Agent2Agent(A2A)协议。
A2A 协议致力于打破智能体之间的隔阂,让它们能够跨越框架和供应商的限制,以一种标准化、开放的方式进行沟通与协作
截止到现在,代码仓库已经4.5k星

接下来,本文将深入剖析 A2A 协议的核心概念与架构,通过具体案例展示其在实际应用中的功能,
最后总结 A2A 协议对人工智能领域未来发展的重要意义。
二、A2A协议介绍
官方文档:https://google.github.io/A2A/#/documentation
本节为摘要,需要深度了解的可以自行查看
1、A2A与MCP协议的关系
-
MCP是专注模型的工具或数据的调用
-
A2A 更多是专注智能体的合作,跟MCP并不矛盾,是一个互补关系

2、以应用场景分析

想象一下,我们有下面一个协作流程
-
用户请求:
- 用户向系统提出生成销售分析报告的需求。
-
售前洞察代理工作:
售前洞察代理
分析销售数据,识别关键的销售趋势和客户行为模式。- 它确定报告中需要包含的关键指标,如销售额、产品类别、地区分布等。
-
数据可视化代理工作:
数据可视化代理
接收售前洞察代理
提供的分析结果和关键指标。- 它利用MCP协议使用工具层提供的数据和API生成相应的图表和图形。
-
A2A 协作:
数据可视化代理
通过A2A协议将生成的图表发送给售前洞察代理
。售前洞察代理
接收图表,并将其整合到销售分析报告中。
-
报告生成:
售前洞察代理
完成报告的编写,包括对图表的解释和对销售策略的建议。- 报告突出显示业绩增长点和潜在问题,为用户制定本季度的销售策略提供支持。
-
报告交付:
售前洞察代理
将完整的销售分析报告交付给用户。
这些组件都来自不同的生态圈,但是遵从相同协议,使得他们可以向搭积木一样,由用户的"问题"
自我调度生态圈的积木,产生了一个解决用户问题的的智能体。
3、A2A概念&功能
A2A协议的核心概念包括:
- 功能发现 :智能体可以使用JSON格式的智能体卡(
类似智能体的名片
)来公布其功能与验证方式,从而让客户端智能体能够确定可以执行任务的最佳智能体,并利用A2A与远端智能体进行通信。 - 任务管理:A2A协议定义了一个"任务"对象,客户端和远程Agent之间的所有沟通都是围绕着完成任务来进行的。这个"任务"对象有自己的生命周期(比如:待处理、进行中、已完成、失败等)。
- 协作:智能体可以相互发送消息,以传达上下文、回复、交付物或用户说明。
- 用户体验协商机制:每条消息均包含若干"内容单元",每个单元均标注特定内容类型,使客户端与远端智能体能够协商确定所需格式,并特别涵盖UI能力的协调。
A2A协议的功能包括:
- 允许智能体之间相互通信,安全地交换信息,并在各种企业平台或应用程序上协调行动。
- 支持企业级身份验证与授权,其认证方案在发布时即与OpenAPI标准保持同步。
- 支持包括音视频流在内的多种交互模态,并采用灵活设计,既能高效处理即时任务,也能支持需要数小时甚至数天(含人工介入环节)的深度研究任务。
通过A2A协议开发的智能体,可以通过https://domain/.well-known/agent.json
被开放式的发现,下面的案例会单独将
A2A比较重要的是一个 智能体的卡片(Card)https://google.github.io/A2A/#/documentation?id=agent-card-1

三、案例
克隆这个项目
javascript
git clone https://github.com/google/A2A

我们将启动2个Agent以及web界面,依赖与python3.13版本,并且安装使用uv
javascript
pip install uv
在此之前,会用到google的 Gemini Api key,自行注册一个
https://aistudio.google.com/apikey
1、CrewAI
本示例演示了一个使用 CrewAI 构建并通过 A2A 协议暴露的简单图像生成代理。
详情关于这个内容请阅读:
https://github.com/google/A2A/tree/main/samples/python/agents/crewai
白话文【画图的Agent】
启动服务
javascript
cd samples/python/agents/crewai
echo "GOOGLE_API_KEY=your_api_key_here" > .env 或者 set GOOGLE_API_KEY=你的key
这个命令将自动安装包跟运行服务
javascript
uv run .

默认为10001端口
现在我们来看看这个智能体的卡片信息
http://localhost:10001/.well-known/agent.json

我将描述的信息翻译如下
-
基本信息:
name
:智能体的名称,这里是"Image Generator Agent"。description
:对智能体功能的简要描述,说明它可以按需生成高质量图像,并利用强大的编辑功能来修改、增强或完全转换视觉内容。url
:智能体的服务地址,这里是http://localhost:10001/
,表示智能体在本地服务器上运行。version
:智能体的版本号,这里是1.0.0
。
-
能力(capabilities):
streaming
:是否支持流式传输,这里是false
。pushNotifications
:是否支持推送通知,这里是false
。stateTransitionHistory
:是否支持状态转换历史,这里是false
。
-
输入和输出模式(Input and Output Modes):
defaultInputModes
:智能体默认接受的输入模式,包括文本(text
)、纯文本(text/plain
)和PNG图像(image/png
)。defaultOutputModes
:智能体默认提供的输出模式,同样包括文本(text
)、纯文本(text/plain
)和PNG图像(image/png
)。
-
技能(skills):
- 包含一个或多个技能,每个技能都有其ID、名称、描述、标签和示例。
- 在这个例子中,有一个技能
image_generator
:id
:技能的唯一标识符,这里是image_generator
。name
:技能的名称,这里是"Image Generator"。description
:技能的详细描述,与智能体的描述相同。tags
:与技能相关的标签,这里包括generate image
和edit image
。examples
:技能的使用示例,这里是一个示例"Generate a photorealistic image of raspberry lemonade"。
2、LangGraph
本示例演示了一个使用 LangGraph 构建并通过 A2A 协议公开的货币转换代理。它展示了支持多轮对话和流式响应的会话交互。
详情关于这个内容请阅读:
https://github.com/google/A2A/blob/main/samples/python/agents/langgraph/README.md
白话文【货币汇率计算的】
启动服务
javascript
cd samples/python/agents/langgraph
echo "GOOGLE_API_KEY=your_api_key_here" > .env 或者 set GOOGLE_API_KEY=你的key
这个命令将自动安装包跟运行服务
javascript
uv run .

同样的你也可以访问这个智能体卡片信息
http://localhost:10000/.well-known/agent.json
3、在页面进行测试
javascript
cd demo/ui
echo "GOOGLE_API_KEY=your_api_key_here" > .env 或者 set GOOGLE_API_KEY=你的key
这个命令将自动安装包跟运行服务
javascript
uv run main.py
你将看到下面内容

将刚刚2个Agent全部注册上去
随后就可以体验对话了
你可以问,剩下的你自己的体验吧!
- 美元换算 (LangGraph)
- 帮我画一直小鸟(CrewAI)

四、结论
-
制定标准
我总觉得google正在抢占标准,掌控生态,国内起始早就有人在搞了
https://www.showapi.com/news/article/67da437d4ddd791c0e00a39f谁能制定标准,那么后续在Agent生态圈中一定会有主导权,或许就是
"安卓" "IOS" "小米" 生态圈了
-
MCP会持续发展
讲真的 MCP就是将数据跟API等,能够实现一个插座调用,A2A有点像是过度设计
一个Agent,即可以看成工具,也可以说是Agent,这种状态说不清的,各位看官自有见解
下面是A2A官方的一幅图,对应的文档地址可以自己看看
https://google.github.io/A2A/#/topics/a2a_and_mcp
