跳转至

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文档,作为初始发现和交互设置的数字名片。它提供有关智能体的基本元数据。

7.Reference

A2A文档