
# 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:

```bash
wp queuety workflow artifacts 42
```

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

```bash
wp queuety workflow artifact 42 draft
```

A teljes parancsreferenciát lásd itt: [CLI](https://queuety.inline0.dev/hu/docs/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.
