Přejít k obsahu

Artefakty

Artefakty umožňují ukládat trvalé výstupy workflow, aniž by se zvětšoval hlavní datový obsah stavu workflow.

Hodí se pro návrhy dokumentů, extrahované plány JSON, citace, manifesty zdrojů, cesty ke generovaným souborům nebo snímky výzev a odpovědí, které chcete později zkontrolovat. Zvlášť užitečné jsou u agentních workflow, kde má konečný stav zůstat malý a přehledný, i když každý běh může vytvořit rozsáhlé mezivýstupy.

Proč používat artefakty místo stavu workflow

Stav workflow je ideální pro malé veřejné údaje, které další krok potřebuje okamžitě.

Artefakty jsou vhodnější, když je výstup větší než běžné hodnoty stavu, slouží hlavně k pozdější kontrole, hodí se pro rozhraní kontroly nebo exportu, případně je jednoduše lepší modelovat ho jako pojmenovaný výstup než jako jeden velký blok stavu.

Uložení artefaktu pro aktuální krok workflow

Pokud kód už běží v kroku workflow, použijte Queuety::put_current_artifact():

PHP
use Queuety\Queuety;
use Queuety\Step;

final class DraftBriefStep implements Step
{
    public function handle(array $state): array
    {
        $draft = [
            'title' => 'Pricing brief',
            'body' => '...',
        ];

        Queuety::put_current_artifact(
            'draft',
            $draft,
            'json',
            [ 'source' => 'planner' ],
        );

        return [ 'draft_ready' => true ];
    }

    public function config(): array
    {
        return [];
    }
}

Queuety automaticky připojí aktuální ID workflow a index kroku.

Uložení artefaktu mimo workflow

Pokud už znáte ID workflow, použijte Queuety::put_artifact():

PHP
Queuety::put_artifact(
    $workflow_id,
    'research_brief',
    "# Research Brief\n\nDone.",
    'markdown',
    metadata: [ 'reviewed_by' => 'editor@example.com' ],
);

Čtení uložených artefaktů

PHP
$artifact = Queuety::workflow_artifact( $workflow_id, 'draft' );

$artifacts = Queuety::workflow_artifacts( $workflow_id );

Každý záznam artefaktu obsahuje pole key, kind, content, metadata, step_index, created_at a updated_at. Queuety::workflow_artifacts() vynechá content, pokud jej nepředáte jako druhý argument true.

Integrace se stavem workflow

Queuety::workflow_status() nyní obsahuje stručný souhrn artefaktů:

PHP
$status = Queuety::workflow_status( $workflow_id );

echo $status->artifact_count; // 2
print_r( $status->artifact_keys ); // ['draft', 'citations']

Díky tomu jsou artefakty viditelné, aniž by se do výstupu stavu načítal jejich úplný obsah.

CLI

Výpis artefaktů pro workflow:

Shell
wp queuety workflow artifacts 42

Zobrazení jednoho artefaktu včetně obsahu:

Shell
wp queuety workflow artifact 42 draft

Úplný přehled příkazů najdete v dokumentaci CLI.

Export a opakované přehrání

Artefakty jsou součástí exportů workflow a kopírují se do znovu přehrávaných workflow.

Díky tomu zůstávají běhy agentů založené na artefaktech přehledné i při přesunu mezi prostředími nebo při opětovném vytvoření běhu z exportované historie jeho provádění.