Skip to main content

A2A 中的核心概念和组件

A2A 使用一组核心概念来定义智能体如何交互。理解这些核心构建块,以开发或集成符合 A2A 标准的系统。

A2A 参与者显示用户、A2A 客户端(客户端智能体)和 A2A 服务器(远程智能体)

A2A 交互中的核心参与者

  • 用户(User):最终用户,可以是人类操作员或自动化服务。用户发起请求或定义需要一个或多个 AI 智能体协助的目标。
  • A2A 客户端(客户端智能体):代表用户行动的应用程序、服务或另一个 AI 智能体。客户端使用 A2A 协议发起通信。
  • A2A 服务器(远程智能体):实现 A2A 协议的 HTTP 端点的 AI 智能体或智能体系统。它接收来自客户端的请求,处理任务,并返回结果或状态更新。从客户端的角度来看,远程智能体作为_不透明_(黑盒)系统运行,这意味着其内部工作原理、内存或工具不会被暴露。

基本通信元素

下表描述了 A2A 中的基本通信元素:

元素描述关键目的
Agent Card(智能体卡片)描述智能体身份、能力、端点、技能和身份验证要求的 JSON 元数据文档。使客户端能够发现智能体并了解如何安全有效地与它们交互。
Task(任务)由智能体发起的有状态工作单元,具有唯一 ID 和定义的生命周期。便于跟踪长时间运行的操作,并实现多轮交互和协作。
Message(消息)客户端和智能体之间的单轮通信,包含内容和角色("user" 或 "agent")。传达指令、上下文、问题、答案或状态更新,这些不一定是正式的制品。
Part(部分)在消息和制品中使用的基本内容容器(例如,TextPart、FilePart、DataPart)。为智能体在消息和制品中交换各种内容类型提供灵活性。
Artifact(制品)智能体在任务期间生成的有形输出(例如,文档、图像或结构化数据)。交付智能体工作的具体结果,确保结构化和可检索的输出。

交互机制

A2A 协议支持各种交互模式,以适应不同的响应性和持久性需求。这些机制确保智能体可以高效可靠地交换信息,无论任务的复杂性或持续时间如何:

  • 请求/响应(轮询):客户端发送请求,服务器响应。对于长时间运行的任务,客户端定期轮询服务器以获取更新。
  • 使用服务器发送事件(SSE)的流式传输:客户端通过开放的 HTTP 连接发起流以从服务器接收实时、增量的结果或状态更新。
  • 推送通知:对于非常长时间运行的任务或断开连接的场景,当发生重要任务更新时,服务器可以主动向客户端提供的 webhook 发送异步通知。

有关流式传输和推送通知的详细探讨,请参阅流式传输和异步操作文档。

智能体卡片

智能体卡片是一个 JSON 文档,用作初始发现和交互设置的数字名片。它提供有关智能体的基本元数据。客户端解析此信息以确定智能体是否适合给定任务、如何构建请求以及如何安全通信。关键信息包括身份、服务端点(URL)、A2A 能力、身份验证要求和技能列表。

消息和部分

消息表示客户端和智能体之间的单轮通信。它包括角色("user" 或 "agent")和唯一的 messageId。它包含一个或多个 Part 对象,这些对象是实际内容的细粒度容器。这种设计使 A2A 能够独立于模态。

主要的部分类型包括:

  • TextPart:包含纯文本内容。
  • FilePart:表示文件。它可以通过内联(Base64 编码)或通过 URI 传输。它包括 "name" 和 "mimeType" 等元数据。
  • DataPart:携带结构化的 JSON 数据。这对于表单、参数或任何机器可读信息很有用。

制品

制品表示远程智能体在任务处理期间生成的有形输出或具体结果。与一般消息不同,制品是实际的交付成果。制品具有唯一的 artifactId、人类可读的名称,并由一个或多个 part 对象组成。制品与任务生命周期紧密相关,可以增量地流式传输给客户端。

智能体响应:任务或消息

智能体响应可以是新的 Task(当智能体需要执行长时间运行的操作时)或 Message(当智能体可以立即响应时)。

有关更多详细信息,请参阅任务的生命周期

其他重要概念

  • 上下文(contextId): 服务器生成的标识符,可用于逻辑分组多个相关的 Task 对象,在一系列交互中提供上下文。
  • 传输和格式: A2A 通信通过 HTTP(S) 进行。JSON-RPC 2.0 用作所有请求和响应的有效载荷格式。
  • 身份验证和授权: A2A 依赖于标准的 Web 安全实践。身份验证要求在智能体卡片中声明,凭证(例如,OAuth 令牌、API 密钥)通常通过 HTTP 标头传递,与 A2A 协议消息本身分开。有关更多信息,请参阅企业级功能
  • 智能体发现: 客户端查找智能体卡片以了解可用的 A2A 服务器及其能力的过程。有关更多信息,请参阅智能体发现
  • 扩展: A2A 允许智能体将自定义协议扩展声明为其 AgentCard 的一部分。有关更多信息,请参阅扩展