
# Τεχνουργήματα

Τα τεχνουργήματα σάς επιτρέπουν να αποθηκεύετε μόνιμα αποτελέσματα ροών εργασιών χωρίς να διογκώνετε το payload της κύριας κατάστασης της ροής εργασιών.

Είναι κατάλληλα για πρόχειρα έγγραφα, εξαγόμενα σχέδια JSON, παραπομπές, αρχεία καταγραφής πηγών, διαδρομές αρχείων που δημιουργήθηκαν ή στιγμιότυπα προτροπών και απαντήσεων που θέλετε να εξετάσετε αργότερα. Είναι ιδιαίτερα χρήσιμα για ροές εργασιών agent, όπου η τελική κατάσταση πρέπει να παραμένει μικρή και ευανάγνωστη, παρόλο που κάθε εκτέλεση μπορεί να παράγει μεγάλα ενδιάμεσα αποτελέσματα.

## Γιατί τεχνουργήματα αντί για κατάσταση ροής εργασιών

Η κατάσταση ροής εργασιών είναι ιδανική για τα μικρά δημόσια δεδομένα που χρειάζεται αμέσως το επόμενο βήμα.

Τα τεχνουργήματα είναι καλύτερα όταν το αποτέλεσμα είναι μεγαλύτερο από τις συνηθισμένες τιμές κατάστασης, προορίζεται κυρίως για μεταγενέστερη εξέταση, είναι χρήσιμο σε περιβάλλοντα ελέγχου ή εξαγωγής ή μοντελοποιείται καλύτερα ως επώνυμο αποτέλεσμα παρά ως ένα μεγάλο blob κατάστασης.

## Αποθήκευση τεχνουργήματος για το τρέχον βήμα ροής εργασιών

Όταν ο κώδικας εκτελείται ήδη μέσα σε ένα βήμα ροής εργασιών, χρησιμοποιήστε το `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 επισυνάπτει αυτόματα το τρέχον ID ροής εργασιών και τον δείκτη βήματος.

## Αποθήκευση τεχνουργήματος έξω από τη ροή εργασιών

Αν γνωρίζετε ήδη το ID ροής εργασιών, χρησιμοποιήστε το `Queuety::put_artifact()`:

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

## Ανάγνωση τεχνουργημάτων

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

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

Κάθε εγγραφή τεχνουργήματος περιλαμβάνει τα πεδία `key`, `kind`, `content`, `metadata`, `step_index`, `created_at` και `updated_at`. Το `Queuety::workflow_artifacts()` παραλείπει το `content`, εκτός αν περάσετε το `true` ως δεύτερο όρισμά του.

## Ενσωμάτωση με την κατάσταση ροής εργασιών

Το `Queuety::workflow_status()` περιλαμβάνει πλέον μια σύντομη σύνοψη τεχνουργημάτων:

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

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

Έτσι τα τεχνουργήματα παραμένουν ορατά χωρίς να περιλαμβάνεται όλο το περιεχόμενό τους στην έξοδο κατάστασης.

## CLI

Παραθέστε τα τεχνουργήματα μιας ροής εργασιών:

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

Εμφανίστε ένα τεχνούργημα μαζί με το περιεχόμενό του:

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

Δείτε το [CLI](https://queuety.inline0.dev/el/docs/cli) για την πλήρη αναφορά εντολών.

## Εξαγωγή και επανάληψη εκτέλεσης

Τα τεχνουργήματα περιλαμβάνονται στις εξαγωγές ροών εργασιών και αντιγράφονται στις ροές εργασιών που αναπαράγονται.

Έτσι οι εκτελέσεις agent που βασίζονται σε τεχνουργήματα παραμένουν επιθεωρήσιμες ακόμη και όταν τις μεταφέρετε μεταξύ περιβαλλόντων ή αναδημιουργείτε μια εκτέλεση από το εξαγμένο ιστορικό εκτέλεσής της.
