0

A2A协议入门教程2026:AI Agent多智能体协作从零到实战

2026.05.16 | youres | 30次围观

什么是A2A协议?

A2A(Agent-to-Agent)是Google于2025年推出的开放协议,专门解决AI智能体之间如何互相发现、通信和协作的问题。到了2026年,A2A已经成为AI Agent多智能体系统的通信标准,被业界广泛采纳。

如果MCP是AI调用工具的USB接口,那A2A就是AI之间打电话的通信协议。

为什么需要A2A?

单Agent的局限

单个AI Agent再强大,也有力所不及的场景:

  • 旅行规划需要同时协调航班、酒店、景点Agent
  • 企业流程需要审批Agent、财务Agent、通知Agent协作
  • 复杂研究需要搜索Agent、分析Agent、写作Agent分工

A2A解决的核心问题

问题A2A的解法
Agent之间格式不统一标准化消息格式(JSON-RPC 2.0)
无法发现其他AgentAgent Card机制,自动发布和发现能力
通信不可靠任务生命周期管理,支持长时间异步任务
安全风险内置认证授权(API Key/OAuth2/HTTP认证)

A2A核心架构

两个角色

┌──────────────┐                    ┌──────────────┐
│  Client Agent │───── A2A协议 ────▶│ Remote Agent │
│  (发起方)    │◀──── A2A协议 ─────│  (服务方)   │
└──────────────┘                    └──────────────┘
  • Client Agent:发起请求的智能体,相当于"打电话的人"
  • Remote Agent:响应请求的智能体,相当于"接电话的人"

注意:一个Agent可以同时是Client和Remote,角色是相对的。

Agent Card(智能体名片)

每个Agent通过Agent Card声明自己的能力:

{
  "name": "travel-planner",
  "description": "旅行规划智能体,支持航班查询、酒店预订",
  "url": "https://api.example.com/a2a",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true
  },
  "skills": [
    {
      "id": "search-flights",
      "name": "航班搜索",
      "description": "根据出发地和目的地搜索航班"
    }
  ]
}

任务生命周期

A2A采用任务(Task)驱动的通信模型:

提交任务 → 任务执行中 → 任务完成
   ↓           ↓            ↓
 submitted   working     completed

   └→ 输入失败 → failed
   └→ 需要更多信息 → input-required

关键状态

  • submitted:任务已提交,等待处理
  • working:正在执行中
  • input-required:需要更多输入才能继续
  • completed:执行完成,返回结果
  • failed:执行失败

10分钟搭建A2A Agent

环境准备

# 安装A2A Python SDK
pip install a2a-sdk

# 或使用Node.js SDK
npm install @a2a/sdk

创建Remote Agent(服务端)

from a2a import Agent, AgentCard, Skill, TaskHandler

# 定义Agent能力
card = AgentCard(
    name="weather-agent",
    description="查询城市天气信息",
    skills=[
        Skill(id="get-weather", name="天气查询", description="获取指定城市天气")
    ]
)

# 处理任务
class WeatherHandler(TaskHandler):
    async def handle(self, task):
        city = task.message.parts[0].text
        weather = await fetch_weather(city)
        task.complete(result=f"{city}今日:{weather.temp}°C,{weather.desc}")

# 启动Agent
agent = Agent(card=card, handler=WeatherHandler())
agent.run(host="0.0.0.0", port=8001)

创建Client Agent(调用方)

from a2a import Client

# 发现并连接Remote Agent
client = Client()
agent_card = await client.discover("http://localhost:8001/.well-known/agent.json")

# 提交任务
task = await client.send_task(
    agent=agent_card,
    message="查询北京天气"
)

# 获取结果
print(task.result)  # "北京今日:28°C,晴"

流式响应

对于耗时任务,A2A支持SSE流式推送:

# Client端订阅流式响应
async for event in client.send_task_stream(
    agent=agent_card,
    message="生成一份完整的旅行计划"
):
    print(f"进度更新: {event.state}")

推送通知

Agent可主动推送任务状态变更:

task = await client.send_task(
    agent=agent_card,
    message="监控价格变化",
    push_notification={
        "url": "https://my-app.com/webhook",
        "authentication": {"schemes": ["bearer"]}
    }
)

A2A vs MCP:什么时候用哪个?

维度A2AMCP
通信对象Agent ↔ AgentAgent ↔ 工具/数据源
类比人和人打电话人使用工具
协议格式JSON-RPC 2.0自定义JSON
典型场景多Agent协作完成复杂任务Agent调用API/数据库/文件
能否替代不能不能

最佳实践:A2A + MCP组合使用。Agent之间用A2A协作,每个Agent内部用MCP调用工具。

┌─────────┐  A2A   ┌─────────┐
│ 规划Agent│───────▶│执行Agent │
└─────────┘        └────┬────┘
                        │MCP
                   ┌────┴────┐
                   │数据库/API │
                   └─────────┘

安全实践

A2A内置了多种认证机制,务必按场景选择:

认证方式适用场景安全等级
API Key内网Agent间调用⭐⭐
HTTP Basic简单认证需求⭐⭐
OAuth2跨组织Agent协作⭐⭐⭐⭐
mTLS金融级安全要求⭐⭐⭐⭐⭐

安全清单

  • ✅ 始终启用认证,不要裸跑A2A服务
  • ✅ 为不同Agent分配最小权限
  • ✅ 记录所有Agent间通信日志
  • ✅ 定期轮换API Key和证书
  • ❌ 不要在Agent Card中暴露敏感信息

实战案例:多Agent旅行规划系统

用户: "帮我规划下周末北京三日游"

主控Agent (A2A Client)
  ├── 调用航班Agent → 查询机票价格
  ├── 调用酒店Agent → 推荐性价比酒店
  ├── 调用景点Agent → 排列三日行程
  └── 调用天气Agent → 提供穿衣建议

主控Agent汇总 → 输出完整旅行计划

每个子Agent内部又通过MCP调用真实API(携程、天气服务等),形成"A2A编排 + MCP执行"的双层架构。

常见问题

Q:A2A和微服务有什么区别?
A:微服务是代码级的服务拆分,开发者手动编排调用链;A2A是Agent级的协作,Agent自主决策和规划,具备更强的灵活性和智能性。

Q:A2A支持多少个Agent同时协作?
A:理论上无限制,但实际建议单个协作链不超过10个Agent,避免延迟和调试复杂度失控。

Q:A2A能用于生产环境吗?
A:2026年A2A已进入稳定版,Google Cloud、AWS等主流云平台均已提供A2A托管服务,可用于生产。

总结

A2A协议是2026年构建多智能体系统的必备技能。它让Agent之间从"各自为战"变成"团队协作",是AI从单点工具走向复杂工作流的关键基础设施。

学习路径

  1. 理解A2A核心概念(Agent Card、Task生命周期)← 你在这里
  2. 搭建两个Agent实现A2A通信
  3. 结合MCP构建"A2A编排 + MCP执行"架构
  4. 实现生产级安全认证和错误处理

本文持续更新,关注A2A协议最新动态请收藏本页。

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论
883文章数 0评论数
作者其它文章