Update to Skynet v7 - Complete documentation restructure
- Nueva estructura de carpetas según Skynet v7 - Añadidos schemas SQL completos - Documentación de entidades, componentes e integraciones - Modelo de seguridad actualizado - Infraestructura y operaciones reorganizadas
This commit is contained in:
106
02_COMPONENTES/internos/administracion.md
Normal file
106
02_COMPONENTES/internos/administracion.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Administración
|
||||
|
||||
**Nombre:** Mason
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Tabla de trabajo temporal donde se enriquece, procesa y consolida la información antes de su registro definitivo.
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | Editable |
|
||||
| Persistencia | **Temporal** |
|
||||
| Eliminación | Siempre se elimina tras consolidar |
|
||||
|
||||
---
|
||||
|
||||
## Función
|
||||
|
||||
```
|
||||
Secretaría (entrada)
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Administración │
|
||||
│ Mason │
|
||||
├─────────────────┤
|
||||
│ • Enriquecer │
|
||||
│ • Validar │
|
||||
│ • Completar │
|
||||
│ • Corregir │
|
||||
└────────┬────────┘
|
||||
│
|
||||
▼
|
||||
Contable (Feldman)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ventana Flotante
|
||||
|
||||
| Parámetro | Valor |
|
||||
|-----------|-------|
|
||||
| Duración | 24 horas |
|
||||
| Durante | Modificable |
|
||||
| Después | Pasa a Feldman automáticamente |
|
||||
|
||||
---
|
||||
|
||||
## Operaciones Permitidas
|
||||
|
||||
| Operación | Permitido |
|
||||
|-----------|-----------|
|
||||
| Editar campos | ✓ |
|
||||
| Añadir datos | ✓ |
|
||||
| Corregir errores | ✓ |
|
||||
| Eliminar registro | ✗ (solo consolidar) |
|
||||
| Modificar h_entrada | ✗ |
|
||||
|
||||
---
|
||||
|
||||
## Referencia a Origen
|
||||
|
||||
Mason siempre mantiene referencia al registro original en Secretaría:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": 123,
|
||||
"h_entrada_origen": "abc123...",
|
||||
"datos_enriquecidos": { ... },
|
||||
"estado": "en_edicion"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Estados
|
||||
|
||||
| Estado | Descripción |
|
||||
|--------|-------------|
|
||||
| **en_edicion** | Usuario trabajando |
|
||||
| **listo** | Preparado para consolidar |
|
||||
| **consolidado** | Ya pasó a Feldman |
|
||||
|
||||
---
|
||||
|
||||
## Schema
|
||||
|
||||
```sql
|
||||
CREATE TABLE mason_temporal (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_entrada_origen VARCHAR(64) NOT NULL,
|
||||
datos JSONB NOT NULL,
|
||||
estado VARCHAR(20) DEFAULT 'en_edicion',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
expires_at TIMESTAMPTZ,
|
||||
modified_at TIMESTAMPTZ,
|
||||
modified_by VARCHAR(64)
|
||||
);
|
||||
```
|
||||
204
02_COMPONENTES/internos/auditoria.md
Normal file
204
02_COMPONENTES/internos/auditoria.md
Normal file
@@ -0,0 +1,204 @@
|
||||
# Auditoría
|
||||
|
||||
**Nombre:** Sentinel
|
||||
**Estado:** Planificado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Sistema de auditoría automatizada con estrategia dual: LIGHT (rápido, exhaustivo) y DEEP (selectivo, profundo).
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PRINCIPIO SENTINEL │
|
||||
│ │
|
||||
│ "Confía, pero verifica. Verifica todo, siempre, sin excepción" │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Filosofía Dual
|
||||
|
||||
| Aspecto | SENTINEL-LIGHT | SENTINEL-DEEP |
|
||||
|---------|----------------|---------------|
|
||||
| Analogía | Guardia de seguridad | Detective investigador |
|
||||
| Enfoque | Exhaustivo, superficial | Selectivo, profundo |
|
||||
| Motor | Reglas + ML ligero | LLM pesado |
|
||||
| Frecuencia | Cada 5 min | Cada hora |
|
||||
| Costo | Mínimo | Variable |
|
||||
|
||||
---
|
||||
|
||||
## SENTINEL-LIGHT
|
||||
|
||||
### Arquitectura
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SENTINEL-LIGHT │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ RULES │ │ STATS │ │ ALERTS │ │
|
||||
│ │ ENGINE │───▶│ COLLECTOR │───▶│ DISPATCHER │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┤
|
||||
│ │ SYS_LOG (Source) │
|
||||
│ └─────────────────────────────────────────────────────────────┤
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┤
|
||||
│ │ AUDIT_RESULTS (Sink) │
|
||||
│ └─────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Ciclo de Ejecución (cada 5 min)
|
||||
|
||||
```
|
||||
1. QUERY
|
||||
SELECT * FROM SYS_LOG
|
||||
WHERE audit_status = 'PENDING'
|
||||
AND timestamp_created > NOW() - INTERVAL '10 minutes'
|
||||
LIMIT 1000
|
||||
|
||||
2. APPLY RULES
|
||||
Para cada registro:
|
||||
- Ejecutar reglas de integridad
|
||||
- Ejecutar reglas de conformidad
|
||||
- Ejecutar reglas de rendimiento
|
||||
|
||||
3. CLASSIFY
|
||||
- PASS: Todas las reglas OK
|
||||
- WARN: Reglas MEDIUM fallaron
|
||||
- FAIL: Reglas HIGH/CRITICAL fallaron
|
||||
|
||||
4. UPDATE & ESCALATE
|
||||
- UPDATE SYS_LOG SET audit_status
|
||||
- INSERT AUDIT_RESULTS
|
||||
- Si FAIL → marcar para DEEP
|
||||
- Si CRITICAL → alerta inmediata
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Reglas de Integridad (I-*)
|
||||
|
||||
| Regla | Nombre | Severidad | Condición |
|
||||
|-------|--------|-----------|-----------|
|
||||
| I-001 | Hash entrada coincide | CRITICAL | input_hash == SHA256(archivo) |
|
||||
| I-002 | Hash salida coincide | CRITICAL | output_hash == SHA256(archivo) |
|
||||
| I-003 | Cadena trazas válida | HIGH | parent_trace_id existe o es null |
|
||||
| I-004 | Referencias no huérfanas | HIGH | input_ref y output_ref existen |
|
||||
| I-005 | Idempotency key única | MEDIUM | No duplicados con distinto resultado |
|
||||
|
||||
---
|
||||
|
||||
## Reglas de Conformidad (C-*)
|
||||
|
||||
| Regla | Nombre | Severidad | Condición |
|
||||
|-------|--------|-----------|-----------|
|
||||
| C-001 | Campos obligatorios | HIGH | Todos los campos requeridos presentes |
|
||||
| C-002 | Status code válido | HIGH | status_code en lista permitida |
|
||||
| C-003 | Step type válido | HIGH | step_type en lista permitida |
|
||||
| C-004 | Confidence en rango | MEDIUM | 0 <= confidence <= 1 |
|
||||
| C-005 | Timestamps coherentes | MEDIUM | completed >= started >= created |
|
||||
|
||||
---
|
||||
|
||||
## Reglas de Rendimiento (P-*)
|
||||
|
||||
| Regla | Nombre | Severidad | Condición |
|
||||
|-------|--------|-----------|-----------|
|
||||
| P-001 | Latencia aceptable | MEDIUM | duration_ms <= expected * 2 |
|
||||
| P-002 | Costo razonable | MEDIUM | cost_units <= max_expected |
|
||||
| P-003 | Sin reintentos excesivos | LOW | retries <= 3 |
|
||||
|
||||
---
|
||||
|
||||
## SENTINEL-DEEP
|
||||
|
||||
### Cuándo se Activa
|
||||
|
||||
- Regla CRITICAL falló en LIGHT
|
||||
- Muestreo aleatorio (5% de registros PASS)
|
||||
- Petición manual de auditoría
|
||||
|
||||
### Qué Hace
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SENTINEL-DEEP │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 1. Obtener contexto completo del registro │
|
||||
│ 2. Recuperar archivos de input_ref y output_ref │
|
||||
│ 3. Analizar con LLM: │
|
||||
│ - ¿El output es coherente con el input? │
|
||||
│ - ¿Hay anomalías semánticas? │
|
||||
│ - ¿La confianza reportada es realista? │
|
||||
│ 4. Generar informe detallado │
|
||||
│ 5. Si anomalía → alerta + bloqueo │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Niveles de Severidad
|
||||
|
||||
| Nivel | Acción | Alerta |
|
||||
|-------|--------|--------|
|
||||
| **CRITICAL** | Escalado inmediato + DEEP | Inmediata |
|
||||
| **HIGH** | Log error + revisar | Batch (cada hora) |
|
||||
| **MEDIUM** | Log warning | Batch (diario) |
|
||||
| **LOW** | Log info | Ninguna |
|
||||
|
||||
---
|
||||
|
||||
## Schema SQL
|
||||
|
||||
```sql
|
||||
CREATE TABLE audit_results (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
batch_id UUID NOT NULL,
|
||||
audit_type VARCHAR(10) NOT NULL, -- 'LIGHT' o 'DEEP'
|
||||
records_checked INTEGER NOT NULL,
|
||||
records_pass INTEGER NOT NULL,
|
||||
records_warn INTEGER NOT NULL,
|
||||
records_fail INTEGER NOT NULL,
|
||||
rules_triggered JSONB,
|
||||
started_at TIMESTAMPTZ NOT NULL,
|
||||
completed_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- Índice para búsqueda por fecha
|
||||
CREATE INDEX idx_audit_results_created ON audit_results(created_at);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Métricas
|
||||
|
||||
| Métrica | Descripción | Umbral |
|
||||
|---------|-------------|--------|
|
||||
| pass_rate | % registros que pasan | > 99% |
|
||||
| avg_latency_ms | Latencia promedio | < 100ms |
|
||||
| escalation_rate | % escalados a DEEP | < 1% |
|
||||
| alert_rate | Alertas por hora | < 5 |
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
- [ ] Implementación scheduler LIGHT (cada 5 min)
|
||||
- [ ] Implementación scheduler DEEP (cada hora)
|
||||
- [ ] Dashboard de estado
|
||||
- [ ] Sistema de alertas (ntfy)
|
||||
- [ ] Integración con Feldman para verificar cadena de bloques
|
||||
122
02_COMPONENTES/internos/contable.md
Normal file
122
02_COMPONENTES/internos/contable.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Contable
|
||||
|
||||
**Nombre:** Feldman
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Registro final definitivo e inmutable. Representa el estado válido y oficial de cada operación. Aplica principios contables de inmutabilidad.
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | **Inmutable** |
|
||||
| Persistencia | Permanente |
|
||||
| Eliminación | Prohibida bajo ningún concepto |
|
||||
|
||||
---
|
||||
|
||||
## Estructura Interna
|
||||
|
||||
Feldman es una **unidad conceptual** que contiene dos tablas:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ FELDMAN │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────┐ ┌─────────────────────┐ │
|
||||
│ │ Cola de Validación │ → │ Registro Final │ │
|
||||
│ │ (espera bloques) │ │ (inmutable) │ │
|
||||
│ └─────────────────────┘ └─────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Aclaración:** La división es **técnica** (tiempo entre validaciones), no conceptual.
|
||||
|
||||
---
|
||||
|
||||
## Validación por Bloques
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Frecuencia | Periódica |
|
||||
| Tipo | Por bloques, no transacción a transacción |
|
||||
| Reglas | M-001, M-002, M-003 |
|
||||
|
||||
### Reglas de Validación
|
||||
|
||||
| Regla | Nombre | Descripción |
|
||||
|-------|--------|-------------|
|
||||
| M-001 | Hash único | h_bloque/h_milestone no existe previamente |
|
||||
| M-002 | Encadenamiento | hash_previo apunta a bloque existente |
|
||||
| M-003 | Integridad | hash_contenido = SHA-256(contenido) |
|
||||
|
||||
---
|
||||
|
||||
## Encadenamiento
|
||||
|
||||
```
|
||||
Bloque N-1 Bloque N
|
||||
┌──────────────────┐ ┌──────────────────┐
|
||||
│ h_bloque: abc123 │ ──────► │ hash_previo: │
|
||||
│ hash_contenido: │ │ abc123 │
|
||||
│ def456 │ │ h_bloque: ghi789 │
|
||||
│ secuencia: 1 │ │ secuencia: 2 │
|
||||
└──────────────────┘ └──────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schema Cola
|
||||
|
||||
```sql
|
||||
CREATE TABLE feldman_cola (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
tipo VARCHAR(50) NOT NULL,
|
||||
h_entrada VARCHAR(64) NOT NULL,
|
||||
contenido JSONB NOT NULL,
|
||||
prioridad INTEGER DEFAULT 0,
|
||||
estado VARCHAR(20) DEFAULT 'pendiente',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
processed_at TIMESTAMPTZ
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schema Registro Final
|
||||
|
||||
```sql
|
||||
CREATE TABLE bloques (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_bloque VARCHAR(64) UNIQUE NOT NULL,
|
||||
h_instancia VARCHAR(64) NOT NULL,
|
||||
secuencia BIGINT NOT NULL,
|
||||
hash_previo VARCHAR(64),
|
||||
hash_contenido VARCHAR(64) NOT NULL,
|
||||
tipo_bloque VARCHAR(50) NOT NULL,
|
||||
contenido JSONB NOT NULL,
|
||||
metadata JSONB,
|
||||
estado VARCHAR(20) DEFAULT 'consolidado',
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
validated_at TIMESTAMPTZ,
|
||||
UNIQUE (h_instancia, secuencia)
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Trazabilidad
|
||||
|
||||
Cualquier registro en Feldman puede rastrearse hasta Secretaría:
|
||||
|
||||
```
|
||||
Bloque (Feldman) → h_entrada → Secretaría (Clara/Margaret)
|
||||
```
|
||||
150
02_COMPONENTES/internos/context-system.md
Normal file
150
02_COMPONENTES/internos/context-system.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# Context System
|
||||
|
||||
**Versión:** 0.1
|
||||
**Estado:** Especificación inicial
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Herramienta local para gestionar el contexto de trabajo con modelos de IA. Funciona de forma idéntica en cualquier servidor. No depende de servicios externos.
|
||||
|
||||
---
|
||||
|
||||
## Principios
|
||||
|
||||
1. **Local first** - Todo funciona sin conexión a servicios externos
|
||||
2. **Inmutabilidad del log** - El historial nunca se modifica
|
||||
3. **Control del usuario** - El usuario decide qué contexto envía
|
||||
4. **Independencia** - Cada componente funciona por separado
|
||||
5. **Portabilidad** - La misma herramienta en cualquier servidor
|
||||
|
||||
---
|
||||
|
||||
## Componentes
|
||||
|
||||
### 1. Log Inmutable
|
||||
|
||||
Registro de TODOS los mensajes de conversaciones con IA.
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | NO |
|
||||
| Borrable | NO |
|
||||
| Ubicación | Local (PostgreSQL) |
|
||||
|
||||
**Contenido:**
|
||||
- Cada mensaje enviado a la IA
|
||||
- Cada respuesta recibida
|
||||
- Timestamp
|
||||
- Identificador de sesión
|
||||
|
||||
### 2. Gestor de Contexto
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | Sí |
|
||||
| Borrable | Sí |
|
||||
| Ubicación | Local |
|
||||
|
||||
**Contenido:**
|
||||
- Bloques de contexto reutilizables
|
||||
- Configuración de qué se incluye en cada sesión
|
||||
- Prioridades y orden
|
||||
|
||||
### 3. Dataset del Usuario
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | Sí |
|
||||
| Borrable | Sí |
|
||||
| Ubicación | Local |
|
||||
|
||||
**Contenido:**
|
||||
- Referencias a archivos, documentos, datos
|
||||
- Metadatos para búsqueda y acceso
|
||||
- Estructura del espacio de trabajo
|
||||
|
||||
### 4. Buzón de Entrada
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Editable | Según implementación |
|
||||
| Ubicación | Local |
|
||||
|
||||
**Contenido:**
|
||||
- Resultados que el usuario quiere persistir
|
||||
- Datos que entran al sistema
|
||||
- Conexión con almacenamiento externo
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ SERVIDOR (local) │
|
||||
│ │
|
||||
│ ┌─────────────────┐ ┌─────────────────┐ │
|
||||
│ │ 1. LOG │ │ 2. GESTOR │ │
|
||||
│ │ INMUTABLE │ │ DE CONTEXTO │ │
|
||||
│ │ [NO editable] │ │ [Editable] │ │
|
||||
│ └─────────────────┘ └─────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────┐ ┌─────────────────┐ │
|
||||
│ │ 3. DATASET │ │ 4. BUZÓN │ │
|
||||
│ │ DEL USUARIO │ │ DE ENTRADA │ │
|
||||
│ │ [Editable] │ │ [E/S datos] │ │
|
||||
│ └─────────────────┘ └─────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ IA EXTERNA │
|
||||
│ (no en local) │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Módulo Grafo (Kuzu)
|
||||
|
||||
Capa de selección dinámica de contexto. El grafo no almacena datos primarios — es una proyección reconstruible del log.
|
||||
|
||||
```
|
||||
LOG (inmutable) → GRAFO (derivado) → Contexto seleccionado
|
||||
fuente de verdad caché relaciones input para LLM
|
||||
```
|
||||
|
||||
### Tecnología: Kuzu
|
||||
|
||||
| Criterio | Kuzu |
|
||||
|----------|------|
|
||||
| Instalación | `pip install kuzu` |
|
||||
| Dependencias | Ninguna |
|
||||
| Servidor | No requiere |
|
||||
| Persistencia | Carpeta local |
|
||||
| Licencia | MIT |
|
||||
|
||||
### Uso Básico
|
||||
|
||||
```python
|
||||
import kuzu
|
||||
|
||||
db = kuzu.Database("./grafo_contexto")
|
||||
conn = kuzu.Connection(db)
|
||||
|
||||
# Crear esquema
|
||||
conn.execute("CREATE NODE TABLE Mensaje(id INT64, hash STRING, PRIMARY KEY(id))")
|
||||
conn.execute("CREATE NODE TABLE Concepto(nombre STRING, PRIMARY KEY(nombre))")
|
||||
conn.execute("CREATE REL TABLE Menciona(FROM Mensaje TO Concepto)")
|
||||
```
|
||||
|
||||
### Mantenimiento
|
||||
|
||||
| Tarea | Comando |
|
||||
|-------|---------|
|
||||
| Backup | `cp -r ./grafo_contexto ./backup` |
|
||||
| Borrar | `rm -rf ./grafo_contexto` |
|
||||
| Regenerar | Script desde log |
|
||||
106
02_COMPONENTES/internos/produccion.md
Normal file
106
02_COMPONENTES/internos/produccion.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Producción
|
||||
|
||||
**Nombres:** Alfred (personal), Jared (corporativo)
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Almacena flujos y secuencias de procesos predefinidos. Pueden ser complejos (árboles de procesos de producción) o simples (rutinas de entrenamiento).
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | Editable |
|
||||
| Persistencia | Permanente |
|
||||
| Eliminación | Permitida |
|
||||
|
||||
---
|
||||
|
||||
## Función
|
||||
|
||||
- Tiene su propia tabla para definiciones de flujos
|
||||
- La información ya está disponible y ordenada
|
||||
- Permite ejecución directa sin intervención manual
|
||||
- Implementación: Windmill (orquestador de procesos)
|
||||
|
||||
---
|
||||
|
||||
## Alfred vs Jared
|
||||
|
||||
| Aspecto | Alfred | Jared |
|
||||
|---------|--------|-------|
|
||||
| Contexto | Personal (DECK) | Corporativo (CORP) |
|
||||
| Complejidad | Menor | Mayor (múltiples usuarios) |
|
||||
| Flujos | Simples | Complejos |
|
||||
|
||||
---
|
||||
|
||||
## Flujo de Producción
|
||||
|
||||
Cuando la información **encaja** (viene de un proceso predefinido):
|
||||
|
||||
```
|
||||
Alfred/Jared (producción)
|
||||
│
|
||||
▼
|
||||
Clara/Margaret (secretaría) ← Registro inmutable
|
||||
│
|
||||
▼
|
||||
Feldman (contable) ← Consolidación directa
|
||||
```
|
||||
|
||||
**Nota:** Este flujo salta Administración porque no hay nada que enriquecer.
|
||||
|
||||
---
|
||||
|
||||
## Decisión de Flujo
|
||||
|
||||
```
|
||||
┌─────────────────┐
|
||||
│ ¿Encaja? │
|
||||
└────────┬────────┘
|
||||
│
|
||||
┌────┴────┐
|
||||
│ │
|
||||
SÍ NO
|
||||
│ │
|
||||
▼ ▼
|
||||
Feldman Mason
|
||||
(directo) (enriquecer)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Relación con Grace
|
||||
|
||||
```
|
||||
Alfred/Jared (decide) ──► Grace (transforma)
|
||||
```
|
||||
|
||||
- **Producción** decide el flujo
|
||||
- **Grace** transforma los datos
|
||||
|
||||
---
|
||||
|
||||
## Mapeo de Intenciones
|
||||
|
||||
```javascript
|
||||
// Ejemplo de decisiones de Alfred
|
||||
"resumir" → GRACE.SUMMARIZER
|
||||
"transcribir" → GRACE.ASR_ENGINE
|
||||
"generar plan" → PENNY
|
||||
"crear imagen" → FACTORY
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
- [ ] Estructura de la tabla de flujos
|
||||
- [ ] Formato de definición de flujos
|
||||
- [ ] Mecanismo de hashes para "encaja/no encaja"
|
||||
105
02_COMPONENTES/internos/secretaria.md
Normal file
105
02_COMPONENTES/internos/secretaria.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Secretaría
|
||||
|
||||
**Nombres:** Clara (personal), Margaret (corporativo)
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Punto de entrada inmutable del sistema. Todo dato que ingresa queda registrado exactamente como llegó.
|
||||
|
||||
---
|
||||
|
||||
## Principio
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ Todo lo que entra se registra. │
|
||||
│ Nada se modifica. Nada se elimina. │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Característica | Valor |
|
||||
|----------------|-------|
|
||||
| Mutabilidad | **Inmutable** |
|
||||
| Persistencia | Permanente |
|
||||
| Eliminación | Prohibida |
|
||||
|
||||
---
|
||||
|
||||
## Registra
|
||||
|
||||
- Fecha y hora
|
||||
- Origen
|
||||
- Usuario
|
||||
- Contenido
|
||||
- Hash SHA-256 de archivos
|
||||
|
||||
---
|
||||
|
||||
## Clara vs Margaret
|
||||
|
||||
| Aspecto | Clara | Margaret |
|
||||
|---------|-------|----------|
|
||||
| Contexto | Personal (DECK) | Corporativo (CORP) |
|
||||
| Usuarios | Uno | Múltiples |
|
||||
| Tabla recepción | Menor | Mayor |
|
||||
| Funcionalidad | Equivalente | Equivalente |
|
||||
|
||||
---
|
||||
|
||||
## Flujo de Entrada
|
||||
|
||||
```
|
||||
PACKET / API / Manual
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ Secretaría │
|
||||
│ Clara/Margaret │
|
||||
├─────────────────┤
|
||||
│ • Registrar │
|
||||
│ • Hashear │
|
||||
│ • Almacenar │
|
||||
│ • Confirmar │
|
||||
└────────┬────────┘
|
||||
│
|
||||
├──► Producción (si encaja)
|
||||
│
|
||||
└──► Administración (si no encaja)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Schema
|
||||
|
||||
```sql
|
||||
CREATE TABLE secretaria_log (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
h_entrada VARCHAR(64) UNIQUE NOT NULL,
|
||||
ts TIMESTAMPTZ DEFAULT NOW(),
|
||||
origen VARCHAR(100),
|
||||
usuario_id INTEGER,
|
||||
tipo_contenido VARCHAR(50),
|
||||
contenido JSONB,
|
||||
archivos_hashes JSONB,
|
||||
metadata JSONB
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API
|
||||
|
||||
| Endpoint | Método | Descripción |
|
||||
|----------|--------|-------------|
|
||||
| /ingesta | POST | Nueva entrada |
|
||||
| /ingesta/{h_entrada} | GET | Consultar entrada |
|
||||
| /ingesta/verificar | POST | Verificar hash |
|
||||
90
02_COMPONENTES/internos/utilidades.md
Normal file
90
02_COMPONENTES/internos/utilidades.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# Utilidades
|
||||
|
||||
**Estado:** Operativo
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Pack de servicios auxiliares disponibles en cada instancia del sistema.
|
||||
|
||||
---
|
||||
|
||||
## Servicios
|
||||
|
||||
| Servicio | Función | Base |
|
||||
|----------|---------|------|
|
||||
| **Mail** | Correo electrónico | Cowmail |
|
||||
| **Alias** | Gestión de alias de correo | Addy.io |
|
||||
| **Credenciales** | Gestión de credenciales | Vaultwarden |
|
||||
| **Acortador** | Redirección de URLs | Shlink |
|
||||
|
||||
---
|
||||
|
||||
## Puertos por Servidor
|
||||
|
||||
| Servicio | DECK | CORP |
|
||||
|----------|------|------|
|
||||
| Mail | 8084 | 8084 |
|
||||
| Alias | 8085 | 8085 |
|
||||
| Credenciales | 8082 | 8081 |
|
||||
| Acortador | 8083 | 8082 |
|
||||
|
||||
---
|
||||
|
||||
## Mail
|
||||
|
||||
Gestión de correo electrónico.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Cowmail |
|
||||
| Protocolo | SMTP/IMAP |
|
||||
|
||||
---
|
||||
|
||||
## Alias
|
||||
|
||||
Gestión de alias de correo para privacidad y organización.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Addy.io |
|
||||
| Función | Crear alias temporales o permanentes |
|
||||
|
||||
---
|
||||
|
||||
## Credenciales
|
||||
|
||||
Almacén seguro de credenciales y secretos.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Vaultwarden |
|
||||
| Protocolo | API compatible Bitwarden |
|
||||
| Referencia | `kv://` URIs |
|
||||
|
||||
---
|
||||
|
||||
## Acortador
|
||||
|
||||
Acortador y redirector de URLs con tracking.
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Base | Shlink |
|
||||
| Función | URLs cortas, estadísticas de clics |
|
||||
|
||||
---
|
||||
|
||||
## Bases de Datos de Usuario
|
||||
|
||||
Extensiones de bibliotecas para contenido personalizado:
|
||||
|
||||
| Tabla | Descripción | Extiende |
|
||||
|-------|-------------|----------|
|
||||
| **hsu** | Tags de usuario | HST |
|
||||
| **spu** | Especialidades de usuario | SPE |
|
||||
| **pju** | Proyectos de usuario | PJT |
|
||||
|
||||
Estas tablas permiten que cada usuario cree sus propias etiquetas, especialidades y proyectos sin modificar las bibliotecas base del sistema.
|
||||
224
02_COMPONENTES/servicios externos/asistente.md
Normal file
224
02_COMPONENTES/servicios externos/asistente.md
Normal file
@@ -0,0 +1,224 @@
|
||||
# Asistente de Voz
|
||||
|
||||
**Nombre:** Penny
|
||||
**Versión:** 1.0
|
||||
**Estado:** Especificación
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
PENNY es el asistente personal de voz del sistema DECK. Proporciona interfaz conversacional hablada 100% natural.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PENNY │
|
||||
│ │
|
||||
│ • ES la voz del DECK │
|
||||
│ • ES la interfaz hablada con el usuario │
|
||||
│ • ES quien llama a GRACE cuando necesita datos │
|
||||
│ • HABLA con el usuario (GRACE no puede) │
|
||||
│ • REGISTRA todo en el log (planos de información) │
|
||||
│ • MANTIENE contexto durante la sesión │
|
||||
│ │
|
||||
│ "PENNY habla, GRACE procesa, el Log recuerda." │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Principios
|
||||
|
||||
| Principio | Descripción |
|
||||
|-----------|-------------|
|
||||
| **Privacidad radical** | Audio procesado 100% local |
|
||||
| **Conversación natural** | Turnos fluidos, latencia <2s |
|
||||
| **Log como verdad** | Todo está en el log |
|
||||
| **Planos separados** | Contextos cargables independientemente |
|
||||
| **GRACE como backend** | PENNY pregunta, GRACE extrae |
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PENNY VOICE ENGINE │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐│
|
||||
│ │ Silero │ │ Faster │ │ PENNY │ │ XTTS-v2 ││
|
||||
│ │ VAD │─▶│ Whisper │─▶│ CORE │─▶│ /Kokoro ││
|
||||
│ │ │ │ │ │ │ │ ││
|
||||
│ │ Detecta │ │ Transcribe │ │ Orquesta │ │ Sintetiza ││
|
||||
│ │ voz │ │ audio │ │ todo │ │ respuesta ││
|
||||
│ └────────────┘ └────────────┘ └─────┬──────┘ └────────────┘│
|
||||
│ │ │
|
||||
│ ┌───────────────────┼───────────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ PLANOS │ │ GRACE │ │
|
||||
│ │ (Log) │ │ (S-CONTRACT)│ │
|
||||
│ └─────────────┘ └─────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
│ SOLO texto (nunca audio)
|
||||
▼
|
||||
┌─────────────────────────────┐
|
||||
│ Claude API │
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Flujo Voz → Voz
|
||||
|
||||
```
|
||||
1. VAD DETECTA (Silero)
|
||||
└── Usuario empieza a hablar
|
||||
└── Usuario termina (silencio 700ms)
|
||||
|
||||
2. ASR TRANSCRIBE (Faster-Whisper)
|
||||
└── Audio → Texto
|
||||
└── ~200-400ms con GPU
|
||||
|
||||
3. PENNY CORE PROCESA
|
||||
├── Cargar planos relevantes
|
||||
├── ¿Necesita GRACE? → Llamar con S-CONTRACT
|
||||
├── Construir prompt con contexto
|
||||
└── Enviar a Claude API (solo texto)
|
||||
|
||||
4. LLM RESPONDE (Claude)
|
||||
└── Streaming de tokens
|
||||
└── ~1-2s primera palabra
|
||||
|
||||
5. TTS SINTETIZA (XTTS-v2/Kokoro)
|
||||
└── Texto → Audio
|
||||
└── Streaming mientras llegan tokens
|
||||
|
||||
6. LOG REGISTRA
|
||||
└── Todo el intercambio → plano CONVERSACION
|
||||
|
||||
LATENCIA TOTAL OBJETIVO: <2 segundos voice-to-voice
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Planos de Información
|
||||
|
||||
El Log está organizado en planos que se cargan independientemente:
|
||||
|
||||
| Plano | Nombre | Descripción | Comportamiento |
|
||||
|-------|--------|-------------|----------------|
|
||||
| 0 | SISTEMA | Instrucciones base | INMUTABLE durante sesión |
|
||||
| 1 | PERSONALIDAD | Tono, estilo, nombre, voz | CONFIGURABLE por usuario |
|
||||
| 2 | CONTEXTO PERSONAL | Info usuario, preferencias | PERSISTENTE entre sesiones |
|
||||
| 3 | CONTEXTO AMBIENTAL | Fecha, hora, estado sistema | DINÁMICO cada sesión |
|
||||
| 4 | DATASET | Datos específicos de tarea | OPCIONAL bajo demanda |
|
||||
| 5 | CONVERSACIÓN | Historial de sesión | TEMPORAL durante sesión |
|
||||
|
||||
---
|
||||
|
||||
## Modelos Autoalojados
|
||||
|
||||
| Componente | Modelo | Descripción |
|
||||
|------------|--------|-------------|
|
||||
| VAD | Silero VAD v5 | Detección de actividad vocal |
|
||||
| ASR | Faster-Whisper Large-v3 | Transcripción |
|
||||
| TTS | XTTS-v2 / Kokoro | Síntesis de voz |
|
||||
| LLM | Claude API | Solo texto, streaming |
|
||||
|
||||
---
|
||||
|
||||
## Configuración
|
||||
|
||||
```yaml
|
||||
penny:
|
||||
version: "1.0"
|
||||
|
||||
server:
|
||||
host: "0.0.0.0"
|
||||
port: 8765
|
||||
websocket_path: "/ws/voice"
|
||||
|
||||
models:
|
||||
vad:
|
||||
type: "silero"
|
||||
path: "models/silero/vad_v5.onnx"
|
||||
|
||||
asr:
|
||||
type: "faster-whisper"
|
||||
model: "large-v3"
|
||||
device: "cuda"
|
||||
compute_type: "float16"
|
||||
|
||||
tts:
|
||||
type: "xtts-v2"
|
||||
speaker_wav: "voces/penny_base.wav"
|
||||
language: "es"
|
||||
|
||||
llm:
|
||||
provider: "anthropic"
|
||||
model: "claude-sonnet-4-20250514"
|
||||
max_tokens: 150
|
||||
temperature: 0.7
|
||||
streaming: true
|
||||
|
||||
grace:
|
||||
endpoint: "http://localhost:8080/api/v1"
|
||||
timeout_ms: 10000
|
||||
|
||||
log:
|
||||
database_url: "postgresql://..."
|
||||
retain_audio_days: 7
|
||||
retain_text_days: 365
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Rol en el Sistema
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ DECK (Servidor Personal) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ Usuario ◄────────────────────────────────────► PENNY │
|
||||
│ (voz natural) │ (habla) │
|
||||
│ │ │
|
||||
│ ┌──────────────┼──────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ▼ ▼ ▼ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
│ │ GRACE │ │ LOG │ │ DECK │ │
|
||||
│ │ (datos) │ │(planos) │ │(acciones│ │
|
||||
│ └─────────┘ └─────────┘ └─────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Características Conversacionales
|
||||
|
||||
| Característica | Descripción |
|
||||
|----------------|-------------|
|
||||
| **Barge-in** | Usuario puede interrumpir |
|
||||
| **Turn detection** | Detecta fin de turno por silencio |
|
||||
| **Contexto** | Mantiene contexto durante sesión |
|
||||
| **Streaming** | Respuesta progresiva mientras genera |
|
||||
|
||||
---
|
||||
|
||||
## Pendiente
|
||||
|
||||
- [ ] Configurar servidor con GPU
|
||||
- [ ] Instalar modelos (Whisper, XTTS-v2, Silero)
|
||||
- [ ] Crear tablas de log
|
||||
- [ ] Definir planos específicos
|
||||
- [ ] Grabar voz base para clonación TTS
|
||||
- [ ] Implementar pipeline con Pipecat
|
||||
- [ ] Ajustar turn detection
|
||||
84
02_COMPONENTES/servicios externos/circle.md
Normal file
84
02_COMPONENTES/servicios externos/circle.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# Circle
|
||||
|
||||
**Nombre:** The Circle - Consejo de Perspectivas
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Sistema que convoca múltiples perspectivas (agentes con roles distintos) para analizar un problema desde diferentes ángulos.
|
||||
|
||||
---
|
||||
|
||||
## Concepto
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ THE CIRCLE │
|
||||
│ (Consejo de Perspectivas) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────┐ ┌─────────┐ │
|
||||
│ │ Crítico │ │Optimista│ │
|
||||
│ └────┬────┘ └────┬────┘ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────┐ │ │
|
||||
│ └─────►│ PROBLEMA │◄─────────┘ │
|
||||
│ └──────┬──────┘ │
|
||||
│ ┌─────────────┼─────────────┐ │
|
||||
│ │ │ │ │
|
||||
│ ┌────┴────┐ ┌─────┴─────┐ ┌────┴────┐ │
|
||||
│ │Pragmático│ │ Creativo │ │Analítico│ │
|
||||
│ └─────────┘ └───────────┘ └─────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Presets
|
||||
|
||||
| Preset | Perspectivas | Uso |
|
||||
|--------|--------------|-----|
|
||||
| **decision** | Crítico, Optimista, Pragmático | Toma de decisiones |
|
||||
| **creative** | Creativo, Crítico, Explorador | Brainstorming |
|
||||
| **analysis** | Analítico, Escéptico, Sintético | Análisis profundo |
|
||||
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```javascript
|
||||
const circle = new Circle('decision');
|
||||
const result = await circle.deliberate({
|
||||
problem: "¿Deberíamos lanzar el producto ahora?",
|
||||
context: "..."
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output
|
||||
|
||||
```json
|
||||
{
|
||||
"perspectives": [
|
||||
{ "role": "critico", "opinion": "..." },
|
||||
{ "role": "optimista", "opinion": "..." },
|
||||
{ "role": "pragmatico", "opinion": "..." }
|
||||
],
|
||||
"synthesis": "...",
|
||||
"recommendation": "..."
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Diferencia con Orchestrator
|
||||
|
||||
| Aspecto | Orchestrator | Circle |
|
||||
|---------|--------------|--------|
|
||||
| Enfoque | Ejecución de tareas | Deliberación |
|
||||
| Agentes | Colaborativos | Contrapuestos |
|
||||
| Output | Resultado | Perspectivas + síntesis |
|
||||
87
02_COMPONENTES/servicios externos/cloudville.md
Normal file
87
02_COMPONENTES/servicios externos/cloudville.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# Cloudville
|
||||
|
||||
**Nombre:** Cloudville - Laboratorio de Zumbados
|
||||
**Estado:** Implementado
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Laboratorio experimental donde agentes con personalidades extremas o poco convencionales exploran ideas sin restricciones.
|
||||
|
||||
---
|
||||
|
||||
## Concepto
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ CLOUDVILLE │
|
||||
│ (Laboratorio de Zumbados) │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ "Donde las ideas locas tienen permiso para existir" │
|
||||
│ │
|
||||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||||
│ │Visionario│ │ Caótico │ │Contrarian│ │ Loco │ │
|
||||
│ │ │ │ │ │ │ │ Genio │ │
|
||||
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Propósito
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| Restricciones | Mínimas |
|
||||
| Filtro | Ninguno |
|
||||
| Output | Ideas sin censura |
|
||||
| Uso | Exploración, brainstorming extremo |
|
||||
|
||||
---
|
||||
|
||||
## Diferencia con Circle
|
||||
|
||||
| Aspecto | Circle | Cloudville |
|
||||
|---------|--------|------------|
|
||||
| Tono | Profesional | Experimental |
|
||||
| Filtro | Moderado | Ninguno |
|
||||
| Propósito | Decisión | Exploración |
|
||||
| Personalidades | Equilibradas | Extremas |
|
||||
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```javascript
|
||||
const cloudville = new Cloudville();
|
||||
const ideas = await cloudville.explore({
|
||||
challenge: "¿Cómo podríamos...?",
|
||||
constraints: "ninguna"
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output
|
||||
|
||||
```json
|
||||
{
|
||||
"ideas": [
|
||||
{ "agent": "visionario", "idea": "..." },
|
||||
{ "agent": "caotico", "idea": "..." },
|
||||
{ "agent": "contrarian", "idea": "..." },
|
||||
{ "agent": "loco_genio", "idea": "..." }
|
||||
],
|
||||
"wildest": "...",
|
||||
"hidden_gems": ["...", "..."]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Advertencia
|
||||
|
||||
> **Nota:** Las ideas de Cloudville no están filtradas. Requieren evaluación posterior antes de implementación.
|
||||
96
02_COMPONENTES/servicios externos/generacion-iterativa.md
Normal file
96
02_COMPONENTES/servicios externos/generacion-iterativa.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# Generación Iterativa
|
||||
|
||||
**Nombre:** The Factory
|
||||
**Estado:** Implementado (RunPod)
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
Sistema de generación iterativa. Produce contenido mediante ciclos de refinamiento sucesivos.
|
||||
|
||||
---
|
||||
|
||||
## Concepto
|
||||
|
||||
```
|
||||
Input inicial
|
||||
│
|
||||
▼
|
||||
┌─────────────────┐
|
||||
│ THE FACTORY │
|
||||
├─────────────────┤
|
||||
│ │
|
||||
│ Iteración 1 ───┼──► Resultado parcial
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ Iteración 2 ───┼──► Resultado mejorado
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ Iteración N ───┼──► Resultado final
|
||||
│ │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Endpoint
|
||||
|
||||
| Parámetro | Valor |
|
||||
|-----------|-------|
|
||||
| Ubicación | RunPod |
|
||||
| GPU | NVIDIA L4 |
|
||||
| Modo | Serverless |
|
||||
|
||||
---
|
||||
|
||||
## Casos de Uso
|
||||
|
||||
| Caso | Descripción |
|
||||
|------|-------------|
|
||||
| Generación de imágenes | Refinamiento progresivo |
|
||||
| Generación de texto | Mejora iterativa |
|
||||
| Producción de contenido | Ciclos de calidad |
|
||||
|
||||
---
|
||||
|
||||
## Request
|
||||
|
||||
```json
|
||||
{
|
||||
"input": {
|
||||
"prompt": "...",
|
||||
"iterations": 3,
|
||||
"quality_threshold": 0.8,
|
||||
"output_format": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Response
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "completed",
|
||||
"iterations_used": 3,
|
||||
"outputs": [
|
||||
{ "iteration": 1, "result": "...", "score": 0.6 },
|
||||
{ "iteration": 2, "result": "...", "score": 0.75 },
|
||||
{ "iteration": 3, "result": "...", "score": 0.85 }
|
||||
],
|
||||
"final_result": "...",
|
||||
"trace_id": "..."
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Diferencia con Grace
|
||||
|
||||
| Aspecto | Grace | The Factory |
|
||||
|---------|-------|-------------|
|
||||
| Modo | Single-shot | Iterativo |
|
||||
| Enfoque | Transformación | Generación |
|
||||
| Ciclos | 1 | N |
|
||||
203
02_COMPONENTES/servicios externos/gestoria.md
Normal file
203
02_COMPONENTES/servicios externos/gestoria.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# Gestoría
|
||||
|
||||
**Nombre:** Grace
|
||||
**Versión:** 2.0
|
||||
**Estado:** Enterprise Standard
|
||||
|
||||
---
|
||||
|
||||
## Descripción
|
||||
|
||||
GRACE no es un chatbot. Es un **conjunto de 18 microservicios cognitivos desacoplados**.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PRINCIPIO GRACE │
|
||||
│ │
|
||||
│ "GRACE transforma, Producción (Alfred/Jared) decide" │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Características
|
||||
|
||||
| Propiedad | Valor |
|
||||
|-----------|-------|
|
||||
| Stateless | No guarda estado |
|
||||
| Determinista | Misma entrada → misma salida |
|
||||
| Intercambiable | Modelos sustituibles |
|
||||
| Trazable | Todo via trace_id |
|
||||
|
||||
**GRACE no:**
|
||||
- Toma decisiones
|
||||
- Altera estados
|
||||
- Escribe en base de datos
|
||||
|
||||
---
|
||||
|
||||
## Infraestructura
|
||||
|
||||
| Aspecto | Valor |
|
||||
|---------|-------|
|
||||
| **Plataforma** | RunPod Serverless |
|
||||
| **GPU** | NVIDIA L4 (24GB) |
|
||||
| **Endpoint** | https://api.runpod.ai/v2/{id} |
|
||||
| **Modos** | runsync, run, status |
|
||||
|
||||
---
|
||||
|
||||
## Catálogo de 18 Módulos
|
||||
|
||||
### FAMILIA A - VISIÓN (Procesado Documental)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 1 | **IMG_PREPROCESS** | Normalización: crop, denoise, upscale, grayscale |
|
||||
| 2 | **PDF_SCANNER** | Limpieza escaneados: deskew, binarización, bordes |
|
||||
| 3 | **OCR_CORE** | Extracción texto: layout analysis, HOCR |
|
||||
|
||||
### FAMILIA B - VOZ (Reuniones)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 4 | **ASR_ENGINE** | Reconocimiento habla: Whisper Large v3, diarización |
|
||||
| 5 | **TTS_ENGINE** | Síntesis voz neutral para notificaciones |
|
||||
|
||||
### FAMILIA C - IDENTIDAD (Biometría)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 6 | **FACE_VECTOR** | Vector biométrico facial (Float32 L2) |
|
||||
| 7 | **ID_CONSOLIDATION** | Fusión identidades: mediana geométrica |
|
||||
| 8 | **AVATAR_GEN** | Avatar neutral 512x512 desde vector |
|
||||
|
||||
### FAMILIA D - SEMÁNTICA (NLP)
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 9 | **EMBEDDINGS** | Vectorización semántica para búsquedas |
|
||||
| 10 | **SUMMARIZER** | Resumen estructurado: objetivos, acuerdos, riesgos |
|
||||
| 11 | **TASK_EXTRACTOR** | Minería de acciones, responsables, fechas |
|
||||
| 12 | **CLASSIFIER** | Asigna tags HST basado en contenido |
|
||||
| 13 | **SIMILARITY** | Comparador vectorial (Cosine Similarity) |
|
||||
|
||||
### FAMILIA E - UTILIDADES
|
||||
|
||||
| # | Módulo | Función |
|
||||
|---|--------|---------|
|
||||
| 14 | **FIELD_EXTRACTOR** | Lectura estructurada: CIF, fechas, importes |
|
||||
| 15 | **HASHER** | Generador SHA256 y UUID v4 |
|
||||
| 16 | **INPUT_NORMALIZER** | Traducción formatos y enumeraciones |
|
||||
| 17 | **OUTPUT_ADAPTER** | Adaptación a formatos legacy |
|
||||
| 18 | **LANG_DETECT** | Identificación idioma ISO 639-1 |
|
||||
|
||||
---
|
||||
|
||||
## Cadenas de Fallback
|
||||
|
||||
Cada módulo define degradación vía `fallback_chain` en S-CONTRACT:
|
||||
|
||||
### Ejemplo OCR
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"module": "OCR_CORE",
|
||||
"fallback_chain": ["OCR_LOCAL", "OCR_GROQ", "OCR_OPENAI"]
|
||||
}
|
||||
```
|
||||
|
||||
### Ejemplo ASR
|
||||
|
||||
```json
|
||||
"routing": {
|
||||
"module": "ASR_ENGINE",
|
||||
"fallback_chain": ["ASR_WHISPER_LOCAL", "ASR_FASTER_WHISPER", "ASR_GROQ"]
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integración con S-CONTRACT
|
||||
|
||||
Todos los módulos GRACE cumplen S-CONTRACT sin excepciones. No hay contratos específicos por módulo.
|
||||
|
||||
### Request (LITE)
|
||||
|
||||
```json
|
||||
{
|
||||
"contract_version": "2.1",
|
||||
"profile": "LITE",
|
||||
"envelope": {
|
||||
"trace_id": "uuid-v4",
|
||||
"idempotency_key": "sha256-input"
|
||||
},
|
||||
"routing": {
|
||||
"module": "CLASSIFIER"
|
||||
},
|
||||
"context": {
|
||||
"lang": "es",
|
||||
"mode": "strict"
|
||||
},
|
||||
"payload": {
|
||||
"type": "text",
|
||||
"encoding": "utf-8",
|
||||
"content": "Texto a procesar"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Response
|
||||
|
||||
```json
|
||||
{
|
||||
"contract_version": "2.1",
|
||||
"profile": "LITE",
|
||||
"status": {
|
||||
"code": "SUCCESS",
|
||||
"provider_used": "groq"
|
||||
},
|
||||
"result": {
|
||||
"data": {
|
||||
"category": "FINANZAS",
|
||||
"confidence": 0.98
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"confidence": 0.98,
|
||||
"tokens_input": 150,
|
||||
"tokens_output": 45
|
||||
},
|
||||
"metadata": {
|
||||
"model_id": "llama-3.1-70b-versatile",
|
||||
"processing_ms": 340
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Relación con Otros Componentes
|
||||
|
||||
GRACE es un servicio de transformación. Cuando termina de procesar, envía el resultado a Secretaría (Clara/Margaret) como cualquier otro origen:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ PUNTO DE ENTRADA ÚNICO │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ GRACE ──────┐ │
|
||||
│ Penny ──────┼──► Secretaría (Clara/Margaret) │
|
||||
│ Packet ─────┤ │
|
||||
│ Manual ─────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
GRACE no es un paso del flujo de datos. Es un servicio que cualquier componente puede invocar vía S-CONTRACT para obtener transformaciones cognitivas (OCR, transcripción, clasificación, etc.).
|
||||
|
||||
---
|
||||
|
||||
## Compatibilidad Universal
|
||||
|
||||
El sistema está diseñado para que cuando aparezcan módulos mejores, encajen sin trabajo añadido. S-CONTRACT es el marco de compatibilidad universal — cualquier módulo que lo cumpla es interoperable.
|
||||
4092
02_COMPONENTES/servicios externos/orchestratorv6.md
Normal file
4092
02_COMPONENTES/servicios externos/orchestratorv6.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user