A2A协议(Agent-to-agent Protocol)学习


在这里插入图片描述

零 参考资料

一 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卡
客户端Agent A2A Server Task处理逻辑 GET /.well-known/agent.json 返回 AgentCard (能力描述) JSON-RPC: tasks/send 或 tasks/sendSubscribe 创建 TaskContext,调用 taskHandler() 最终 Task 对象 JSON-RPC 响应 (Task完成状态) 中间更新 (TaskStatus 或 Artifact) SSE 发送事件 (状态/工件) loop [任务执行中] SSE 最终事件 (Task完成状态) alt [使用 tasks/send (同步)] [使用 tasks/sendSubscribe (流式)] JSON-RPC: tasks/get 返回当前 Task 状态 JSON-RPC: tasks/cancel 标记Task为取消 返回取消后的 Task 状态 客户端Agent A2A Server Task处理逻辑

五 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,最终完成端到端的视频创作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值