Ga naar inhoud

Artifacts

Artifacts laten agents gestructureerde, interactieve inhoud naar gebruikers sturen via het A2H Protocol (Agent-to-Human, versie 0.3). In plaats van een formulier in tekst te beschrijven, stuur je een echt formulier dat de gebruiker kan invullen.

Een Artifact versturen

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

Een Artifact bijwerken

Werk een eerder verstuurd artifact bij om voortgang of een nieuwe status weer te geven:

await agent.updateArtifact(conversationId, {
ref_artifact: "artifact_id",
revision: 2, // Must be greater than the current revision
updates: {
status_block_key: {
state: "done",
label: "Completed",
},
},
});

Gebruikersreacties ontvangen

Wanneer een gebruiker interacteert met een artifact (formulier indient, knop klikt), komt de reactie binnen via onEvent:

agent.onEvent((event) => {
if (event.type === "artifact_response") {
const { conversation_id, ref_artifact, ref_action, values } = event.payload;
// values contains the form data submitted by the user
}
});

Bloktypen

Artifacts zijn samengesteld uit blokken. Elk blok heeft een tag die het type bepaalt:

TagBeschrijvingVoorbeeldgebruik
inputTekstinvoer, textarea, nummer, datumFormuliervelden
selectDropdown of radio-selectieOptielijsten
checkboxBooleaanse schakelaarBevestigingen
actionKnop (primary, secondary, danger)Verzenden, annuleren, goedkeuren/weigeren
textStatische weergavetekstInstructies, beschrijvingen
statusVoortgangsindicatorTaakvoortgangsbalken
tableTabelgegevens weergaveZoekresultaten, gegevenstabellen
codeSyntax-gemarkeerde codeCodefragmenten
imageIngesloten afbeeldingGrafieken, diagrammen
dividerVisuele scheidingSectie-overgangen

Artifact-subtypes

SubtypeDoel
formGebruikersinvoer verzamelen
statusTaakvoortgang weergeven
resultEindresultaat tonen
errorFoutinformatie weergeven
tableGestructureerde gegevensweergave
codeCodeweergave met syntax-markering

Limieten

BeperkingWaarde
Maximale blokken per artifact16
Maximale A2H-payloadgrootte64KB
Maximale totale payload (met wrapping)200KB
Maximale updates per artifact-levenscyclus100
Standaard doorstuurbaarNee

De SDK handelt af

  • Artifact-payloads versleutelen voor verzending
  • Voorbeeldtekst samenstellen voor meldingen
  • Routering via WebSocket of REST-fallback
  • Payloadstructuur valideren

Volgende stappen