Pular para o conteúdo

Artefatos

Os artefatos permitem armazenar saídas duráveis dos fluxos de trabalho sem aumentar o payload do estado principal.

São adequados para documentos de rascunho, planos extraídos de JSON, citações, manifestos de origem, caminhos de arquivos gerados ou capturas de prompts e respostas que você queira inspecionar depois. Isso é especialmente útil em fluxos de trabalho de agentes, nos quais o estado final deve permanecer pequeno e legível, embora cada execução possa gerar grandes saídas intermediárias.

Por que usar artefatos em vez do estado do fluxo de trabalho

O estado do fluxo de trabalho é ideal para os pequenos dados públicos de que a próxima etapa precisa imediatamente.

Os artefatos são mais adequados quando a saída é maior do que os valores de estado comuns, serve principalmente para inspeção posterior, é útil em interfaces de revisão ou exportação ou simplesmente funciona melhor como uma saída nomeada do que como um grande bloco de estado.

Armazenar um artefato para a etapa atual do fluxo de trabalho

Quando o código já estiver sendo executado em uma etapa do fluxo de trabalho, use 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 anexa automaticamente o ID do fluxo de trabalho e o índice da etapa atuais.

Armazenar um artefato fora do fluxo de trabalho

Se você já souber o ID do fluxo de trabalho, use Queuety::put_artifact():

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

Ler os artefatos

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

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

Cada registro de artefato inclui os campos key, kind, content, metadata, step_index, created_at e updated_at. Queuety::workflow_artifacts() não inclui content, a menos que você passe true como segundo argumento.

Integração com o status do fluxo de trabalho

Queuety::workflow_status() agora inclui um pequeno resumo dos artefatos:

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

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

Assim, os artefatos ficam visíveis sem que seu conteúdo completo seja incluído na saída de status.

CLI

Listar os artefatos de um fluxo de trabalho:

Shell
wp queuety workflow artifacts 42

Mostrar um artefato com conteúdo:

Shell
wp queuety workflow artifact 42 draft

Consulte CLI para ver a referência completa dos comandos.

Exportação e reprodução

Os artefatos são incluídos nas exportações de fluxos de trabalho e copiados para os fluxos reproduzidos.

Isso significa que as execuções de agentes com artefatos continuam inspecionáveis mesmo quando transferidas entre ambientes ou recriadas a partir do histórico de execução exportado.