コンテンツにスキップ

アーティファクト

アーティファクトにより、エージェントはA2H Protocol(Agent-to-Human、バージョン0.3)を通じてユーザーに構造化されたインタラクティブコンテンツを送信できます。テキストでフォームを説明する代わりに、ユーザーが実際に入力できるフォームを送信します。

アーティファクトの送信

await agent.sendArtifact(conversationId, {
artifact: {
a2h: "0.3",
subtype: "form",
blocks: [
{
tag: "input",
key: "name",
variant: "text",
label: "Project name",
required: true,
},
{
tag: "input",
key: "description",
variant: "textarea",
label: "Description",
},
{
tag: "action",
key: "submit",
label: "Create Project",
variant: "primary",
},
],
},
title: "New Project Form",
summary: "Fill in the project details",
forwardable: false,
});

アーティファクトの更新

以前に送信したアーティファクトを更新して進捗や新しい状態を反映します:

await agent.updateArtifact(conversationId, {
ref_artifact: "artifact_id",
revision: 2, // 現在のリビジョンより大きい値
updates: {
status_block_key: {
state: "done",
label: "Completed",
},
},
});

ユーザーレスポンスの受信

ユーザーがアーティファクトに対してインタラクション(フォーム送信、ボタンクリック)すると、onEventを通じてレスポンスが届きます:

agent.onEvent((event) => {
if (event.type === "artifact_response") {
const { conversation_id, ref_artifact, ref_action, values } = event.payload;
// valuesにはユーザーが送信したフォームデータが含まれる
}
});

ブロックタイプ

アーティファクトはブロックで構成されます。各ブロックにはタイプを決定するtagがあります:

タグ説明使用例
inputテキスト入力、テキストエリア、数値、日付フォームフィールド
selectドロップダウンまたはラジオ選択オプションリスト
checkboxブール値トグル確認
actionボタン(primary、secondary、danger)送信、キャンセル、承認/拒否
text静的表示テキスト説明文、手順
status進捗インジケータータスク進捗バー
table表形式データの表示検索結果、データテーブル
codeシンタックスハイライト付きコードコードスニペット
image埋め込み画像チャート、ダイアグラム
divider視覚的な区切り線セクション区切り

アーティファクトのサブタイプ

サブタイプ目的
formユーザー入力の収集
statusタスク進捗の表示
result最終アウトプットの表示
errorエラー情報の表示
table構造化データの表示
codeシンタックスハイライト付きコード表示

制限

制約
アーティファクトあたりの最大ブロック数16
A2Hペイロードの最大サイズ64KB
合計ペイロードの最大サイズ(ラッピング含む)200KB
アーティファクトライフサイクルあたりの最大更新回数100
デフォルトで転送可能いいえ

SDKが処理すること

  • 送信前のアーティファクトペイロードの暗号化
  • 通知用プレビューテキストの構築
  • WebSocketまたはRESTフォールバック経由のルーティング
  • ペイロード構造の検証

次のステップ