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专注工具集成,两者配合构建完整的智能体生态系统
目录
- 什么是A2A协议?
- A2A协议核心概念
- A2A与MCP协议对比
- 智能体发现机制
- 实际应用场景
- 技术实现指南
- 常见问题解答
- 总结与行动建议
- 快速入门案例
- Python 实现案例
- JavaScript/TypeScript 案例
- Java 实现案例
- 框架集成案例
- 协议集成案例
- 开发工具和 SDK
- 技术规范和最佳实践
- 生态系统和资源
- 协议比较和分析
什么是A2A协议?
Agent2Agent (A2A) 协议是一个开放标准,专门解决AI智能体生态系统中的核心挑战:如何让不同团队、使用不同技术、属于不同组织的AI智能体有效沟通和协作?
解决的核心问题
想象用户要求其主要AI助手规划一次国际旅行,这个单一请求可能需要协调多个专业智能体的能力:
- 航班预订智能体 - 处理机票搜索和预订
- 酒店预订智能体 - 管理住宿安排
- 当地旅游智能体 - 提供景点推荐和预订
- 金融服务智能体 - 处理货币转换和旅行建议
💡 核心洞察
没有通用通信协议的情况下,集成这些多样化智能体需要大量定制化点对点解决方案,系统难以扩展、维护和扩展。
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[零件供应商智能体]
场景分析:
- 客户交互(A2A): 客户通过A2A与店长智能体多轮对话诊断问题
- 内部工具使用(MCP): 机械师智能体使用MCP调用专业工具
- 供应商协作(A2A): 机械师智能体与供应商智能体协商零件采购
智能体发现机制
1. 标准URI发现
📍 推荐路径
https://{智能体服务器域名}/.well-known/agent.json
实施步骤:
- 客户端智能体获知潜在A2A服务器域名
- 向标准路径发送HTTP GET请求
- 服务器返回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:企业客服协作
多智能体协作流程:
- 一线客服智能体 - 处理常见问题
- 专业技术智能体 - 解决技术难题
- 账单处理智能体 - 处理财务相关问题
- 升级管理智能体 - 处理投诉和特殊情况
⚠️ 注意事项
智能体间协作需要维护完整的用户上下文,确保服务连续性和一致性。
技术实现指南
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白名单 |
开发集成步骤
- 设计Agent Card - 定义智能体能力和接口
- 实现A2A端点 - 基于JSON-RPC 2.0规范
- 配置发现机制 - 选择合适的发现策略
- 集成认证系统 - 实施安全访问控制
- 测试互操作性 - 验证与其他智能体的协作
🤔 常见问题解答
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应用奠定了基础。
立即行动建议
- 评估现有系统 - 识别可以通过智能体协作改进的业务流程
- 选择试点场景 - 从简单的智能体间协作开始实施
- 技术准备 - 学习JSON-RPC 2.0和相关Web标准
- 社区参与 - 关注A2A协议社区发展和最佳实践分享
🚀 未来展望
随着AI智能体能力的不断增强,A2A协议将成为构建协作式AI生态系统的关键基础设施,推动AI应用向更复杂、更智能的方向发展。
相关资源
本指南基于A2A协议官方文档编写,内容持续更新以反映最新的协议发展和最佳实践。
🚀 快速入门案例
基础示例
- A2A Samples: Hello World Agent (May 28, 2025)
- 使用 A2A Python SDK 构建 Hello World 代理的完整指南
- 包含详细的环境设置和测试说明
货币转换代理
- Implementing CurrencyAgent with A2A Python SDK (May 21, 2025)
- 构建货币转换代理的分步指南
- 集成 OpenRouter AI 服务
🐍 Python 实现案例
GitHub 集成
- A2A Python Sample: Github Agent (June 16, 2025)
- 使用 a2a-python 创建和连接 GitHub 代理
- 实现代码仓库信息查询功能
旅行规划助手
- A2A Sample: Travel Planner OpenRouter (June 6, 2025)
- 集成 OpenRouter 的旅行规划代理实现
- 使用 Python a2a-sdk 构建
文件聊天工作流
- LlamaIndex File Chat Workflow with A2A Protocol (June 2, 2025)
- 使用 LlamaIndex Workflows 构建文件聊天代理
- 支持文件上传解析、多轮对话、实时流式传输
Python 教程系列
-
Google A2A Python SDK Tutorial (May 19, 2025)
- 使用 Python 构建 A2A 代理的综合指南
- 包含环境设置、代理实现、服务器部署
-
Python A2A Tutorial 20250513 (May 13, 2025)
- 学习使用 Python 构建和交互 A2A 代理
- 涵盖流式处理和多轮对话功能
-
Python A2A Tutorial with Source Code (May 4, 2025)
- 包含完整源代码的实践指南
- 集成本地 Ollama AI 模型和 Langchain
-
Python A2A Tutorial (May 2, 2025)
- 使用 google-a2a 库构建 Python A2A 服务器
- 集成 Ollama 和 LangChain
-
Python A2A: A Comprehensive Guide to Google's Agent2Agent Protocol (April 14, 2025)
- 掌握 Python A2A 协议构建可互操作的 AI 代理
- 从基础到复杂多代理工作流
-
Practical Guide to the Official A2A SDK Python (May 10, 2025)
- A2A SDK Python 开发深度教程
- 包含工作流程图和实用代码示例
🟨 JavaScript/TypeScript 案例
电影信息代理
- A2A JS Sample: Movie Agent (June 16, 2025)
- 使用 TMDB API 和 OpenRouter AI 集成
- Express.js 服务器实现
JavaScript SDK 教程
-
A2A JS SDK Complete Tutorial: Quick Start Guide (June 9, 2025)
- TypeScript 类型安全实现
- Express.js 服务器 SDK 和流式处理
-
A2A Protocol Development Guide(TypeScript) (April 11, 2025)
- 使用 TypeScript 掌握 A2A 协议
- 构建强大的代理通信系统
☕ Java 实现案例
- A2A Java Sample (June 5, 2025)
- Maven 多模块架构
- Spring Boot 服务器 SDK 实现
- AI 翻译服务示例
🔧 框架集成案例
ADK 集成
- Implementing A2A Agents with ADK: Complete Development Guide (July 15, 2025)
- 使用 Google ADK 框架实现 A2A 智能代理系统
- 涵盖完整开发流程
费用报销代理
- A2A ADK Expense Reimbursement Agent (July 10, 2025)
- 基于 Google ADK 和 A2A 协议的智能费用报销代理
- 自动生成表单补充信息
CrewAI 集成
- A2A + CrewAI + OpenRouter Chart Generation Agent Tutorial (June 25, 2025)
- 使用 OpenRouter、CrewAI 和 A2A 协议构建图表生成代理
- 端到端代理开发教程
LangGraph 集成
- Building an A2A Currency Agent with LangGraph (May 13, 2025)
- 使用 LangGraph 和 Google Gemini 模型构建货币代理
- 详细解释组件和数据流
🔗 协议集成案例
MCP 协议集成
-
A2A MCP AG2 Intelligent Agent Example (July 2, 2025)
- 使用 AG2 框架构建的 A2A 协议智能代理
- 集成 MCP 协议和 YouTube 字幕处理功能
-
A2A MCP Integration (June 4, 2025)
- A2A 和 MCP 集成的分步指南
- 使用 Python SDK 和 OpenRouter 构建 AI 代理
🛠️ 开发工具和 SDK
.NET SDK
- A2A .NET SDK Comprehensive Documentation (July 3, 2025)
- 实现 Google A2A Protocol v0.2.1 的 .NET 库
- 适用于 ASP.NET Core 应用程序
调试工具
-
A2A Inspector: A Deep Dive into Agent2Agent Communication Debugging (June 18, 2025)
- 基于 Web 的强大调试工具
- 实时检查代理卡片和 JSON-RPC 通信
-
Using A2A Protocol Validator to Verify Domain Support for A2A Protocol (June 3, 2025)
- 使用 A2A Protocol Validator 验证 A2A 协议
- 可视化 AgentCard 便于调试
📚 技术规范和最佳实践
协议规范
- A2A Protocol Specification (Python) (July 16, 2025)
- Python 实现规范的综合指南
- 涵盖代理卡片、消息传递、任务管理等核心功能
示例和方法
- A2A Sample Methods and JSON Responses (April 12, 2025)
- 展示 A2A 协议核心方法的详细指南
- 包含实用的 JSON 示例
协议理解
- Understanding A2A Protocol: A Comprehensive Guide (April 10, 2025)
- 理解 A2A 协议的综合指南
- 核心概念和 AI 代理互操作性优势
🌟 生态系统和资源
实现集合
- A2A Implementations (May 2, 2025)
- 探索各种 A2A 协议的开源实现
- 包括 Java、TypeScript、Go、Rust、Python 等
资源目录
- Awesome A2A Directory (April 19, 2025)
- 探索 Google A2A 协议的完整生态系统
- 包含官方文档、社区实现、示例项目和集成指南
📊 协议比较和分析
协议对比
-
A2A vs MCP vs ACP Protocol Comparison Analysis Report (July 5, 2025)
- A2A 和 ACP 协议的详细比较分析
- 跨平台互操作性 vs 本地边缘自主性
-
A2A vs MCP vs AG-UI (May 16, 2025)
- AG-UI、MCP 和 A2A 协议的深度分析
- 技术实现和应用场景探索
-
A2A vs MCP: The Protocol Revolution in AI Architecture (April 10, 2025)
- 理解 A2A 协议与 MCP 的综合指南
-
AI Protocols Analysis Report: A2A, MCP, and ACP (May 9, 2025)
- 深入分析 MCP、ACP 和 A2A 协议
- 核心功能、实现特征和安全特性
-
A2A MCP: Predicting the Winner in AI Protocol Evolution (June 10, 2025)
- A2A MCP 协议的综合比较分析
- 预测 A2A MCP 在互操作性、可扩展性方面的未来发展