Saltar al contenido

Artefactos

Los artefactos permiten guardar resultados duraderos del flujo de trabajo sin aumentar la carga útil del estado principal.

Son adecuados para documentos en borrador, planes JSON extraídos, citas, manifiestos de fuentes, rutas de archivos generados o capturas de solicitudes y respuestas que quiera inspeccionar más adelante. Esto resulta especialmente útil en los flujos de trabajo de agentes, donde el estado final debe seguir siendo pequeño y legible aunque cada ejecución pueda generar grandes resultados intermedios.

Por qué usar artefactos en lugar del estado del flujo de trabajo

El estado del flujo de trabajo es ideal para los pequeños datos públicos que el siguiente paso necesita de inmediato.

Los artefactos son mejores cuando el resultado es más grande que los valores de estado habituales, se necesita principalmente para inspeccionarlo más adelante, resulta útil en las vistas de revisión o exportación, o simplemente se representa mejor como un resultado con nombre que como un único bloque grande de estado.

Guardar un artefacto para el paso actual del flujo de trabajo

Si el código ya se está ejecutando dentro de un paso del flujo de trabajo, use 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 adjunta automáticamente el ID del flujo de trabajo actual y el índice del paso.

Guardar un artefacto desde fuera del flujo de trabajo

Si ya conoce el ID del flujo de trabajo, use Queuety::put_artifact():

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

Leer artefactos

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

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

Cada registro de artefacto incluye los campos key, kind, content, metadata, step_index, created_at y updated_at. Queuety::workflow_artifacts() omite content, salvo que se pase true como segundo argumento.

Integración con el estado del flujo de trabajo

Queuety::workflow_status() ahora incluye un pequeño resumen de artefactos:

PHP
$status = Queuety::workflow_status( $workflow_id );

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

Así, los artefactos quedan visibles sin incluir todo su contenido en la salida del estado.

CLI

Enumere los artefactos de un flujo de trabajo:

Shell
wp queuety workflow artifacts 42

Muestre un artefacto con su contenido:

Shell
wp queuety workflow artifact 42 draft

Consulte CLI para ver la referencia completa de comandos.

Exportaciones y reproducción

Los artefactos se incluyen en las exportaciones de flujos de trabajo y se copian en los flujos reproducidos.

Esto permite inspeccionar las ejecuciones de agentes basadas en artefactos incluso al trasladarlas entre entornos o recrear una ejecución a partir de su historial de ejecución exportado.