
🎯 核心要点 (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 在互操作性、可扩展性方面的未来发展
Related Articles
Explore more content related to this topic
A2UI Introduction - Declarative UI Protocol for Agent-Driven Interfaces
Discover A2UI, the declarative UI protocol that enables AI agents to generate rich, interactive user interfaces. Learn how A2UI works, who it's for, how to use it, and see real-world examples from Google Opal, Gemini Enterprise, and Flutter GenUI SDK.
Agent Gateway Protocol (AGP): Practical Tutorial and Specification
Learn the Agent Gateway Protocol (AGP): what it is, problems it solves, core spec (capability announcements, intent payloads, routing and error codes), routing algorithm, and how to run a working simulation.
Integrating A2A Protocol - Intelligent Agent Communication Solution for BeeAI Framework
Using A2A protocol instead of ACP is a better choice for BeeAI, reducing protocol fragmentation and improving ecosystem integration.
A2A vs ACP Protocol Comparison Analysis Report
A2A (Agent2Agent Protocol) and ACP (Agent Communication Protocol) represent two mainstream technical approaches in AI multi-agent system communication: 'cross-platform interoperability' and 'local/edge autonomy' respectively. A2A, with its powerful cross-vendor interconnection capabilities and rich task collaboration mechanisms, has become the preferred choice for cloud-based and distributed multi-agent scenarios; while ACP, with its low-latency, local-first, cloud-independent characteristics, is suitable for privacy-sensitive, bandwidth-constrained, or edge computing environments. Both protocols have their own focus in protocol design, ecosystem construction, and standardization governance, and are expected to further converge in openness in the future. Developers are advised to choose the most suitable protocol stack based on actual business needs.
Building an A2A Currency Agent with LangGraph
This guide provides a detailed explanation of how to build an A2A-compliant agent using LangGraph and the Google Gemini model. We'll walk through the Currency Agent example from the A2A Python SDK, explaining each component, the flow of data, and how the A2A protocol facilitates agent interactions.