A2A(Agent-to-Agent Protocol)

Google 主导的开放协议,定义 Agent 间如何发现、通信和协作。已捐赠 Linux Foundation,100+企业参与,ACP 已并入。与 MCP 互补:MCP 管工具调用,A2A 管 Agent 协作。核心概念:Agent Card(能力声明)+ Task(有状态协作单元)。

定义

A2A(Agent-to-Agent)是 Google 主导发起的开放协议,定义分布式环境中 Agent 与 Agent 之间如何发现能力、委派任务和协作完成工作。

协议现状(截至2026年6月)

  • 已捐赠给 Linux Foundation AI & Data
  • 100+ 企业参与生态建设
  • IBM 的 ACP(Agent Communication Protocol)已并入 A2A
  • Google ADK(Agent Development Kit)v2.3.0 原生支持 A2A,Go 语言版本 v1.0.0 稳定发布——已进入跨语言生产可用阶段

核心概念

Agent Card

能力声明文档,托管在 /.well-known/agent-card.json,包含四个核心字段:

字段含义
name我是谁
url在哪找我
skills能做什么
authentication怎么鉴权

Task

协作单元。一个 Agent 向另一个 Agent 发起 Task,Task 在生命周期中经历状态流转。简化模型:

text
submitted → working → completed

完整规范定义 8 种状态:submitted、working、completed、input-required、auth-required、failed、canceled、rejected。

通信层基于 HTTP + JSON-RPC 2.0 + SSE,核心方法 tasks/send。Task 可长期运行(数小时甚至数天),更接近工作流编排而非简单的请求-响应。

与 MCP 的关系

MCP 管"Agent 用什么工具",A2A 管"Agent 找谁协作"。 一个 Agent 可以同时是 MCP 客户端(调用工具)和 A2A 服务端(接受其他 Agent 的任务委派)。

在协议栈中的位置

ARD(发现)→ A2A(通信) → MCP(调用)

A2A 是三层栈中唯一有状态的层——发现和调用天然是"一问一答",而任务协调天然需要追踪进度。

引用本术语的文章