A2A协议:Agent间通信的开放标准

2026-06-11AgentA2A协议

什么是A2A

A2A(Agent-to-Agent Protocol)是Google提出的开放协议,解决不同来源的Agent之间如何互操作的问题。类比:MCP = Agent与工具之间的USB-C,A2A = Agent与Agent之间的互联网协议。

核心概念

AgentCard(智能体名片)

每个Agent发布一张"名片",描述自己的能力:name、description、url、capabilities、skills。其他Agent通过AgentCard发现和匹配。

{
  "name": "travel-planner",
  "description": "旅行规划Agent",
  "url": "https://agent.example.com/a2a",
  "capabilities": { "streaming": true, "pushNotifications": true },
  "skills": [{ "id": "plan-itinerary", "name": "行程规划" }]
}

Task(任务)

Agent间交互的基本单元是Task。生命周期:submitted → working → completed / failed / canceled / input-required。

Message & Part

Task中包含Message,Message由多个Part组成。支持文本、文件、表单数据、流等多种Part类型。

Artifact(产出物)

Agent完成Task后返回的成果,同样由Part组成。

通信协议:HTTP + JSON-RPC 2.0

// 请求
{
  "jsonrpc": "2.0", "id": "task-001",
  "method": "tasks/send",
  "params": { "id": "task-001", "message": { "role": "user", "parts": [...] } }
}

// 响应
{
  "jsonrpc": "2.0", "id": "task-001",
  "result": { "id": "task-001", "status": {"state": "completed"}, "artifacts": [...] }
}

长任务通过SSE(Server-Sent Events)推送进度更新。

A2A vs MCP:互补而非竞争

维度MCPA2A
通信对象Agent ↔ 工具Agent ↔ Agent
关系主从对等
核心原语Tools / Resources / PromptsTask / Message / Artifact
状态管理无状态Task状态机

联合使用:一个Agent通过MCP连接工具,通过A2A与其他Agent协作。

2026年生态

  • 50+技术合作伙伴支持(AWS、Azure、Salesforce等)
  • 与LangGraph、CrewAI、AutoGen的适配层建设中
  • Google Cloud已提供A2A托管服务

避坑经验

  • A2A还在快速演进中,API可能变化,不要过早深度绑定
  • AgentCard描述越精准,被其他Agent发现和匹配的效率越高
  • 长任务必须用SSE,HTTP请求有超时
  • 不透明执行:Agent间不共享内部逻辑,既是安全特性也是调试难点
未标记