Artefakter
Artefakter lader dig gemme holdbart output fra workflows uden at gøre workflowets primære tilstandspayload større.
De egner sig godt til dokumentudkast, udtrukne JSON-planer, kildehenvisninger, kildemanifester, genererede filstier eller øjebliksbilleder af prompter og svar, som du vil inspicere senere. Det er især nyttigt til agentworkflows, hvor den endelige tilstand skal forblive lille og overskuelig, selvom hver kørsel kan generere store mellemliggende resultater.
Hvorfor bruge artefakter i stedet for workflowtilstand
Workflowtilstand er ideel til de små offentlige data, som næste trin har brug for med det samme.
Artefakter er bedre, når outputtet er større end almindelige tilstandsværdier, primært skal inspiceres senere, er nyttigt i forbindelse med gennemgang eller eksport eller ganske enkelt fungerer bedre som et navngivet output end som én stor tilstandsblob.
Gem et artefakt for det aktuelle workflowtrin
Når koden allerede kører i et workflowtrin, skal du bruge 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 tilføjer automatisk det aktuelle workflow-id og trinindeks.
Gem et artefakt uden for workflowet
Hvis du allerede kender workflow-id'et, skal du bruge Queuety::put_artifact():
Queuety::put_artifact(
$workflow_id,
'research_brief',
"# Research Brief\n\nDone.",
'markdown',
metadata: [ 'reviewed_by' => 'editor@example.com' ],
);
Læs artefakter igen
$artifact = Queuety::workflow_artifact( $workflow_id, 'draft' );
$artifacts = Queuety::workflow_artifacts( $workflow_id );
Hver artefaktpost indeholder felterne key, kind, content, metadata, step_index, created_at og updated_at. Queuety::workflow_artifacts() udelader content, medmindre du videregiver true som det andet argument.
Integration med workflowstatus
Queuety::workflow_status() indeholder nu et kort artefaktoverblik:
$status = Queuety::workflow_status( $workflow_id );
echo $status->artifact_count; // 2
print_r( $status->artifact_keys ); // ['draft', 'citations']
Dermed er artefakter synlige uden at deres fulde indhold føjes til statusoutputtet.
CLI
Vis artefakter for et workflow:
wp queuety workflow artifacts 42
Vis ét artefakt med indhold:
wp queuety workflow artifact 42 draft
Se CLI for hele kommandoreferencen.
Eksport og afspilning igen
Artefakter er inkluderet i workfloweksport og kopieres til workflows, der afspilles igen.
Det betyder, at agentkørsler, der bruger artefakter, stadig kan inspiceres, når du flytter dem mellem miljøer eller genskaber en kørsel ud fra dens eksporterede kørselsoversigt.