AI模型已然从文字走向多模态,能力边界不断拓展。从斯坦福小镇到 ChatDev,再到 AutoGen 和 LangGraph,多 Agent 协作模式也在不断发展。
个体越聪明,协作越复杂,群体智慧越强大——人类如此,AI亦然。
当个体 LLM 成熟到一定程度,协作复杂度达到新的临界点,A2A(Agent to Agent)协议的出现,为智能体互联提供标准化规范。
一、A2A 是什么
A2A (Agent to Agent) 是 Google 于 2025 年 4 月推出的智能体间协作协议,解决异构AI智能体的互操作问题。其核心是使智能体能够具备:
- 发现能力:通过 Agent Card 了解其他智能体的技能
- 协商交互:选择合适的通信模态和格式
- 管理任务:处理有状态的、长期的协作工作流
- 安全协作:在不暴露内部实现的前提下交换信息
这种协议,是对 MCP 协议的补充,MCP 是面向上下文的协议,极大的扩展了 Agent 的能力,增强了 LLM 和外部系统的交互能力。A2A 是面向 Agent 互通的协议。两者结合,为 LLM 处理更加复杂任务提供的技术框架。
五大设计原则:
- 简单原则:基于 HTTP、JSON-RPC 2.0、SSE 等成熟标准,降低实施门槛
- 企业就绪:协议架构兼容企业级身份验证、授权、安全、隐私、审计、监控标准,支持与现有企业基础设施无缝集成
- 异步优先:原生支持长期任务执行和人机协作循环,通过状态管理和多种通信模式实现异步协作。
- 模态无关:协议在设计上不偏向特定模态,通过统一的 Part 类型系统支持文本、文件、结构化数据、多媒体等多种内容类型的交换
- 不透明执行:基于能力声明进行协作,隐藏内部实现细节
A2A 是为 AI 智能体生态设计的”网络协议”,实现了标准化、安全化、产业化的智能体协作机制。
二、核心概念
A2A 核心协议实体,涉及 Agent 本身以及通信所需的数据对象。
2.1 Agent
一个 Agent 系统,如上所示。它是一个独立的、能够自主决策的智能系统,可以规划、调用工具、完成动作,具备记忆。
在 A2A 协议中,其被赋予了更多能力,比如 Remote Agent 的通信与协作。
- Client Agent:一次交互中的用户意图代理执行者,通过 AgentCard 发现和匹配合适的 Remote Agent,明确期待的结果格式,但无需了解具体实现方式。
- Remote Agent:一次交互中的专业服务提供者,通过 A2A 标准接口接收请求,以不透明方式处理任务并交付结果,内部实现对 Client 完全隐藏。
Client Agent 和 Remote Agent 的身份本身是相对的。
2.2 数据对象
- AgentCard:Agent的”身份证”和”能力说明书”,即我是谁,我能干什么。它被用于服务发现和能力匹配。本质上,它是 Agent 向外界声明自己身份、技能和接入方式的标准化元数据的 json 文档。
核心字段:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25{
"name": "翻译专家Agent",
"description": "支持多语言翻译服务",
"url": "https://translate-agent.example.com/a2a/v1", //Agent的HTTP服务地址
"capabilities": {
"streaming": true, // 支持Server-Sent Events流式更新
"pushNotifications": false // 不支持webhook异步推送
},
"securitySchemes": { // 声明Agent支持哪些认证方式
"oauth2": {
"type": "oauth2",
"flows": {...}
}
},
"security": [{"oauth2": ["translate"]}], // 声明访问该Agent的安全要求:必须使用oauth2方案并具备translate权限
}
"skills": [
{
"id": "text-translation", // 技能ID
"name": "文本翻译", // 技能名称
"description": "多语言文本翻译", // 技能描述
"tags": ["translation"] // 技能标签,支持基于标签的模糊匹配和分类搜索
}
]
} - Message:Agent 间通信的基本载体,承载一次对话回合的完整信息,包括发送者身份、内容和上下文。
核心字段:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21{
"messageId": "msg-12345", // 每次消息传递都必须唯一
"role": "user", // "user" 或 "agent"
"parts": [ // 多模态内容数组
{
"kind": "text",
"text": "请帮我分析这个数据文件"
},
{
"kind": "file",
"file": {
"name": "data.csv",
"mimeType": "text/csv",
"bytes": "base64编码内容..."
}
}
],
"taskId": "task-67890", // 可选,任务关联标识
"contextId": "ctx-abc123", // 可选,会话上下文标识。唯一表示一次请求的一个业务流程
"kind": "message" // message, task, status-update 等
} - Part:Message 和 Artifact 的最小内容单元,通过统一的类型系统表示多模态数据,支持在 A2A 协议中进行序列化传输。
核心字段:1
2
3
4
5
6
7
8{
"kind": "file",
"file": {
"name": "image.png",
"mimeType": "image/png",
"bytes": "iVBORw0KGgoAAAANSUhEUgAAAAUA..." // base64编码
}
} - Task:复杂请求的生命周期管理容器,跟踪任务状态、存储交互历史、管理执行上下文。
核心字段:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24{
"id": "task-987654", // Task的全局唯一标识符
"contextId": "ctx-abc123",
"status": {
"state": "working", // Task 的生命周期:submitted/working/completed/failed等
"timestamp": "2025-06-17T10:35:30Z"
},
"history": [ // 历史记录
{
"messageId": "msg-12345",
"role": "user",
"parts": [...],
"kind": "message"
}
],
"artifacts": [ // 任务成果
{
"artifactId": "report-001",
"name": "分析报告",
"parts": [...]
}
],
"kind": "task"
} - Artifact:任务执行的最终交付物,包含 Agent 生成的具体成果,支持增量更新和流式传输。
核心字段:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19{
"artifactId": "report-001",
"name": "分析报告",
"description": "数据分析结果",
"parts": [
{
"kind": "text",
"text": "# 分析报告\n\n本次分析发现..."
},
{
"kind": "file",
"file": {
"name": "chart.png",
"mimeType": "image/png",
"uri": "https://storage.example.com/chart.png"
}
}
]
}
三、主要流程
3.1 标准流程
- 发现阶段
Client Agent 通过获取 Remote Agent 的 AgentCard 了解其身份和能力。AgentCard 包含 agent 的服务端点、认证要求、支持的输入输出模式、具体能力等元数据信息,实现智能体的标准化服务发现。
在实践过程中,可以通过注册中心(比如 Nacos)实现 Agent 的自动注册和发现。 - 通信阶段
Client Agent 基于 AgentCard 中的认证要求,在 HTTP 请求头中携带预先获得的认证凭证(如Bearer token、API Key等),通过 JSON-RPC 2.0 的message/send
或message/stream
方法向 Remote Agent 发送Message。Message包含角色标识(user/agent)、多模态内容部分(Parts)和元数据,建立标准化的安全通信信道。 - 协作阶段
Remote Agent 接收 Message 后,根据请求复杂度选择直接返回 Message 响应,或创建 Task 管理复杂的处理过程。对于Task模式,在生命周期内双方通过Message进行多轮交互。每个 Message 由多个 Part 组成以承载具体的多模态内容(文本、文件、结构化数据)。 - 交付阶段
Remote Agent 通过 Artifact 交付任务成果,支持流式传输(SSE)实现实时更新,以及异步推送通知到 Client 的 webhook 端点。
3.2 基于 A2A 的应用增强
基于 A2A 协议的标准化接口,可以在应用层构建以下增强型功能:
智能路由:Client 通过解析 AgentCard 元数据,根据能力匹配度、负载状况、响应时延等指标,实现任务的智能分发和负载均衡。
任务编排:Client 作为编排引擎,将复杂业务流程分解为多个子任务,通过 A2A 协议协调多个专门 Agent,支持串行、并行、条件分支等执行模式。
服务治理:结合注册中心和监控系统,基于 AgentCard 的标准化描述实现Agent的自动发现、健康检查、故障转移和版本管理。
四、参考链接
Kafka, A2A, MCP, and Flink: The New Stack for AI Agents
Smart Routing: The Hidden Secret Behind 10x More Powerful AI Systems
Key Concepts in A2A
Agent2Agent (A2A) Protocol Specification
万字长文深入浅出教你优雅开发复杂AI Agent