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():
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():
Queuety::put_artifact(
$workflow_id,
'research_brief',
"# Research Brief\n\nDone.",
'markdown',
metadata: [ 'reviewed_by' => 'editor@example.com' ],
);
Čtení uložených artefaktů
$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ů:
$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:
wp queuety workflow artifacts 42
Zobrazení jednoho artefaktu včetně obsahu:
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í.