Agent2Agent 协议:让智能体真正学会“对话”
在过去几年,人工智能的发展让单个智能体已经能完成越来越复杂的任务,比如写文章、做数据分析、甚至协助编程。但当任务变得更复杂、需要多个智能体分工协作时,我们就会遇到一个问题:不同智能体之间怎么有效沟通?如果每个智能体各说各话,就像一个人说中文、一个说英文,合作就会非常困难。这时候,一套统一的通信标准就显得至关重要——这就是今天要介绍的 Agent2Agent 协议。
📚 大模型协议系列文章
在过去几年,人工智能的发展让单个智能体已经能完成越来越复杂的任务,比如写文章、做数据分析、甚至协助编程。但当任务变得更复杂、需要多个智能体分工协作时,我们就会遇到一个问题:不同智能体之间怎么有效沟通?
如果每个智能体各说各话,就像一个人说中文、一个说英文,合作就会非常困难。这时候,一套统一的通信标准就显得至关重要——这就是今天要介绍的 Agent2Agent 协议。

所有相关源码示例、流程图、模型配置与知识库构建技巧,我也会持续更新在 Github:LLMHub,欢迎关注收藏!
大家可以带着下面三个问题来阅读本文,我会在最后给出答案。
- Agent2Agent 协议是什么?
- 为什么智能体之间需要一套统一的协议?
- 它的落地场景会有哪些?
1. 从单体智能到多智能体协作
过去几年,大语言模型的能力突飞猛进。我们发现单一的大模型虽然强大,但在很多复杂任务中,它往往会遇到瓶颈。于是出现了 多智能体系统 ——多个 Agent 各自负责不同角色,通过协作完成任务。

举个例子:
- Agent A:任务规划师,负责把大目标拆解成小步骤;
- Agent B:执行者,调用工具或写代码来完成任务;
- Agent C:验证员,检查结果是否正确、是否符合需求。
这种“分工协作”的思路很有吸引力,但一个关键问题摆在面前:他们要怎么交流?
不同的 Agent 可能由不同团队开发,输入输出各不相同,就像一个说中文、一个说英文、一个说西班牙语,想合作,必须先解决语言问题。
这正是 Agent2Agent 协议(A2A) 想要解决的核心。
那么MCP和A2A协议有什么区别呢?简单说就是MCP For Tools(APIs、Resources),A2A For Agents。MCP是智能体实现自身功能,调用资源的协议,A2A是针对不同Agent怎么配合实现功能的协议。
2. Agent2Agent 协议的核心设计

A2A由以下角色组成:
- 用户:发起需要代理帮助的请求或目标的最终用户(人工或自动化服务)。
- A2A 客户端(客户端代理):代表用户向远程代理请求作或信息的应用程序、服务或其他 AI 代理。客户端使用 A2A 协议发起通信。
- A2A 服务器(远程代理):公开实现 A2A 协议的 HTTP 端点的 AI 代理或代理系统。它接收来自客户端的请求,处理任务,并返回结果或状态更新。从客户端的角度来看,远程代理作为一个“不透明”系统运行,这意味着客户端不需要知道其内部工作原理、内存或工具。
如果用一句话来解释:A2A 协议就是一套为智能体设计的“通用语言标准”。
它关注的核心有三个方面:
- 消息格式(Format)
- 统一的结构(常见是 JSON 或类似 Schema)
- 必须包含身份信息、意图、上下文、时间戳等字段
- 方便日志追踪和调试
- 语义定义(Semantics)
- 消息类型:请求(Request)、响应(Response)、确认(Ack)、通知(Event)
- 意图清晰:比如
request_task_execution和task_completed,而不是模糊的“OK/Done”
- 交互模式(Interaction Patterns)
- 点对点:A → B,一问一答
- 广播式:A 把任务发出去,多个 Agent 竞争响应
- 协作式:多个 Agent 互相传递结果,逐步完成复杂任务
- 链式调用:像流水线一样,每个 Agent 只做一环
这样的设计让不同的 Agent 可以像使用 HTTP 一样“即插即用”,而不必关心对方的底层实现。
3. 为什么要用 A2A 协议?
很多人会问:难道直接写个 RPC 或者 REST API 就不行吗?

确实,如果只是两个 Agent 偶尔调用,API 就够用了。但当系统扩展到十个、几十个 Agent 时,就会出现:
- 数据不统一:每个 Agent 输出格式不同,拼接和解析非常麻烦;
- 语义不明确:同样一个“任务完成”,可能包含不同的上下文信息,容易误解;
- 难以扩展:引入一个新 Agent,就要改一大堆适配逻辑;
- 协作低效:没有标准的交互模式,任务在多个 Agent 间传递时容易丢失信息。
A2A 协议的价值就是让系统更 可扩展、可维护、可协作。就像互联网没有统一的 HTTP 协议,今天就不会有这么丰富的生态。
4.A2A协议的基本组件和工作流程
1. Agent Card(智能体名片)
Agent Card 就像智能体的“身份证”,是一个 JSON 文档,通常放在固定 URL 下,例如 /.well-known/agent-card.json。它包含智能体的基本信息、服务端点、支持的功能、提供的技能、默认输入输出方式以及身份验证要求。客户端可以通过读取 Agent Card 了解智能体能做什么,并安全有效地与其交互。
2. Task(任务)
Task 表示客户端请求智能体执行的具体操作,有些操作可能需要持续的状态管理,例如生成报告或预订航班。每个任务都有唯一 ID,并经历生命周期状态:submitted → working → input-required → completed / failed。任务是有状态的,可能涉及客户端和智能体之间多轮消息交互。
3. Message(消息)
Message 是客户端和智能体之间一次交流的单元,每条消息都有发送者角色(user 或 agent)和唯一标识符。消息中可以包含一个或多个 Part,用于传递指令、上下文、问题、答案或状态更新。Message 支持与任务关联,允许多轮交互,保证复杂任务的顺畅执行。
4. Part(消息内容单元)
Part 是消息或任务产出的最小内容单位,每个 Part 都有类型和用途。常见的类型包括 TextPart(普通文本)、FilePart(文件,支持 base64 或 URI 引用)和 DataPart(结构化 JSON 数据)。通过 Part,智能体可以灵活传递文本、文件或机器可读的数据。
5. Artifact(产物)
Artifact 是智能体完成任务后生成的实际输出,可以是文档、图片、表格或结构化数据等。任务完成后,Artifact 用来返回最终结果,它可以由多个 Part 组成,并支持增量流式传输,使客户端能够及时获取生成内容。
A2A的请求生命周期如下图所示:

协议工作流程为:
- 客户端发起请求,发现目标Agent,返回Agent card
- 进行鉴权
- 发送消息(Message)并创建任务(Task)
- Agent进行工作,最后返回输出产物(Artifact)
5. A2A中的代理发现
在 Agent2Agent(A2A)协议中,为了让智能体能够协作,它们首先需要发现彼此并了解对方的能力。A2A 使用 代理卡(Agent Card) 来标准化智能体自我描述的格式,但发现这些代理卡的方法会根据不同环境有所不同。
常见的代理发现方式包括三类:
- 众所周知的 URI
对于公共或开放域的代理,推荐将代理卡托管在标准化路径,例如:https://{agent-server-domain}/.well-known/agent-card.json
客户端代理只需对该 URL 发起 HTTP 请求即可获取代理卡。这种方式标准化、易于自动发现,适合开放环境,如果包含敏感信息,可能需要访问控制或身份验证。
- 注册表/目录发现
企业或专用生态系统中,代理卡可以集中发布到注册表,由客户端查询以发现符合条件的代理。这种方式便于管理、支持基于技能而非域名的查找,并可实现访问控制。但是需要额外的注册表服务,A2A 目前尚未标准化相关 API。
- 直接配置或私有发现
在紧密耦合或开发测试环境中,客户端可以直接配置代理卡信息或 URL,从本地配置文件、环境变量或专有 API 获取。这种方式简单、适合已知静态关系,但是灵活性低,远程代理更新可能需要重新配置。
6.应用场景
A2A 协议不仅是理论上的探索,已经在一些方向开始尝试:
- 多智能体对话系统
- 一个负责创意,一个负责写作,一个负责校对
- 通过协议互相传递“草稿”“修改意见”“最终稿”
- 自动化工作流
- 数据检索 → 文本生成 → API 调用 → 结果验证
- 每个步骤由一个 Agent 负责,协议保证结果顺畅传递
- 跨平台生态
- 不同厂商的 Agent 能通过协议互操作
- 想象一下,你用的是 OpenAI 的规划 Agent,调用的是 Anthropic 的写作 Agent,再用本地的执行 Agent
- 机器人与物联网
- 机器人集群通过 A2A 协议共享任务和感知信息
- IoT 设备间也能互通消息,组成“自治网络”
- 分布式决策
- 金融风控:不同 Agent 各自分析风险点,再通过协议汇总结论
- 医疗诊断:多 Agent 协作提出诊断方案,医生只需做最后确认
我们最后来回答一下开头的问题
- Agent2Agent 协议是什么?
一套面向智能体的通信标准,解决不同 Agent 之间交流不畅的问题。 - 为什么需要它?
因为多智能体系统复杂度高,没有协议就会陷入混乱,难以扩展。 - 应用场景有哪些?
多智能体对话、自动化工作流、跨平台生态、机器人协作、分布式决策等。
关于深度学习和大模型相关的知识与前沿技术,欢迎关注公众号 coting!
部分内容参考了相关开源社区和研究资料,非常感谢,如有侵权请联系删除。
参考链接
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)