A2A Protocol

2025 Complete Guide: Agent2Agent (A2A) Protocol - The New Standard for AI Agent Collaboration

MILO
Share
2025 Complete Guide: Agent2Agent (A2A) Protocol - The New Standard for AI Agent Collaboration

🎯 核心要点 (TL;DR)

  • A2A协议:首个专为AI智能体间通信设计的开放标准,解决不同组织开发的AI智能体协作难题
  • 核心价值:通过标准化通信协议,让专业化AI智能体能够无缝协作完成复杂任务
  • 技术基础:基于JSON-RPC 2.0和HTTP(S),支持流式传输、推送通知等企业级功能
  • 与MCP互补:A2A专注智能体间协作,MCP专注工具集成,两者配合构建完整的智能体生态系统

目录

  1. 什么是A2A协议?
  2. A2A协议核心概念
  3. A2A与MCP协议对比
  4. 智能体发现机制
  5. 实际应用场景
  6. 技术实现指南
  7. 常见问题解答
  8. 总结与行动建议
  9. 快速入门案例
  10. Python 实现案例
  11. JavaScript/TypeScript 案例
  12. Java 实现案例
  13. 框架集成案例
  14. 协议集成案例
  15. 开发工具和 SDK
  16. 技术规范和最佳实践
  17. 生态系统和资源
  18. 协议比较和分析

什么是A2A协议?

Agent2Agent (A2A) 协议是一个开放标准,专门解决AI智能体生态系统中的核心挑战:如何让不同团队、使用不同技术、属于不同组织的AI智能体有效沟通和协作?

解决的核心问题

想象用户要求其主要AI助手规划一次国际旅行,这个单一请求可能需要协调多个专业智能体的能力:

  1. 航班预订智能体 - 处理机票搜索和预订
  2. 酒店预订智能体 - 管理住宿安排
  3. 当地旅游智能体 - 提供景点推荐和预订
  4. 金融服务智能体 - 处理货币转换和旅行建议

💡 核心洞察

没有通用通信协议的情况下,集成这些多样化智能体需要大量定制化点对点解决方案,系统难以扩展、维护和扩展。

A2A解决方案的五大支柱

特性 描述 技术实现
统一传输格式 JSON-RPC 2.0 over HTTP(S) 标准化消息结构和传输
智能体发现 Agent Cards机制 智能体能力广告和发现
任务管理工作流 支持长期运行任务 多轮交互和状态管理
多模态数据支持 文本、文件、结构化数据 丰富媒体内容交换
企业级安全 异步处理、认证授权 生产环境就绪

A2A协议核心概念

核心参与者

graph LR
    A[用户] --> B[A2A客户端<br/>客户智能体]
    B --> C[A2A服务端<br/>远程智能体]
    C --> D[任务执行结果]
    D --> B
    B --> A
  • 用户 (User): 发起请求的最终用户或自动化服务
  • A2A客户端: 代表用户向远程智能体发起请求的应用或智能体
  • A2A服务端: 实现A2A协议HTTP端点的AI智能体或智能体系统

基础通信元素

1. Agent Card(智能体名片)

📋 定义

JSON元数据文档,通常可在众所周知的URL(如/.well-known/agent.json)发现,描述A2A服务端的完整信息。

Agent Card包含信息:

  • 智能体身份(名称、描述)
  • 服务端点URL和版本
  • 支持的A2A能力(流式传输、推送通知)
  • 具体技能列表
  • 认证要求

2. Task(任务)

graph TD
    A[submitted<br/>已提交] --> B[working<br/>处理中]
    B --> C[input-required<br/>需要输入]
    C --> B
    B --> D[completed<br/>已完成]
    B --> E[failed<br/>失败]
  • 每个任务拥有智能体定义的唯一ID
  • 任务具有状态性,可涉及多次消息交换
  • 支持长期运行的复杂操作

3. Message(消息)

  • 角色区分: "user"(客户端发送)或"agent"(服务端发送)
  • 内容载体: 包含一个或多个Part对象
  • 唯一标识: 每条消息都有发送方设置的messageId

4. Part(内容部分)

Part类型 用途 示例
TextPart 纯文本内容 指令、问题、回答
FilePart 文件传输 文档、图片、数据文件
DataPart 结构化数据 JSON表单、参数、机器可读信息

5. Artifact(工件)

最佳实践

智能体在任务完成状态时应使用Artifact对象向客户端返回生成的输出结果。

交互机制对比

机制 适用场景 技术实现 优缺点
请求/响应 简单查询、快速任务 HTTP请求+轮询 简单但效率较低
流式传输 实时更新、增量结果 Server-Sent Events 实时性好,需持续连接
推送通知 长期任务、异步处理 Webhook回调 适合长期任务,实现复杂

A2A与MCP协议对比

协议定位差异

🎯 核心区别

MCP专注工具连接,A2A专注智能体协作 - 两者互补而非竞争关系。

对比维度 A2A协议 MCP协议
主要用途 AI智能体间对等协作 AI模型与工具/资源连接
交互特点 状态化、多轮对话、协商式 无状态、单次调用、事务性
应用场景 智能体委托、协作项目管理 函数调用、API查询、数据获取
复杂度 支持复杂、动态交互 结构化、可预测的输入输出

实际应用示例:汽车维修店

graph TB
    A[客户] -->|A2A协议| B[店长智能体]
    B -->|A2A协议| C[机械师智能体]
    C -->|MCP协议| D[车辆诊断扫描仪]
    C -->|MCP协议| E[维修手册数据库]
    C -->|MCP协议| F[升降平台]
    C -->|A2A协议| G[零件供应商智能体]

场景分析:

  1. 客户交互(A2A): 客户通过A2A与店长智能体多轮对话诊断问题
  2. 内部工具使用(MCP): 机械师智能体使用MCP调用专业工具
  3. 供应商协作(A2A): 机械师智能体与供应商智能体协商零件采购

智能体发现机制

1. 标准URI发现

📍 推荐路径

https://{智能体服务器域名}/.well-known/agent.json

实施步骤:

  1. 客户端智能体获知潜在A2A服务器域名
  2. 向标准路径发送HTTP GET请求
  3. 服务器返回Agent Card JSON响应

优势: 简单、标准化,支持自动化发现

2. 策划注册表(目录式发现)

graph TD
    A[智能体注册] --> B[中央注册表]
    C[客户端查询] --> B
    B --> D[匹配的Agent Cards]
    D --> C

适用场景:

  • 企业环境
  • 专业市场
  • 特定生态系统

优势:

  • 集中管理和治理
  • 基于功能能力的发现
  • 访问控制和信任机制

3. 直接配置/私有发现

适用情况:

  • 紧密耦合系统
  • 私有智能体
  • 开发测试环境

实际应用场景

场景1:国际旅行规划

sequenceDiagram
    participant U as 用户
    participant PA as 主助手
    participant FA as 航班智能体
    participant HA as 酒店智能体
    participant TA as 旅游智能体
    
    U->>PA: 规划东京5日游
    PA->>FA: 查询航班选项
    FA-->>PA: 返回航班方案
    PA->>HA: 预订酒店
    HA-->>PA: 确认住宿
    PA->>TA: 安排当地活动
    TA-->>PA: 推荐行程
    PA-->>U: 完整旅行计划

场景2:企业客服协作

多智能体协作流程:

  1. 一线客服智能体 - 处理常见问题
  2. 专业技术智能体 - 解决技术难题
  3. 账单处理智能体 - 处理财务相关问题
  4. 升级管理智能体 - 处理投诉和特殊情况

⚠️ 注意事项

智能体间协作需要维护完整的用户上下文,确保服务连续性和一致性。

技术实现指南

Agent Card示例结构

{
  "name": "智能旅行助手",
  "description": "专业的旅行规划和预订服务",
  "provider": "TravelTech Inc.",
  "url": "https://api.travelagent.com/a2a",
  "version": "1.0.0",
  "capabilities": ["streaming", "pushNotifications"],
  "authentication": {
    "schemes": ["Bearer"]
  },
  "skills": [
    {
      "id": "flight-booking",
      "name": "航班预订",
      "description": "搜索和预订国际航班",
      "inputModes": ["text", "data"],
      "outputModes": ["text", "data"]
    }
  ]
}

安全最佳实践

安全层面 实施建议 技术方案
认证 使用标准Web认证 OAuth 2.0, API密钥
授权 基于角色的访问控制 JWT令牌,权限矩阵
传输安全 强制HTTPS TLS 1.2+,证书验证
网络隔离 限制访问范围 VPC,IP白名单

开发集成步骤

  1. 设计Agent Card - 定义智能体能力和接口
  2. 实现A2A端点 - 基于JSON-RPC 2.0规范
  3. 配置发现机制 - 选择合适的发现策略
  4. 集成认证系统 - 实施安全访问控制
  5. 测试互操作性 - 验证与其他智能体的协作

🤔 常见问题解答

Q: A2A协议与现有的API有什么根本区别?

A: A2A专门为智能体间的对等协作设计,支持状态化、多轮交互和复杂任务管理,而传统API主要用于简单的功能调用。A2A智能体可以进行推理、规划和协商,这是普通API无法提供的。

Q: 如何选择使用A2A还是MCP协议?

A:

  • 选择A2A: 需要智能体间协作、多轮对话、状态管理的场景
  • 选择MCP: 需要调用工具、查询数据库、执行特定函数的场景
  • 两者结合: 大多数复杂应用需要同时使用两种协议

Q: A2A协议的性能如何?支持大规模部署吗?

A: A2A基于成熟的HTTP和JSON-RPC标准,具备良好的可扩展性。通过流式传输和推送通知机制,可以有效处理长期运行任务。企业级特性如认证、监控、追踪都有标准化支持。

Q: 如何确保智能体协作的安全性?

A: A2A采用标准Web安全实践:

  • HTTP(S)加密传输
  • 标准认证方案(OAuth 2.0、Bearer Token)
  • Agent Card访问控制
  • 网络层隔离和监控

Q: A2A协议是否支持离线或断网场景?

A: A2A原生支持异步操作,通过推送通知机制可以处理智能体或用户不持续在线的场景。长期运行任务可以在网络恢复后继续执行。

总结与行动建议

核心价值总结

A2A协议代表了AI智能体生态系统发展的重要里程碑,它解决了智能体间协作的标准化问题,为构建更强大、更灵活的AI应用奠定了基础。

立即行动建议

  1. 评估现有系统 - 识别可以通过智能体协作改进的业务流程
  2. 选择试点场景 - 从简单的智能体间协作开始实施
  3. 技术准备 - 学习JSON-RPC 2.0和相关Web标准
  4. 社区参与 - 关注A2A协议社区发展和最佳实践分享

🚀 未来展望

随着AI智能体能力的不断增强,A2A协议将成为构建协作式AI生态系统的关键基础设施,推动AI应用向更复杂、更智能的方向发展。

相关资源


本指南基于A2A协议官方文档编写,内容持续更新以反映最新的协议发展和最佳实践。

🚀 快速入门案例

基础示例

  • A2A Samples: Hello World Agent (May 28, 2025)
    • 使用 A2A Python SDK 构建 Hello World 代理的完整指南
    • 包含详细的环境设置和测试说明

货币转换代理

🐍 Python 实现案例

GitHub 集成

旅行规划助手

文件聊天工作流

Python 教程系列

🟨 JavaScript/TypeScript 案例

电影信息代理

JavaScript SDK 教程

Java 实现案例

  • A2A Java Sample (June 5, 2025)
    • Maven 多模块架构
    • Spring Boot 服务器 SDK 实现
    • AI 翻译服务示例

🔧 框架集成案例

ADK 集成

费用报销代理

CrewAI 集成

LangGraph 集成

🔗 协议集成案例

MCP 协议集成

🛠️ 开发工具和 SDK

.NET SDK

调试工具

📚 技术规范和最佳实践

协议规范

示例和方法

协议理解

🌟 生态系统和资源

实现集合

  • A2A Implementations (May 2, 2025)
    • 探索各种 A2A 协议的开源实现
    • 包括 Java、TypeScript、Go、Rust、Python 等

资源目录

  • Awesome A2A Directory (April 19, 2025)
    • 探索 Google A2A 协议的完整生态系统
    • 包含官方文档、社区实现、示例项目和集成指南

📊 协议比较和分析

协议对比