Message (消息)
Message (消息)
Message (消息) 是 A2A 协议中用于在客户端和代理之间传递非工件 (non-Artifact) 内容的基本通信单元。
消息的用途
消息承载了交互过程中的各种信息,包括:
- 用户输入: 所有来自客户端的请求、指令或上下文信息都以消息的形式发送。
- 代理思考: 代理在处理任务时的中间步骤、思考过程或解释。
- 状态更新: 代理传达任务状态变化的信息。
- 指令: 代理向客户端发出的请求或指令(例如,请求更多信息)。
- 错误信息: 传递交互过程中发生的错误。
- 元数据: 附带的额外信息。
与专注于最终结果的 Artifact
不同,Message
更侧重于交互的过程和控制流。
消息结构
- 角色 (Role): 消息发送者的角色,通常是
user
(客户端) 或agent
(代理)。 - 片段 (Parts): 消息可以包含一个或多个
Part
,每个Part
代表不同类型的内容(如文本、文件引用等)。这使得一个消息可以同时传递多种类型的信息,例如用户的文本描述和相关的上下文文件。 - 元数据 (Metadata): 可选的元数据字段,用于携带额外信息。
消息接口定义
以下是消息接口的示意性定义:
interface Message {
role: "user" | "agent"; // 消息发送者的角色
parts: Part[]; // 消息包含的部分数组
metadata?: Record<string, any>; // 扩展元数据
}
通过使用 Message
和 Artifact
,A2A 协议清晰地区分了交互过程信息和最终结果,使得通信更加结构化和易于管理。