Artefacte
Artefactele vă permit să stocați rezultate persistente ale fluxului de lucru fără să măriți payload-ul principal al stării acestuia.
Sunt potrivite pentru documente în curs de redactare, planuri JSON extrase, citări, manifeste de surse, căi către fișiere generate sau instantanee ale solicitărilor și răspunsurilor pe care doriți să le inspectați ulterior. Sunt deosebit de utile în fluxurile de lucru cu agenți, unde starea finală trebuie să rămână compactă și ușor de citit, chiar dacă fiecare execuție poate genera rezultate intermediare voluminoase.
De ce artefacte în locul stării fluxului de lucru
Starea fluxului de lucru este ideală pentru datele publice de mici dimensiuni de care are nevoie imediat pasul următor.
Artefactele sunt mai potrivite când rezultatul este mai mare decât valorile obișnuite ale stării, este destinat în principal inspecției ulterioare, este util în interfețele de examinare sau export ori este pur și simplu mai bine reprezentat ca rezultat cu nume decât ca un singur bloc mare de stare.
Stocarea unui artefact pentru pasul curent al fluxului de lucru
Când codul rulează deja într-un pas al fluxului de lucru, folosiți 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 atașează automat ID-ul fluxului de lucru curent și indexul pasului.
Stocarea unui artefact din afara fluxului de lucru
Dacă știți deja ID-ul fluxului de lucru, folosiți Queuety::put_artifact():
Queuety::put_artifact(
$workflow_id,
'research_brief',
"# Research Brief\n\nDone.",
'markdown',
metadata: [ 'reviewed_by' => 'editor@example.com' ],
);
Citirea artefactelor
$artifact = Queuety::workflow_artifact( $workflow_id, 'draft' );
$artifacts = Queuety::workflow_artifacts( $workflow_id );
Fiecare înregistrare de artefact include câmpurile key, kind, content, metadata, step_index, created_at și updated_at. Queuety::workflow_artifacts() omite content, cu excepția cazului în care îi transmiteți true ca al doilea argument.
Integrarea cu starea fluxului de lucru
Queuety::workflow_status() include acum un rezumat compact al artefactelor:
$status = Queuety::workflow_status( $workflow_id );
echo $status->artifact_count; // 2
print_r( $status->artifact_keys ); // ['draft', 'citations']
Astfel, artefactele rămân vizibile fără ca întregul lor conținut să fie inclus în rezultatul stării.
CLI
Listați artefactele unui flux de lucru:
wp queuety workflow artifacts 42
Afișați un artefact împreună cu conținutul său:
wp queuety workflow artifact 42 draft
Consultați CLIreferința completă a comenzilor.
Exporturi și reluare
Artefactele sunt incluse în exporturile fluxurilor de lucru și copiate în fluxurile de lucru reluate.
Astfel, execuțiile agenților bazate pe artefacte rămân inspectabile chiar și când le mutați între medii sau recreați o execuție din istoricul ei de execuție exportat.