# THE FACTORY Protocol v1.0 > Protocolo de Generación Iterativa con Director y Auditores ## 1. Visión General THE FACTORY es el sistema de generación iterativa del ecosistema TZZR. Implementa un ciclo de mejora continua donde un **Director** coordina la generación, un **Executor** produce artefactos, un **Evaluator** evalúa la calidad, y un **Auditor** registra todo para trazabilidad. ``` ┌─────────────────────────────────────────────────────────────┐ │ THE FACTORY │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ DIRECTOR │───▶│ EXECUTOR │───▶│ EVALUATOR│ │ │ │ (decide) │◀───│(genera) │◀───│ (evalúa) │ │ │ └────┬─────┘ └──────────┘ └──────────┘ │ │ │ │ │ ▼ │ │ ┌──────────┐ │ │ │ AUDITOR │ ──▶ SENTINEL │ │ │(registra)│ │ │ └──────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## 2. Componentes ### 2.1 DIRECTOR El Director es el cerebro de THE FACTORY. Sus responsabilidades: - **Recibir jobs** de ALFRED (DECK) o CLARA (CORP) - **Seleccionar modelos** apropiados para cada tarea - **Decidir convergencia** basándose en confianza y mejora marginal - **Gestionar presupuesto** y límites de iteraciones - **Coordinar** el flujo entre Executor y Evaluator ```javascript // Decisión de convergencia const decision = director.decideConvergence(job, evaluation); // Converge si: // - confidence >= 0.85 (umbral configurable) // - mejora < 0.02 con confidence > 0.7 (rendimientos decrecientes) ``` ### 2.2 EXECUTOR El Executor genera artefactos según el tipo de función: | Función | Modelos Disponibles | |---------|---------------------| | TEXT_GENERATION | claude-sonnet, claude-opus, gpt-4, llama-3 | | IMAGE_GENERATION | flux-pro, flux-dev, sdxl, dalle-3 | | CODE_GENERATION | claude-sonnet, claude-opus, gpt-4 | | DOCUMENT_GENERATION | claude-opus, gpt-4 | | AUDIO_GENERATION | elevenlabs, bark, xtts | | VIDEO_GENERATION | runway, pika, stable-video | ### 2.3 EVALUATOR El Evaluator analiza cada artefacto contra el objetivo: ```json { "confidence": 0.82, "strengths": ["Cumple estructura básica", "Lenguaje apropiado"], "weaknesses": ["Falta detalle en sección X"], "feedback": "Mejorar especificidad y añadir ejemplos concretos." } ``` ### 2.4 AUDITOR El Auditor registra cada evento para trazabilidad completa: - `JOB_CREATED` - Inicio del job - `JOB_STARTED` - Ejecución iniciada - `ITERATION_COMPLETED` - Cada iteración - `JOB_COMPLETED` - Finalización ## 3. Estados de Job ``` PENDING ──▶ QUEUED ──▶ RUNNING ──▶ EVALUATING ──┬──▶ CONVERGED │ │ │ │ │ └──▶ EXHAUSTED │ │ └────────────┘ (iteración) ``` | Estado | Descripción | |--------|-------------| | PENDING | Job creado, esperando recursos | | QUEUED | En cola para ejecución | | RUNNING | Executor generando artefacto | | EVALUATING | Evaluator analizando resultado | | CONVERGED | Objetivo alcanzado (confidence >= threshold) | | EXHAUSTED | Límite de iteraciones o presupuesto alcanzado | | FAILED | Error irrecuperable | | CANCELLED | Cancelado por usuario | ## 4. Estructura del Job ### 4.1 Request (S-CONTRACT compatible) ```json { "seed": "Genera un plan de entrenamiento PPL de 4 semanas...", "objective": "Plan estructurado con progresión semanal y ejercicios específicos", "function": "TEXT_GENERATION", "limits": { "max_cycles": 5, "budget_usd": 1.0, "timeout_ms": 120000 }, "input_refs": ["locker://deck/fitness/datos.json"], "output_format": "markdown", "tags": ["deck", "fitness", "plan"], "metadata": { "source": "ALFRED", "project_id": 123 } } ``` ### 4.2 Response ```json { "job_id": "fac-abc123-xyz789", "state": "CONVERGED", "total_iterations": 3, "total_cost_usd": 0.47, "final_artifact_ref": "locker://factory/artifacts/abc123.md", "final_confidence": 0.89, "convergence_reason": "confidence_threshold_met", "iterations": [ { "number": 1, "confidence": 0.72, "feedback": "Añadir más detalle en ejercicios" }, { "number": 2, "confidence": 0.81, "feedback": "Mejorar progresión de pesos" }, { "number": 3, "confidence": 0.89, "feedback": null } ] } ``` ## 5. Integración con ALFRED y CLARA ### 5.1 ALFRED (DECK - Lite) ALFRED usa THE FACTORY para generación de contenido personal: ```javascript // alfred.js const result = await factory.submitJob({ seed: "Genera plan de entrenamiento para perder peso", objective: "Plan PPL estructurado con progresión", function: "TEXT_GENERATION", tags: ["deck", "fitness"], limits: { max_cycles: 4, budget_usd: 0.3 } }); ``` ### 5.2 CLARA (CORP - Full) CLARA usa THE FACTORY para documentos certificados: ```javascript // clara.js const result = await factory.submitJob({ seed: "Genera factura profesional para pedido ORD-2025-001", objective: "Factura PDF con todos los datos fiscales", function: "DOCUMENT_GENERATION", tags: ["corp", "factura"], limits: { max_cycles: 3, budget_usd: 0.5 } }); // CLARA añade certificación con NOTARIO const certified = await notario.certify(result); ``` ## 6. Flujo de Iteración ``` ┌─────────────────────────────────────┐ │ ITERACIÓN N │ └─────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 1. DIRECTOR prepara seed + feedback de iteración N-1 │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 2. EXECUTOR genera artefacto con modelo seleccionado │ │ - Calcula hash del artefacto │ │ - Guarda en LOCKER │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 3. EVALUATOR evalúa artefacto vs objetivo │ │ - confidence: 0.0 - 1.0 │ │ - strengths: [] │ │ - weaknesses: [] │ │ - feedback: "..." │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 4. AUDITOR registra iteración en SENTINEL │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 5. DIRECTOR decide: │ │ - confidence >= 0.85 → CONVERGED │ │ - cost >= budget → EXHAUSTED │ │ - iteration >= max → EXHAUSTED │ │ - else → ITERAR (volver a paso 1) │ └─────────────────────────────────────────────────────────────┘ ``` ## 7. Costes y Límites ### 7.1 Costes por Modelo (estimados) | Modelo | Coste por 1K tokens | |--------|---------------------| | claude-sonnet | $0.003 | | claude-opus | $0.015 | | gpt-4 | $0.01 | | flux-pro | $0.05/imagen | | flux-dev | $0.02/imagen | ### 7.2 Límites por Defecto ```javascript const DEFAULT_LIMITS = { max_cycles: 5, // Máximo de iteraciones budget_usd: 1.0, // Presupuesto máximo timeout_ms: 120000, // 2 minutos por iteración convergence_threshold: 0.85 // Umbral de convergencia }; ``` ## 8. Despliegue en RUNPOD THE FACTORY se despliega como un Serverless Endpoint en RUNPOD: ```yaml # runpod-deployment.yaml endpoint: name: the-factory gpu: RTX-A4000 # Para generación de imágenes workers: min: 0 max: 3 timeout: 300 env: - ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY} - LOCKER_API_KEY: ${LOCKER_API_KEY} - SENTINEL_URL: https://sentinel.tzzr.net ``` ## 9. API Reference ### POST /jobs Crear nuevo job de generación. **Request:** ```json { "seed": "string", "objective": "string", "function": "TEXT_GENERATION | IMAGE_GENERATION | ...", "limits": { "max_cycles": 5, "budget_usd": 1.0 }, "tags": ["string"] } ``` **Response:** ```json { "job_id": "string", "state": "PENDING" } ``` ### GET /jobs/{job_id} Obtener estado de job. **Response:** ```json { "job_id": "string", "state": "RUNNING | CONVERGED | ...", "current_iteration": 2, "total_cost_usd": 0.15 } ``` ### GET /jobs/{job_id}/result Obtener resultado completo. **Response:** Job completo con todas las iteraciones. ### DELETE /jobs/{job_id} Cancelar job en ejecución. ## 10. Changelog ### v1.0 (2025-01-10) - Versión inicial del protocolo - Componentes: Director, Executor, Evaluator, Auditor - Integración con ALFRED y CLARA - Soporte para TEXT, IMAGE, CODE, DOCUMENT generation --- *Este documento es parte del sistema S-CONTRACT v2.1*