
# Artefakte

Mit Artefakten kannst du dauerhafte Workflow-Ausgaben speichern, ohne den zentralen Workflow-Zustand aufzublähen.

Sie eignen sich für Entwurfsdokumente, extrahierte JSON-Pläne, Zitate, Quellenmanifeste, generierte Dateipfade oder Momentaufnahmen von Prompts und Antworten, die du später prüfen möchtest. Das ist besonders nützlich für Agenten-Workflows: Der endgültige Zustand bleibt klein und übersichtlich, auch wenn jeder Lauf umfangreiche Zwischenergebnisse erzeugt.

## Warum Artefakte statt Workflow-Zustand verwenden

Der Workflow-Zustand eignet sich ideal für kleine öffentliche Daten, die der nächste Schritt sofort benötigt.

Artefakte eignen sich besser, wenn die Ausgabe größer als übliche Zustandswerte ist, hauptsächlich später geprüft werden soll, für Prüfungs- oder Exportansichten nützlich ist oder sich als benannte Ausgabe besser eignet als als einzelner großer Zustandsblock.

## Ein Artefakt für den aktuellen Workflow-Schritt speichern

Wenn Code bereits innerhalb eines Workflow-Schritts ausgeführt wird, verwende `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 fügt automatisch die aktuelle Workflow-ID und den Schrittindex hinzu.

## Ein Artefakt außerhalb des Workflows speichern

Wenn du die Workflow-ID bereits kennst, verwende `Queuety::put_artifact()`:

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

## Artefakte wieder auslesen

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

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

Jeder Artefakteintrag enthält die Felder `key`, `kind`, `content`, `metadata`, `step_index`, `created_at` und `updated_at`. `Queuety::workflow_artifacts()` lässt `content` weg, sofern du `true` nicht als zweites Argument übergibst.

## Integration des Workflow-Status

`Queuety::workflow_status()` enthält jetzt eine kurze Artefaktübersicht:

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

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

So bleiben Artefakte sichtbar, ohne dass ihr vollständiger Inhalt in der Statusausgabe erscheint.

## CLI

Artefakte für einen Workflow auflisten:

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

Ein Artefakt mit Inhalt anzeigen:

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

Unter [CLI](https://queuety.inline0.dev/de/docs/cli) findest du die vollständige Befehlsreferenz.

## Exporte und Wiedergabe

Artefakte sind in Workflow-Exporten enthalten und werden in wiedergegebene Workflows kopiert.

So lassen sich agentengesteuerte Ausführungen mit Artefakten auch dann überprüfen, wenn du sie zwischen Umgebungen verschiebst oder anhand ihres exportierten Ausführungsverlaufs erneut erstellst.
