
# Artefakter

Med artefakter kan du spara beständiga arbetsflödesresultat utan att göra arbetsflödets huvudsakliga tillståndsnyttolast större.

De passar bra för utkast till dokument, extraherade JSON-planer, citat, källmanifest, genererade filsökvägar eller ögonblicksbilder av prompter och svar som du vill granska senare. Det är särskilt användbart för agentarbetsflöden, där sluttillståndet ska förbli litet och lättläst även om varje körning kan generera stora mellanresultat.

## Varför artefakter i stället för arbetsflödestillstånd

Arbetsflödestillstånd passar bäst för små offentliga data som nästa steg behöver omedelbart.

Artefakter är bättre när resultatet är större än vanliga tillståndsvärden, främst ska granskas senare, är användbart i gransknings- eller exportvyer eller helt enkelt passar bättre som ett namngivet resultat än som ett enda stort tillståndsobjekt.

## Spara en artefakt för det aktuella arbetsflödessteget

När kod redan körs inuti ett arbetsflödessteg använder du `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 kopplar automatiskt till det aktuella arbetsflödes-ID:t och stegets index.

## Spara en artefakt utanför arbetsflödet

Om du redan känner till arbetsflödes-ID:t använder du `Queuety::put_artifact()`:

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

## Läs artefakter

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

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

Varje artefaktpost innehåller fälten `key`, `kind`, `content`, `metadata`, `step_index`, `created_at` och `updated_at`. `Queuety::workflow_artifacts()` utelämnar `content` om du inte skickar med `true` som dess andra argument.

## Integration med arbetsflödesstatus

`Queuety::workflow_status()` innehåller nu en kort artefaktsammanfattning:

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

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

Då visas artefakter utan att hela innehållet tas med i statusutdata.

## CLI

Lista artefakter för ett arbetsflöde:

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

Visa en artefakt med innehåll:

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

Se [CLI](https://queuety.inline0.dev/sv/docs/cli) för den fullständiga kommandoreferensen.

## Export och återspelning

Artefakter ingår i arbetsflödesexporter och kopieras till arbetsflöden som spelas upp på nytt.

Det innebär att agentkörningar med artefakter förblir möjliga att granska även när du flyttar dem mellan miljöer eller återskapar en körning från dess exporterade körningshistorik.
