Preskočiť na obsah

Artefakty

Artefakty umožňujú ukladať odolné výstupy pracovného postupu bez zbytočného zväčšovania hlavnej časti údajov o jeho stave.

Hodia sa pre návrhy dokumentov, extrahované plány JSON, citácie, manifesty zdrojov, cesty k vygenerovaným súborom alebo snímky výziev a odpovedí, ktoré si chcete neskôr prezrieť. Je to obzvlášť užitočné pri pracovných postupoch agentov, kde má výsledný stav zostať stručný a prehľadný, hoci každý beh môže vytvoriť veľké množstvo priebežných výstupov.

Prečo použiť artefakty namiesto stavu pracovného postupu

Stav pracovného postupu je ideálny pre malé verejné údaje, ktoré nasledujúci krok potrebuje okamžite.

Artefakty sú vhodnejšie, keď je výstup väčší než bežné hodnoty stavu, slúži najmä na neskoršiu kontrolu, je užitočný pri kontrole alebo exporte, prípadne sa lepšie modeluje ako pomenovaný výstup než ako jeden veľký blok údajov stavu.

Uloženie artefaktu pre aktuálny krok pracovného postupu

Ak kód už beží v rámci kroku pracovného postupu, použite 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 pripojí aktuálne ID pracovného postupu a index kroku.

Uloženie artefaktu mimo pracovného postupu

Ak už poznáte ID pracovného postupu, použite Queuety::put_artifact():

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

Načítanie artefaktov

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

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

Každý záznam artefaktu obsahuje polia key, kind, content, metadata, step_index, created_at a updated_at. Queuety::workflow_artifacts() vynechá content, pokiaľ ho neodovzdáte ako druhý argument true.

Integrácia so stavom pracovného postupu

Queuety::workflow_status() teraz obsahuje stručný súhrn artefaktov:

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

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

Vďaka tomu sú artefakty viditeľné bez načítania celého ich obsahu do výstupu stavu.

CLI

Zoznam artefaktov pracovného postupu:

Shell
wp queuety workflow artifacts 42

Zobrazenie jedného artefaktu aj s obsahom:

Shell
wp queuety workflow artifact 42 draft

Úplný prehľad príkazov nájdete v časti CLI.

Exporty a opätovné prehratie

Artefakty sú súčasťou exportov pracovných postupov a kopírujú sa do opätovne prehratých pracovných postupov.

To znamená, že behy agentov s artefaktmi zostávajú kontrolovateľné aj po presune medzi prostrediami alebo po obnovení behu z exportovanej histórie vykonávania.