A2A¶
约 1378 个字 1 张图片 预计阅读时间 4 分钟
1.什么是A2A协议¶
A2A协议是一个开放标准,让AI智能体之间能够无缝通信和协作。A2A让来自不同开发者、基于不同框架、属于不同组织的智能体能够联合起来,共同工作。
2.A2A解决的问题¶
-
智能体暴露问题:将智能体包装为工具限制了它们的能力。A2A允许智能体以原本的形式暴露。
-
自定义集成:每个交互都需要自定义的点对点解决方案,造成巨大的工程开销。
-
创新缓慢:为每个新集成进行定制开发会减缓创新。
-
可扩展性问题:随着智能体数量和交互的增长,系统变得难以扩展和维护。
-
互操作性:这种方法限制了互操作性,阻止了复杂AI生态系统的有机形成。
-
安全漏洞:临时通信通常缺乏一致的安全措施。
3.A2A的核心优势¶
-
安全协作:没有标准,很难确保智能体之间的安全通信。A2A使用HTTPS进行安全通信,并维护不透明操作,因此智能体在协作期间无法看到其他智能体的内部工作。
-
互操作性:A2A打破了不同AI智能体生态系统之间的孤岛,使来自各种供应商和框架的智能体能够无缝协作。
-
智能体自主性:A2A允许智能体保持其个体能力,在与其他智能体协作时作为自主实体行动。
-
降低集成复杂性:协议标准化智能体通信,使团队能够专注于其智能体提供的独特价值。
-
支持长时间运行操作:协议支持长时间运行操作(LRO)以及使用服务器发送事件(SSE)和异步执行的流式传输。
4.理解智能体技术栈¶
A2A位于更广泛的智能体技术栈中,包括:
-
A2A:标准化部署在不同组织并使用不同框架开发的智能体之间的通信。
-
MCP:将模型连接到数据和外部资源。
-
框架(如ADK):提供构建智能体的工具包。
-
模型:智能体推理的基础,可以是任何大语言模型(LLM)。
5.A2A和MCP¶
A2A与MCP并不是相互排斥的关系,A2A旨在标准化AI智能体之间的通信,MCP的重点是减少智能体与工具和数据连接所涉及的复杂性。两者相互补充。
6.A2A核心概念¶
6.1 A2A交互中的核心参与者¶
-
用户(User):最终用户,可以是人类操作员或自动化服务。用户发起需要一个或多个AI智能体协助的请求或定义目标。
-
A2A客户端(客户端智能体):代表用户行动的应用程序、服务或另一个AI智能体。客户端使用A2A协议发起通信。
-
A2A服务器(远程智能体):实现A2A协议HTTP端点的AI智能体或智能体系统。它接收来自客户端的请求,处理任务,并返回结果或状态更新。从客户端的角度来看,远程智能体作为不透明(黑盒)系统运行,意味着其内部工作、内存或工具不会暴露。
6.2 基本通信元素¶
| 元素 | 描述 | 关键目的 |
|---|---|---|
| 智能体卡片(Agent Card) | 描述智能体身份、能力、端点、技能和身份验证要求的JSON元数据文档。 | 使客户端能够发现智能体并了解如何安全有效地与它们交互。 |
| 任务(Task) | 由智能体发起的有状态工作单元,具有唯一ID和定义的生命周期。 | 促进长时间运行操作的跟踪,并支持多轮交互和协作。 |
| 消息(Message) | 客户端和智能体之间的单轮通信,包含内容和角色(“用户”或“智能体”)。 | 传递指令、上下文、问题、答案或不一定是正式工作的状态更新。 |
| 部分(Part) | 消息和工件中使用的基本内容容器(例如TextPart、FilePart、DataPart)。 | 为智能体在消息和工件中交换各种内容类型提供灵活性。 |
| 工件(Artifact) | 智能体在任务期间生成的有形输出(例如文档、图像或结构化数据)。 | 提供智能体工作的具体结果,确保结构化和可检索的输出。 |
6.3 交互机制¶
A2A协议支持各种交互模式,以适应不同的响应性和持久性需求。这些机制确保智能体能够高效可靠地交换信息,无论任务的复杂性或持续时间如何:
-
请求/响应(轮询):客户端发送请求,服务器响应。对于长时间运行的任务,客户端定期轮询服务器以获取更新。
-
使用服务器发送事件(SSE)的流式传输:客户端发起流以通过开放的HTTP连接从服务器接收实时、增量结果或状态更新。
-
推送通知:对于非常长时间运行的任务或断开连接的场景,当发生重要任务更新时,服务器可以主动向客户端提供的webhook发送异步通知。
6.4 Agent Card¶
Agent Card是一个JSON文档,作为初始发现和交互设置的数字名片。它提供有关智能体的基本元数据。
