Ugrás a tartalomhoz

Artefaktumok

Az artefaktumok lehetővé teszik, hogy tartós munkafolyamat-kimeneteket tárolj a fő munkafolyamat-állapotcsomag felduzzasztása nélkül.

Jól használhatók piszkozatdokumentumokhoz, kinyert JSON-tervekhez, hivatkozásokhoz, forrásjegyzékekhez, generált fájlútvonalakhoz, valamint későbbi vizsgálatra szánt prompt- és válaszmásolatokhoz. Ez különösen hasznos az ügynökmunkafolyamatoknál, ahol a végső állapotnak kicsinek és áttekinthetőnek kell maradnia, még akkor is, ha egy futtatás sok nagy méretű köztes eredményt állít elő.

Miért artefaktumokat használjunk a munkafolyamat-állapot helyett

A munkafolyamat állapota ideális a következő lépés számára azonnal szükséges, kis méretű nyilvános adatokhoz.

Az artefaktumok akkor megfelelőbbek, ha a kimenet nagyobb a szokásos állapotértékeknél, főként későbbi vizsgálatra szolgál, hasznos lehet ellenőrzési vagy exportfelületeken, vagy egyszerűen jobb elnevezett kimenetként modellezni, mint egyetlen nagy állapotblobbá alakítani.

Artefaktum mentése az aktuális munkafolyamat-lépéshez

Ha a kód már egy munkafolyamat-lépésen belül fut, használd a Queuety::put_current_artifact() elemet:

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 [];
    }
}

A Queuety automatikusan hozzárendeli az aktuális munkafolyamat-azonosítót és lépésindexet.

Artefaktum mentése a munkafolyamaton kívülről

Ha már ismered a munkafolyamat-azonosítót, használd a Queuety::put_artifact() elemet:

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

Artefaktumok visszaolvasása

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

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

Minden artefaktumrekord tartalmazza a következő mezőket: key, kind, content, metadata, step_index, created_at és updated_at. A Queuety::workflow_artifacts() nem tartalmazza a content értékét, kivéve ha második argumentumként átadod neki a true értéket.

Munkafolyamat-állapot integrációja

A Queuety::workflow_status() most már tartalmaz egy rövid artefaktum-összefoglalót:

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

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

Így az artefaktumok láthatók maradnak anélkül, hogy teljes tartalmuk bekerülne az állapotkimenetbe.

CLI

Artefaktumok listázása egy munkafolyamathoz:

Shell
wp queuety workflow artifacts 42

Egy artefaktum megjelenítése a tartalmával együtt:

Shell
wp queuety workflow artifact 42 draft

A teljes parancsreferenciát lásd itt: CLI.

Exportálás és visszajátszás

Az artefaktumok bekerülnek a munkafolyamat-exportokba, és átkerülnek a visszajátszott munkafolyamatokba is.

Ez azt jelenti, hogy az artefaktumokra támaszkodó ügynökfuttatások akkor is vizsgálhatók maradnak, ha áthelyezed őket más környezetekbe, vagy az exportált végrehajtási előzményekből újra létrehozol egy futtatást.