Към съдържанието

Артефакти

Артефактите ви позволяват да съхранявате трайни изходни данни от работния процес, без да увеличавате полезния товар на основното му състояние.

Подходящи са за проектни документи, извлечени планове JSON, цитати, манифести на източници, пътища до генерирани файлове или моментни снимки на подкани и отговори, които искате да прегледате по-късно. Това е особено полезно за работни процеси с агенти, при които крайното състояние трябва да остане малко и четимо, въпреки че всяко изпълнение може да генерира големи междинни изходни данни.

Защо артефакти вместо състояние на работния процес

Състоянието на работния процес е идеално за малките публични данни, от които следващата стъпка се нуждае незабавно.

Артефактите са по-подходящи, когато изходът е по-голям от обичайните стойности на състоянието, предназначен е предимно за по-късен преглед, полезен е при преглед или експортиране или просто е по-добре да се представи като наименуван изход, отколкото като един голям блок със състояние.

Запазване на артефакт за текущата стъпка на работния процес

Когато кодът вече се изпълнява в стъпка на работен процес, използвайте 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 автоматично прикачва текущия ID на работния процес и индекса на стъпката.

Запазване на артефакт извън работния процес

Ако вече знаете ID на работния процес, използвайте Queuety::put_artifact():

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

Повторно прочитане на артефакти

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

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

Всеки запис за артефакт включва полетата key, kind, content, metadata, step_index, created_at и updated_at. Queuety::workflow_artifacts() пропуска content, освен ако не подадете true като втори аргумент.

Интеграция със състоянието на работния процес

Queuety::workflow_status() вече включва кратко обобщение на артефактите:

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

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

Така артефактите остават видими, без пълното им съдържание да се добавя към изхода за състоянието.

CLI

Изброяване на артефактите за работен процес:

Обвивка
wp queuety workflow artifacts 42

Показване на един артефакт със съдържание:

Обвивка
wp queuety workflow artifact 42 draft

Вижте CLI за пълната справка за командите.

Експортиране и повторно изпълнение

Артефактите се включват в експортирането на работния процес и се копират в повторно изпълнените работни процеси.

Това означава, че изпълненията на агенти, базирани на артефакти, остават достъпни за проверка дори когато ги премествате между среди или пресъздавате изпълнение от експортираната му история на изпълнение.