Archive: System v4 - Estado al 2024-12-24
This commit is contained in:
337
v4-archive/contratos-comunes/docs/FACTORY_PROTOCOL_v1.0.md
Normal file
337
v4-archive/contratos-comunes/docs/FACTORY_PROTOCOL_v1.0.md
Normal file
@@ -0,0 +1,337 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user