Agent2Agent (A2A) 协议 是一个开放协议,使不同框架、不同厂商构建的 AI Agent 能够发现彼此、协商交互、安全协作,无需暴露内部状态。

协议官网 提供完整的技术规范、教程和 SDK。

核心能力

A2A 使 Agent 能够:

  • 发现彼此能力 — 通过 "Agent Card" 了解其他 Agent 的功能
  • 协商交互方式 — 支持文本、表单、媒体等多种模态
  • 安全协作长任务 — 处理可能需要人工介入的长时间任务
  • 保持状态私密 — 无需暴露内部状态、记忆或工具

为什么需要 A2A

目标说明
打破孤岛连接不同生态系统的 Agent
复杂协作让专业 Agent 协同处理单一 Agent 无法完成的复杂任务
开放标准促进社区驱动的 Agent 通信,鼓励创新和广泛采用
保护隐私Agent 协作时不需共享内部记忆、专有逻辑或工具实现

关键特性

  • 标准化通信 — JSON-RPC 2.0 over HTTP(S)
  • Agent 发现 — 通过 "Agent Card" 获取能力和连接信息
  • 灵活交互 — 同步请求/响应、流式(SSE)、异步推送通知
  • 丰富数据交换 — 支持文本、文件、结构化 JSON 数据
  • 企业就绪 — 考虑安全、认证和可观测性

协议分层

层级内容
Layer 1 — 数据模型核心数据结构(Task、Message、AgentCard、Part、Artifact、Extension),以 Protocol Buffer 定义
Layer 2 — 抽象操作基本能力:Send Message、Send Streaming Message、Get Task、List Tasks、Cancel Task、Get Agent Card
Layer 3 — 协议绑定具体协议映射:JSON-RPC、gRPC、HTTP/REST

设计原则

  • Simple — 复用已知标准(HTTP、JSON-RPC 2.0、SSE)
  • Enterprise Ready — 支持认证、授权、安全、隐私、追踪、监控
  • Async First — 原生支持长时间任务和人在回路(Human-in-the-loop)
  • Modality Agnostic — 支持文本、音视频(文件引用)、结构化数据/表单
  • Opaque Execution — 基于声明的能力和交换信息协作,不共享内部思考或工具

SDK

语言SDK
Pythonpip install a2a-sdk
Gogo get github.com/a2aproject/a2a-go
JavaScriptnpm install @a2a-js/sdk
JavaMaven 依赖
.NETdotnet add package A2A
Rustcargo add a2a-lf