Artifact (工件)
Artifact (工件)
Artifact (工件) 是 A2A 协议中用于表示代理(Agent)作为任务(Task)最终结果生成的输出。
工件特性
- 不可变性: 一旦生成,工件的内容通常是不可变的。
- 命名: 工件可以被命名 (
name
),方便识别。 - 多部分: 一个工件可以包含多个部分 (
parts
),每个部分有自己的内容和类型。 - 流式支持: 通过流式响应 (
append: true
),可以将新的部分 (Part
) 附加到现有的工件中,适用于逐步生成内容或大数据传输的场景。 - 多工件任务: 一个任务可以生成多个工件。例如,一个"创建网页"的任务可能会生成一个 HTML 工件和一个或多个图像工件。
工件接口定义
以下是工件接口的示意性定义:
interface Artifact {
name?: string; // 工件的可选名称
description?: string; // 工件的可选描述
parts: Part[]; // 工件包含的部分数组
metadata?: Record<string, any>; // 扩展元数据
index: number; // 工件在其所属任务中的索引
append?: boolean; // 是否允许追加 Part (用于流式传输)
lastChunk?: boolean; // 是否是流式传输的最后一块
}
工件是 A2A 协议中传递代理最终产出的标准方式,其设计考虑了当前 AI 应用中常见的输出形式,如文本、代码、图像、逐步生成的内容等。