文章目录

零 参考资料
- a2aprotocol.net/zh/docs
- Agent2Agent (A2A) 协议发布
- KelvinQiu802/a2a-walk-through
- agent2agent.info
- google.github.io/A2A
一 A2A协议简介
- Agent to Agent Protocol (A2A) 是由 Google 推出的开源协议,旨在实现不透明 Agent 智能体应用程序之间的通信和互操作性。该协议使Agent 智能体能够完成任务,而无需共享内存、想法或工具,相反,它们交换上下文、状态、指令和各自原生模态的数据。
二 A2A 设计原则
- 不透明执行:Agent 智能体不需要共享思想、计划或工具,换句话说,A2A专注于使智能体能够在其自然、非结构化的模式中协作。
- 开放标准:基于现有标准(HTTP、SSE 和 JSON-RPC)构建,易于实现和集成。
- 默认安全:内置身份验证、安全性、隐私保护和监控功能。
- 异步优先:支持(非常)长时间运行的任务和提供实时反馈、通知和状态更新。
- 模态无关:支持文本、音频/视频、表单等多种交互模式。
三 A2A使用场景
- 多 Agent 智能体协作:不同系统和供应商的 Agent 智能体可以协同工作,共同完成复杂任务。
- 跨企业工作流:安全地连接多个企业系统,支持跨组织的协作流程。
- 长运行任务:支持需要持续数小时、数天甚至数周的复杂 Agent 智能体任务。
- 多模态交互:通过文本、音频、视频和交互式表单等多种方式实现自然交互。
四 A2A的工作原理
- A2A 方便了“客户端”智能体与“远程”智能体之间的通信。客户端智能体负责制定和传达任务,而远程智能体负责执行这些任务,力图提供正确的信息或采取正确的行动。这种交互涉及几个关键功能:
- 能力发现:智能体可以使用 JSON 格式的“智能体卡”来宣传其能力,从而使客户端智能体能够识别出能执行任务的最佳智能体,并利用 A2A 与远程智能体进行通信。
- 任务管理:客户端智能体与远程智能体之间的通信以完成任务为导向,智能体在其中努力完成最终用户的请求。该“任务”对象由协议定义,并且具有生命周期。任务可以立即完成,而对于长时间运行的任务,每个智能体都可以进行通信,以便彼此之间保持同步,了解任务完成情况的最新状态。任务的输出被称为“工件”。
- 协作:智能体可以相互发送信息,交流上下文、回复、工件或用户指令。
- 用户体验协商:每条消息都包含“部件”,“部件”是一个完整的内容片段,例如生成的图像。每个部件都有指定的内容类型,允许客户端和远程智能体协商所需的正确格式,并明确包括用户界面功能的协商,如 iframe、视频、网页表单等。
4.1 A2A协议规范
- A2A协议规范定义文件,该文件是一个Json Schema文件,定义了A2A协议的数据结构和验证规则。它提供多个定义
$defs
,每个定义是一个数据对象或错误响应的结构描述。
- A2A 客户端:表示用户或其他系统,发起请求到 A2A 服务器
- A2A 服务器(远程智能体):暴露一个 A2A 兼容的 HTTP 端点,供智能体处理任务并提供响应
- 智能体名片:A2A 服务器发布的一个 JSON 元数据文档,描述其身份、能力、技能、端点以及认证要求
- 任务:A2A 管理的基本工作单元,由一个唯一的 ID 标识,具有定义的生命周期和状态
- 消息:任务中的一个通信回合,具有角色(“user” 或 “agent”)和包含一个或多个内容部分
- 部分:消息或制品中的最小内容单元(例如,TextPart、FilePart、DataPart)
- 制品:智能体为任务生成的输出(例如,文档、图像、结构化数据)
- 流式传输 (SSE):通过 Server-Sent Events 实时、增量地更新任务
- 推送通知:通过服务器发起的 HTTP POST 到 Webhook 异步更新任务
- 会话:可选的客户端生成的 ID,用于分组相关的任务
4.2 A2A 的参与者
A2A 协议定义了三个核心参与者:
- 用户 (User): 使用代理系统完成任务的人类或服务。
- 客户端 (Client): 代表用户向代理(服务、应用程序)请求操作的实体。
- 服务端 (Server): 提供服务的不透明(黑盒)远程代理,即 A2A 服务器。
4.3 A2A 的核心概念
A2A 协议围绕几个核心概念构建,以实现代理间的有效交互:
- AgentCard: 一个描述 Agent 能力的 JSON 文件,通常托管在
/.well-known/agent.json
路径下,方便客户端发现和了解 Agent。 - Task (任务): 一个有状态的实体,代表客户端与远程代理协作以达成特定结果的过程。任务包含状态、历史记录和生成的工件。
- Artifact (工件): 代理作为任务最终结果生成的不可变输出,可以包含多个部分 (Part)。
- Message (消息): 用于在客户端和代理之间传递非工件内容,如指令、上下文、思考过程、状态更新等。
- Part (片段): 消息或工件中的原子内容单元,具有特定的内容类型(如文本、文件、表单等)。
4.4 A2A执行流程
A2A相关规定:
- 接口规范(比如
/tasks/send
、/tasks/sendSubscribe
、/tasks/get
、/tasks/cancel
) - 数据交换格式(基于
JSON-RPC 2.0 +
标准化的Task/Message/Artifact
结构) - 交互模式(支持同步调用和异步流式SSE推送)
- 发现机制(通过标准路径
/.well-known/agent.json
获取Agent能力描述) - 认证和错误处理(接口可以要求认证,错误统一返回 JSON-RPC error 格式)
方法 | 作用 | 参数 | 返回 |
---|---|---|---|
tasks/send | 同步发送任务 | id , message , sessionId , metadata | 返回最终任务状态 |
tasks/sendSubscribe | 流式发送任务(Server-Sent Events) | id , message , sessionId , metadata | 流式推送任务更新 |
tasks/get | 查询任务状态 | id | 返回任务对象 |
tasks/cancel | 取消任务 | id | 返回更新后的任务对象 |
/.well-known/agent.json (HTTP GET) | 发现Agent信息 | - | 返回Agent卡 |
五 A2A VS MCP
- MCP负责打通Agent和工具,而A2A负责打通Agent和Agent。
5.1 A2A和MCP的协议定位差异
- MCP(Model Context Protocol)是由Anthropic提出的标准化协议,主要解决AI模型与外部数据源、工具及服务的连接问题。它通过统一的接口规范,让大型语言模型能够动态访问数据库、API、文档库等外部资源,显著降低了开发者集成异构系统的复杂度。MCP的核心作用类似于"AI领域的USB-C接口",为模型提供了标准化的工具调用方式。
- 而A2A(Agent-to-Agent)协议由Google主导开发,专注于不同AI智能体之间的通信与协作。它通过定义任务管理、能力发现和消息传递等标准化机制,使来自不同平台和供应商的智能体能够像人类团队一样协同工作。A2A协议的核心价值在于打破了智能体之间的信息孤岛,形成了多智能体协作的生态系统。
5.2 MCP在工具集成中的作用机制
- MCP协议采用客户端-服务器架构,包含MCP Host、MCP Client和MCP Server三个核心组件。当智能体需要调用外部工具时,MCP Client会将请求转换为标准化的JSON-RPC格式,通过协议定义的交互语义与MCPServer通信。例如,一个智能体可以通过MCP协议调用Git命令完成版本控制操作,或者连接数据库执行SQL查询。MCP特别强调上下文动态管理能力,支持智能体根据任务需求实时加载外部数据和提示模板,这使得单个智能体的功能得到极大扩展。 协议还设计了严格的权限控制和错误反馈机制,确保工具调用的安全性和可靠性。开发者只需构建一次MCP服务器,就能让智能体应用无缝对接多种数据源和工具,显著提升了开发效率。
5.3 A2A在多智能体协作中的运行原理
- A2A协议构建了智能体间的"外交体系",每个参与协作的智能体都需要公开其AgentCard,详细描述自身能力、输入输出格式和认证方式。当主智能体需要协同完成任务时,可以通过A2A协议创建Task任务,将子任务分配给具有相应能力的其他智能体。例如在招聘场景中,HR智能体可以通过A2A协议与候选人筛选智能体、面试安排智能体和背景调查智能体进行协作。协议支持从快速响应的短时任务到需要长时间运行的复杂任务,通过TaskID追踪进度,并采用企业级的安全认证机制保障通信安全。 A2A还定义了丰富的交互语义,支持智能体之间进行意图传递、任务协商和信息共享,实现了类似人类团队的自然协作模式。
5.4 协议间的互补协作关系
- 在实际应用中,MCP和A2A往往协同工作形成完整的技术栈。以投资分析场景为例:主投资顾问智能体通过A2A协议与财经新闻分析智能体、股票数据分析智能体建立协作关系;而这些专业智能体又通过MCP协议分别连接财经新闻API和股票市场数据库获取原始数据。这种架构中,A2A负责智能体间的水平协同,MCP则处理智能体与工具的垂直集成。 两者的结合使得复杂任务能够被分解为多个子任务,由专业智能体通过标准化工具接口高效完成,最终整合为完整的解决方案。这种分工既避免了智能体功能臃肿,又确保了系统整体的灵活性和扩展性。
5.5 协议协同的典型应用场景
- 在工业智能化领域,赛意信息的善谋GPT AI中台同时集成了MCP和A2A协议,构建了多智能体协作网络。MCP协议将设备数据接入、质检算法等工业工具标准化,A2A协议则使生产调度、质量检测等业务智能体能够跨系统协同。例如当设备异常时,检测智能体通过MCP获取实时数据,通过A2A联动维护智能体和供应链智能体,自动触发维修流程和备件调配。这种协作模式使企业AI应用开发效率提升50%以上,充分展现了双协议协同的价值。 类似地,在设计自动化工具Lovart中,A2A协议协调分镜生成、视频合成等专业智能体,而每个智能体又通过MCP协议调用Flux、TTS等工具API,最终完成端到端的视频创作。