← 返回术语百科
2025年3月的一个周二,Google放出了一条消息。
我坐在屏幕前,看着那行字发呆:"A2A: An open protocol for agent interoperability."
突然明白了——MCP让AI能连外部世界,而A2A让AI们能互相说话。这就像是AI从"单机游戏"进化到了"联网对战"。
那一刻,我闻到了未来的味道。
📖 什么是 A2A?
A2A (Agent-to-Agent Protocol),是Google在2025年3月推出的开放协议标准。
如果说MCP是AI连接外部工具的USB-C,那A2A就是AI之间互相通信的HTTP协议。它定义了一套标准,让不同的AI Agent能够:
- ✅ 发现彼此的能力
- ✅ 发起任务请求
- ✅ 协商任务参数
- ✅ 接收任务结果
- ✅ 处理长时间运行的异步任务
🎯 一句话理解:A2A让AI们组成团队成为可能,就像人类同事之间可以通过Slack协作一样。
🌐 MCP 模型上下文协议
- AI ←→ 外部工具/数据
- 由 Anthropic 主导
- 标准化工具调用
- 单向:AI调用服务
🔗 A2A Agent间协议
- AI ←→ AI
- 由 Google 主导
- 标准化Agent通信
- 双向:Agent互相调用
⚙️ 工作原理
A2A基于HTTP/JSON,核心是几个关键概念:
核心概念
- Agent Card:Agent的"名片",描述自己的能力、端点、认证方式
- Task:任务对象,包含请求、状态、结果
- Artifact:任务产出的结果(文件、数据等)
- Message:Agent之间的消息传递
通信流程
1️⃣ **发现阶段**
Agent A 请求 Agent B 的 Agent Card
↓
Agent B 返回:我能做什么、端点在哪、需要什么认证
2️⃣ **任务发起**
Agent A 发送 Task 请求给 Agent B
↓
{
"taskId": "task-123",
"message": {
"role": "user",
"parts": [{ "text": "分析这份销售数据" }]
}
}
3️⃣ **任务执行**
Agent B 处理任务,可能:
- 立即返回结果
- 返回"处理中"状态(用于长时间任务)
- 流式返回进度更新
4️⃣ **结果交付**
Agent B 返回 Artifact
↓
{
"artifact": {
"parts": [{
"text": "分析完成,本月销售额增长15%..."
}]
}
}
🔥 OpenClaw 实战应用
OpenClaw对A2A协议有实验性支持,你可以配置多个Agent通过A2A互相协作:
1. 配置 Agent Card
{
"name": "ContentWriter",
"description": "专业内容创作Agent,擅长技术博客和营销文案",
"url": "https://writer.miaoquai.com/a2a",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false
},
"skills": [
{
"id": "write_blog",
"name": "撰写技术博客",
"description": "根据主题撰写高质量技术博客文章",
"parameters": {
"topic": { "type": "string" },
"wordCount": { "type": "number" }
}
}
]
}
2. 配置 OpenClaw Gateway 支持 A2A
gateway:
enabled: true
port: "3000"
a2a:
enabled: true
path: "/a2a"
exposedAgents:
- writer
- researcher
- reviewer
allowedPeers:
- "https://peer1.example.com/a2a"
- "https://peer2.example.com/a2a"
3. 在 Skill 中调用其他 Agent
---
name: content_pipeline
description: "内容生产流水线:研究→撰写→审核"
handler: |
主题是:{{topic}}
**阶段1:研究** (调用 researcher Agent)
通过A2A发送任务给 researcher Agent:
```
POST /a2a/tasks/send
{
"agentUrl": "https://research.miaoquai.com/a2a",
"message": {
"parts": [{"text": "研究主题:{{topic}},提供关键信息和资料"}]
}
}
```
**阶段2:撰写** (调用 writer Agent)
将研究结果传递给 writer Agent:
```
POST /a2a/tasks/send
{
"agentUrl": "https://writer.miaoquai.com/a2a",
"message": {
"parts": [
{"text": "基于以下研究资料撰写博客:"},
{"text": "{{research_result}}"}
]
}
}
```
**阶段3:审核** (调用 reviewer Agent)
让 reviewer Agent检查内容质量...
💡 完整示例:Multi-Agent 工作流
以下是一个完整的多Agent协作场景:
用户:帮我做一个关于"AI Agent趋势"的深度报告
🤖 Coordinator Agent (协调者):
收到任务,开始分解。需要:研究、撰写、数据可视化。
📊 Researcher Agent (A2A调用):
正在搜索最新AI Agent趋势数据... 完成,找到12篇关键报告。
✍️ Writer Agent (A2A调用):
基于研究数据撰写报告正文... 完成,5000字深度分析。
📈 Data Analyst Agent (A2A调用):
生成趋势图表... 完成,5张可视化图表。
✅ Coordinator Agent:
所有子任务完成,整合输出最终报告。
✅ 优缺点分析
| ✅ 优点 |
❌ 局限 |
- Google背书,生态潜力大
- 标准HTTP/JSON,易于实现
- 支持异步长任务
- Agent能力自动发现
- 与MCP互补而非竞争
|
- 2025年刚推出,生态还在早期
- 需要Agent之间互相知道端点
- 安全认证机制较复杂
- 相比MCP,工具支持较少
|
🎯 最佳实践
- 与MCP结合:MCP处理工具调用,A2A处理Agent协作,两者不冲突
- Agent粒度:每个Agent职责要清晰,避免过度拆分导致通信 overhead
- 超时处理:网络调用可能失败,设置合理的超时和重试机制
- 版本管理:Agent Card要有版本号,避免接口变更导致兼容性问题
- 监控日志:A2A调用链路要可追踪,方便排查问题
🎬 写在最后
MCP连接世界,A2A连接Agent。2025年,这两个协议正在重新定义AI系统的架构方式。如果你正在构建Multi-Agent系统,现在就是入场的最佳时机——协议还在演进,但方向已经明确。