Preskoči na vsebino

Artefakti

Artefakti omogočajo shranjevanje trajnih izhodov poteka dela, ne da bi povečali koristni tovor glavnega stanja poteka dela.

Primerni so za osnutke dokumentov, izvlečene načrte JSON, navedke, manifeste izvornih datotek, ustvarjene poti do datotek ali posnetke pozivov in odgovorov, ki jih želite pregledati pozneje. To je posebej uporabno pri potekih dela z agenti, kjer naj končno stanje ostane majhno in pregledno, čeprav lahko vsaka izvedba ustvari velike vmesne izhode.

Zakaj artefakti namesto stanja poteka dela

Stanje poteka dela je idealno za majhne javne podatke, ki jih potrebuje naslednji korak.

Artefakti so primernejši, kadar je izhod večji od običajnih vrednosti stanja, namenjen predvsem poznejšemu pregledu, uporaben na zaslonih za pregled ali izvoz oziroma ga je preprosto bolje predstaviti kot poimenovan izhod kot pa kot velik skupek podatkov stanja.

Shranjevanje artefakta za trenutni korak poteka dela

Če se koda že izvaja znotraj koraka poteka dela, uporabite 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 samodejno doda trenutni ID poteka dela in indeks koraka.

Shranjevanje artefakta zunaj poteka dela

Če že poznate ID poteka dela, uporabite Queuety::put_artifact():

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

Branje shranjenih artefaktov

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

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

Vsak zapis artefakta vključuje polja key, kind, content, metadata, step_index, created_at in updated_at. Queuety::workflow_artifacts() ne vključuje content, razen če mu kot drugi argument posredujete true.

Integracija s stanjem poteka dela

Queuety::workflow_status() zdaj vključuje kratek povzetek artefakta:

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

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

Tako so artefakti vidni, ne da bi se njihova celotna vsebina vključila v izpis stanja.

CLI

Seznam artefaktov za potek dela:

Lupina
wp queuety workflow artifacts 42

Prikaz enega artefakta z vsebino:

Lupina
wp queuety workflow artifact 42 draft

Za celoten pregled ukazov glejte CLI.

Izvozi in ponovitve

Artefakti so vključeni v izvoze potekov dela in kopirani v ponovljene poteke dela.

To pomeni, da je mogoče izvajanja agentov z artefakti pregledovati tudi, ko jih premaknete med okolji ali znova ustvarite izvedbo iz izvožene zgodovine izvajanja.