当前位置: 首页 > news >正文

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

文章目录

  • 零 参考资料
  • 一 A2A协议简介
  • 二 A2A 设计原则
  • 三 A2A使用场景
  • 四 A2A的工作原理
    • 4.1 A2A协议规范
    • 4.2 A2A 的参与者
    • 4.3 A2A 的核心概念
    • 4.4 A2A执行流程
  • 五 A2A VS MCP
    • 5.1 A2A和MCP的协议定位差异
    • 5.2 MCP在工具集成中的作用机制
    • 5.3 A2A在多智能体协作中的运行原理
    • 5.4 协议间的互补协作关系
    • 5.5 协议协同的典型应用场景

在这里插入图片描述

零 参考资料

  • 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卡
客户端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,最终完成端到端的视频创作。
http://www.xdnf.cn/news/659539.html

相关文章:

  • CentOS中安装Docker Compose
  • 【面试题】如何测试一个新增的服务端接口?
  • CSS闯关指南:从手写地狱到“类”积木之旅|得物技术
  • 嵌入式开发学习日志(linux系统编程--进程(2))Day28
  • TLS/PSK
  • vue3减少打包体积
  • C++:多重继承
  • 蓝桥杯b组c++赛道---数位dp
  • git 新建一个分支,怎么首次推到远程仓库
  • 计算机图形学:(四)欧拉角与四元数
  • 尚硅谷redis7 37 redis持久化之AOF简介
  • Unity---OSC(Open Sound Control)、TouchOSC Editor、创建布局
  • Java高频面试之并发编程-21
  • Linux `hostname` 命令深度解析与高阶应用指南
  • Linux中的SELinux
  • RPM之(1)基础使用
  • 【2025】嵌入式软考中级部分试题
  • [特殊字符] useTranslations 客户端使用教程(Next.js + next-intl)
  • n8n中文版安装指南,使用Docker部署N8N中文版
  • 深度学习入门6:pytorch卷积神经网络CNN实现手写数字识别准确率99%
  • 深度学习中的卷积和反卷积
  • 北京大学肖臻老师《区块链技术与应用》公开课:01-课程简介
  • 《软件工程》第 11 章 - 结构化软件开发
  • Qt Creator快捷键合集
  • GESP2024年9月认证C++二级( 第三部分编程题(2)小杨的矩阵)
  • LangChain理解
  • Mybatis框架
  • Redis分布式缓存核心架构全解析:持久化、高可用与分片实战
  • UDP协议原理与Java编程实战:无连接通信的奥秘
  • 【Webtrees 手册】第 4 章 - 编辑指南