
# Artefaktai

Artefaktai leidžia saugoti patvarius darbo eigos rezultatus nedidinant pagrindinio darbo eigos būsenos naudingojo turinio.

Jie tinka juodraščių dokumentams, išgautiems JSON planams, citatoms, šaltinių manifestams, sugeneruotų failų keliams ar raginimų ir atsakymų momentinėms kopijoms, kurias norite peržiūrėti vėliau. Tai ypač naudinga agentų darbo eigose: galutinė būsena išlieka nedidelė ir lengvai skaitoma, nors kiekvieno vykdymo metu gali būti sukurta daug tarpinių rezultatų.

## Kodėl verta rinktis artefaktus, o ne darbo eigos būseną

Darbo eigos būsena labiausiai tinka nedideliems viešiems duomenims, kurių kitam žingsniui reikia iš karto.

Artefaktai geriau tinka, kai rezultatas didesnis nei įprastos būsenos reikšmės, daugiausia skirtas vėlesnei peržiūrai, praverčia peržiūros ar eksporto vietose arba jį geriau modeliuoti kaip pavadintą rezultatą, o ne vieną didelį būsenos objektą.

## Artefakto saugojimas dabartiniam darbo eigos žingsniui

Kai kodas jau vykdomas darbo eigos žingsnyje, naudokite `Queuety::put_current_artifact()`:

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

Queuety automatiškai priskiria dabartinį darbo eigos ID ir žingsnio indeksą.

## Artefakto saugojimas už darbo eigos ribų

Jei jau žinote darbo eigos ID, naudokite `Queuety::put_artifact()`:

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

## Artefaktų skaitymas

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

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

Kiekviename artefakto įraše yra laukai `key`, `kind`, `content`, `metadata`, `step_index`, `created_at` ir `updated_at`. `Queuety::workflow_artifacts()` `content` neįtraukia, nebent kaip antrą argumentą perduosite `true`.

## Integravimas su darbo eigos būsena

`Queuety::workflow_status()` dabar pateikia trumpą artefaktų suvestinę:

```php
$status = Queuety::workflow_status( $workflow_id );

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

Taip artefaktai matomi, bet visas jų turinys neįtraukiamas į būsenos išvestį.

## CLI

Išvardykite darbo eigos artefaktus:

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

Parodykite vieną artefaktą su turiniu:

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

Visą komandų nuorodą rasite čia: [CLI](https://queuety.inline0.dev/lt/docs/cli).

## Eksportavimas ir pakartotinis vykdymas

Artefaktai įtraukiami į darbo eigos eksportus ir nukopijuojami į pakartotinai vykdomas darbo eigas.

Taigi agentų vykdymai, kuriuose naudojami artefaktai, lieka patikrinami perkėlus juos į kitą aplinką arba atkūrus vykdymą iš eksportuotos vykdymo istorijos.
