引言:智能体时代的“TCP/IP协议”
当一个体育智能体需要调用地图智能体获取场馆位置,当一个医疗诊断智能体需要请求影像分析智能体解读CT片,当一个旅行规划智能体需要协同航班、酒店、日历多个智能体完成行程安排——这些跨智能体协同的场景,都需要一套统一的通信标准。
Google在2024年提出的A2A(Agent-to-Agent)协议,正是为解决“智能体孤岛”问题而生,被业内称为“智能体世界的TCP/IP”。
本文整合两大技术文档的核心精华,系统拆解A2A协议的设计哲学、实现原理、实战步骤与应用场景。无论是开发者还是技术决策者,都能通过本文掌握“让不同智能体无缝协作”的核心技术,从理论到代码全面落地跨智能体系统。
一、A2A协议核心解析:为什么它是智能体协同的基石?
A2A协议的本质是智能体间通信的通用语言,它定义了智能体如何发现彼此、传递任务、交换数据,最终实现跨系统协作。要理解其价值,需从协议定位、核心概念和解决的痛点入手。
1.1 协议定位与行业价值
在A2A协议出现前,智能体间的协作面临三大痛点:
- 通信壁垒:不同框架开发的智能体(如LangChain Agent、自主研发Agent)无法直接对话,需为每对智能体开发专属适配层;
- 能力不透明:智能体无法知道其他智能体的功能(如“能否查询航班”“是否支持支付”),导致调用盲目性;
- 协作无规范:任务状态(如“已接受”“执行中”“失败”)缺乏统一标准,跨智能体流程难以追踪。
A2A协议通过标准化解决这些问题,目前已有LangChain、MongoDB、火山引擎等50+服务商接入,形成初步生态。其与MCP(地图控制平台)的定位差异如下:
- MCP:聚焦“智能体与工具的交互”(类似API规范),解决单个智能体的能力扩展问题;
- A2A:聚焦“智能体与智能体的交互”(类似HTTP协议),解决多智能体的协同问题。
1.2 核心概念:智能体协作的“身份证”与“契约”
A2A协议通过两个核心概念实现标准化通信:Agent Card(智能体名片) 和Task(任务契约)。
(1)Agent Card:智能体的“能力说明书”
Agent Card是智能体的数字化身份标识,包含其名称、支持的技能(功能)、通信地址等信息,让其他智能体能快速了解其能力。
{
"name": "绩效管理智能体",
"version": "1.0.2", // 版本号,用于兼容性管理
"description": "查询员工绩效分数与评级",
"endpoint": "http://perf-agent.example.com:10000", // 通信地址
"skills": [
{
"id": "query_perf_score", // 技能唯一标识
"name": "绩效分数查询",
"description": "查询指定员工的月度/年度绩效分数,支持按姓名检索",
"examples": ["张三2024年Q1的绩效分是多少", "李四的年度评级是什么"]
},
{
"id": "query_team_ranking",
"name": "团队绩效排名",
"description": "返回指定部门的绩效排名列表"
}
],
"supported_content_types": ["text/plain", "application/json"] // 支持的数据格式
}
核心作用:
- 能力 discovery:其他智能体通过Agent Card快速判断“该智能体能否解决我的问题”;
- 通信路由:提供接入地址,避免智能体间“找不到彼此”;
- 版本兼容:通过version字段处理不同版本智能体的交互逻辑。
(2)Task:智能体间的“协作契约”
Task是智能体间传递的任务载体,包含任务内容、状态、结果等信息,通过状态机管理协作流程。
Task状态机:
CREATED(创建) → ACCEPTED(已接受) → PROCESSING(处理中) → COMPLETED(完成)
↘ FAILED(失败) ↗ ↗
- CREATED:任务已创建但未被目标智能体接收;
- ACCEPTED:目标智能体已接收任务并开始处理;
- PROCESSING:任务执行中(可选状态,用于长耗时任务);
- COMPLETED:任务成功完成,返回结果;
- FAILED:任务执行失败(如参数错误、权限不足),返回错误原因。
Task数据结构示例:
{
"task_id": "t-7f92e1b3", // 任务唯一ID
"sender": "did:a2a:company:hr-agent", // 发送方智能体ID(DID格式)
"recipient": "did:a2a:company:perf-agent", // 接收方智能体ID
"message": {
"parts": [{
"type": "text", "text": "查询张三2024年Q2的绩效分数"}]
},
"status": "ACCEPTED",
"created_at": "2024-07-01T10:30:00Z",
"updated_at": "2024-07-01T10:30:05Z",
"ttl": 300 // 任务超时时间(秒),超时未处理自动失败
}
二、协议实现原理:C/S架构与通信流程全解析
A2A协议采用客户端-服务器(C/S)架构:提供服务的智能体作为Server,调用服务的智能体作为Client。通信流程遵循“发现→认证→任务传递→结果返回”的标准路径。
2.1 通信流程全景图
关键步骤解析:
- 智能体发现:Client通过Server的Endpoint请求Agent Card,了解其是否支持目标技能;
- 认证授权:Server通过OAuth 2.0验证Client的调用权限(如“是否允许查询绩效”);
- 任务处理:Server接收任务后,调用本地工具(如数据库、API)完成处理;
- 状态同步:Server实时更新任务状态,Client可通过轮询或事件通知获取进度。
协议细节补充:
通信协议规范:
最佳实践建议:
- 服务发现层:建议部署Agent Registry实现智能体自动发现
- 认证优化:采用JWT替代OAuth 2.0简化流程
- 状态管理: