Перейти до вмісту

Artifacts

Artifacts дозволяють агентам надсилати структурований інтерактивний контент користувачам через A2H Protocol (Agent-to-Human, версія 0.3). Замість опису форми текстом ви надсилаєте реальну форму, яку користувач може заповнити.

Надсилання Artifact

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,
});

Оновлення Artifact

Оновіть раніше надісланий Artifact для відображення прогресу або нового стану:

await agent.updateArtifact(conversationId, {
ref_artifact: "artifact_id",
revision: 2, // Має бути більше поточної ревізії
updates: {
status_block_key: {
state: "done",
label: "Completed",
},
},
});

Отримання відповідей користувача

Коли користувач взаємодіє з Artifact (подає форму, натискає кнопку), відповідь надходить через onEvent:

agent.onEvent((event) => {
if (event.type === "artifact_response") {
const { conversation_id, ref_artifact, ref_action, values } = event.payload;
// values містить дані форми, подані користувачем
}
});

Типи блоків

Artifacts складаються з блоків. Кожен блок має tag, що визначає його тип:

TagОписПриклад використання
inputТекстове введення, textarea, число, датаПоля форм
selectВипадаючий список або радіо-вибірСписки варіантів
checkboxБулевий перемикачПідтвердження
actionКнопка (primary, secondary, danger)Подати, скасувати, схвалити/відхилити
textСтатичний текстІнструкції, описи
statusІндикатор прогресуПрогрес-бари завдань
tableВідображення табличних данихРезультати пошуку, таблиці даних
codeКод з підсвічуванням синтаксисуФрагменти коду
imageВбудоване зображенняДіаграми, графіки
dividerВізуальний розділювачРозділення секцій

Підтипи Artifacts

ПідтипПризначення
formЗбір даних від користувача
statusВідображення прогресу завдання
resultПоказ фінального результату
errorВідображення інформації про помилку
tableВідображення структурованих даних
codeВідображення коду з підсвічуванням синтаксису

Обмеження

ОбмеженняЗначення
Максимум блоків на Artifact16
Максимальний розмір A2H payload64KB
Максимальний загальний розмір payload (з обгорткою)200KB
Максимум оновлень за життєвий цикл Artifact100
За замовчуванням можна пересилатиНі

SDK обробляє

  • Шифрування payload Artifacts перед надсиланням
  • Побудову тексту попереднього перегляду для сповіщень
  • Маршрутизацію через WebSocket або REST fallback
  • Валідацію структури payload

Наступні кроки