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():
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():
Queuety::put_artifact(
$workflow_id,
'research_brief',
"# Research Brief\n\nDone.",
'markdown',
metadata: [ 'reviewed_by' => 'editor@example.com' ],
);
Ler os artefatos
$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:
$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:
wp queuety workflow artifacts 42
Mostrar um artefato com conteúdo:
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.