A2A协议:AI Agent间通信标准,和MCP有什么不同
🩺 摘要
你有一个写文章的AI,一个画图的AI,一个发邮件的AI。想让它们配合工作——写文章AI写完→通知画图AI配图→通知邮件AI发送。但AI之间怎么通信?A2A就是答案。
📝 详情
A2A是什么
A2A(Agent-to-Agent)是Google推出的Agent间通信协议。它的目标:让不同厂商的AI Agent能互相发现、通信、协作。
如果说MCP是「AI连工具」,A2A就是「AI连AI」。
为什么需要A2A
2026年的AI生态里,Agent越来越多。每个Agent都是一个「数字员工」——有的擅长搜索,有的擅长写作,有的擅长画图。
但你得手动协调它们。A2A让Agent们自己协调。
核心概念
Agent Card
每个Agent发布一个「名片」,描述自己会什么:
{
"name": "画图助手",
"description": "根据文字描述生成图片",
"skills": ["image-generation", "image-editing"],
"url": "http://draw-agent:8080/a2a"
}
其他Agent看到这张名片就知道它能干什么。
Task
一个Agent给另一个Agent发任务:
{
"task_id": "task-001",
"type": "image-generation",
"input": {
"prompt": "一只橘猫坐在窗台上看夕阳",
"style": "水彩风"
}
}
通信流程
Agent A(写作助手)
↓ 发现Agent B的画图技能
↓ 发送Task:「给这篇文章配一张图」
Agent B(画图助手)
↓ 执行任务
↓ 返回图片URL
Agent A
↓ 把图片嵌入文章
↓ 输出最终结果
实战:Python实现
# Agent A 发现并调用 Agent B
import requests
import json
# 1. 发现Agent
response = requests.get("http://draw-agent:8080/.well-known/agent.json")
agent_card = response.json()
print(f"发现Agent: {agent_card['name']}")
print(f"技能: {agent_card['skills']}")
# 2. 发送任务
task = {
"task_id": "img-001",
"type": "image-generation",
"input": {"prompt": "AI芯片设计图,科技感蓝色调"}
}
response = requests.post(
"http://draw-agent:8080/a2a/tasks",
json=task
)
print(f"任务已提交: {response.json()}")
# 3. 获取结果
result = requests.get(f"http://draw-agent:8080/a2a/tasks/img-001/result")
print(f"图片URL: {result.json()['output']['image_url']}")
MCP vs A2A
很多人搞混这两个:
| 协议 | 连接 | 类比 |
|---|---|---|
| MCP | AI → 工具 | USB协议 |
| A2A | AI → AI | HTTP协议 |
MCP让AI能用工具,A2A让AI能找同事。
2026年生态
A2A还算早期。Google在自己的Agent平台用了,开源社区也在跟进。预计2027年会成为Agent间通信的标准。
一句话
A2A让AI Agent从「单打独斗」变成「团队作战」。
💬 评论 (0)