Przejdź do treści

Artefakty

Artefakty umożliwiają przechowywanie trwałych wyników przepływu pracy bez powiększania głównego ładunku stanu przepływu pracy.

Sprawdzają się w przypadku roboczych dokumentów, planów JSON wyodrębnionych z danych, cytowań, manifestów źródłowych, wygenerowanych ścieżek plików oraz migawek promptów i odpowiedzi, które chcesz później przejrzeć. Jest to szczególnie przydatne w przepływach pracy agentów: stan końcowy pozostaje mały i czytelny, nawet jeśli każde uruchomienie może wygenerować duże wyniki pośrednie.

Dlaczego artefakty zamiast stanu przepływu pracy

Stan przepływu pracy najlepiej nadaje się do przechowywania niewielkich, publicznych danych potrzebnych natychmiast w następnym kroku.

Artefakty są lepsze, gdy wynik jest większy niż zwykłe wartości stanu, służy głównie do późniejszego przeglądania, przydaje się w widokach do sprawdzania lub eksportowania albo po prostu lepiej reprezentuje go nazwany wynik niż jeden duży obiekt stanu.

Zapisz artefakt dla bieżącego kroku przepływu pracy

Gdy kod działa już w kroku przepływu pracy, użyj 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 automatycznie przypisuje bieżący identyfikator przepływu pracy i indeks kroku.

Zapisz artefakt spoza przepływu pracy

Jeśli znasz już identyfikator przepływu pracy, użyj Queuety::put_artifact():

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

Odczytaj artefakty

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

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

Każdy rekord artefaktu zawiera pola key, kind, content, metadata, step_index, created_at i updated_at. Queuety::workflow_artifacts() pomija content, chyba że przekażesz true jako drugi argument.

Integracja ze statusem przepływu pracy

Queuety::workflow_status() zawiera teraz krótkie podsumowanie artefaktów:

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

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

Dzięki temu artefakty są widoczne, ale ich pełna zawartość nie trafia do danych wyjściowych statusu.

CLI

Wyświetl listę artefaktów przepływu pracy:

Powłoka
wp queuety workflow artifacts 42

Pokaż jeden artefakt wraz z zawartością:

Powłoka
wp queuety workflow artifact 42 draft

Pełny opis poleceń znajdziesz w CLI.

Eksport i odtwarzanie

Artefakty są uwzględniane w eksportach przepływów pracy i kopiowane do odtwarzanych przepływów.

Dzięki temu przebiegi agentów oparte na artefaktach można nadal przeglądać, nawet po przeniesieniu ich między środowiskami lub odtworzeniu na podstawie wyeksportowanej historii wykonania.