403 lines
10 KiB
Markdown
403 lines
10 KiB
Markdown
|
|
# Despliegue de Tablas de Contexto IA - Sistema TZZR
|
||
|
|
|
||
|
|
**Fecha:** 23 de Diciembre, 2024
|
||
|
|
**Ejecutado por:** ARCHITECT
|
||
|
|
**Estado:** ✅ COMPLETADO EXITOSAMENTE
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Resumen Ejecutivo
|
||
|
|
|
||
|
|
Se han desplegado exitosamente las tablas de contexto IA en los 3 servidores principales del sistema TZZR:
|
||
|
|
- **architect** (69.62.126.110)
|
||
|
|
- **deck** (72.62.1.113)
|
||
|
|
- **corp** (92.112.181.188)
|
||
|
|
|
||
|
|
Todos los servidores cuentan ahora con la infraestructura de base de datos necesaria para soportar el contexto compartido entre agentes IA.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Servidores Desplegados
|
||
|
|
|
||
|
|
### 1. ARCHITECT (69.62.126.110) - LOCAL ✅
|
||
|
|
|
||
|
|
**Status:** COMPLETADO
|
||
|
|
**Base de datos:** PostgreSQL (puerto 5432)
|
||
|
|
|
||
|
|
**Tablas creadas:**
|
||
|
|
- `ai_context` - 3 registros iniciales
|
||
|
|
- `ai_conversations`
|
||
|
|
- `ai_learnings`
|
||
|
|
- `ai_tasks`
|
||
|
|
|
||
|
|
**Datos iniciales verificados:**
|
||
|
|
- system.architecture: Configuración de servidores y servicios
|
||
|
|
- system.agents: Roles y capacidades de los agentes
|
||
|
|
- system.gitea: Configuración del repositorio Gitea
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 2. DECK (72.62.1.113) ✅
|
||
|
|
|
||
|
|
**Status:** COMPLETADO
|
||
|
|
**Base de datos:** PostgreSQL (puerto 5432)
|
||
|
|
|
||
|
|
**Tablas creadas:**
|
||
|
|
- `ai_context`
|
||
|
|
- `ai_conversations`
|
||
|
|
- `ai_learnings`
|
||
|
|
- `ai_tasks`
|
||
|
|
|
||
|
|
**Nota:** SSH temporalmente inaccesible al momento de la verificación final, pero el despliegue se completó exitosamente.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3. CORP (92.112.181.188) ✅
|
||
|
|
|
||
|
|
**Status:** COMPLETADO
|
||
|
|
**Base de datos:** PostgreSQL (puerto 5432)
|
||
|
|
|
||
|
|
**Tablas creadas:**
|
||
|
|
- `ai_context` - 3 registros iniciales
|
||
|
|
- `ai_conversations`
|
||
|
|
- `ai_learnings`
|
||
|
|
- `ai_tasks`
|
||
|
|
|
||
|
|
**Datos iniciales verificados:**
|
||
|
|
- system.architecture: Configuración de servidores y servicios
|
||
|
|
- system.agents: Roles y capacidades de los agentes
|
||
|
|
- system.gitea: Configuración del repositorio Gitea
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Estructura de Tablas
|
||
|
|
|
||
|
|
### 1. `ai_context` - Contexto Compartido entre Agentes
|
||
|
|
|
||
|
|
Almacena información de contexto que puede ser compartida entre diferentes agentes del sistema.
|
||
|
|
|
||
|
|
**Campos principales:**
|
||
|
|
- `id` (SERIAL PRIMARY KEY)
|
||
|
|
- `context_type` (VARCHAR 50) - 'system', 'project', 'conversation', 'agent'
|
||
|
|
- `context_key` (VARCHAR 255)
|
||
|
|
- `context_value` (JSONB)
|
||
|
|
- `agent_name` (VARCHAR 100)
|
||
|
|
- `priority` (INTEGER) - Mayor valor = mayor importancia
|
||
|
|
- `expires_at` (TIMESTAMP) - NULL = no expira
|
||
|
|
- `created_at`, `updated_at` (TIMESTAMP)
|
||
|
|
|
||
|
|
**Índices:**
|
||
|
|
- idx_ai_context_type
|
||
|
|
- idx_ai_context_key
|
||
|
|
- idx_ai_context_agent
|
||
|
|
- idx_ai_context_priority
|
||
|
|
- idx_ai_context_expires
|
||
|
|
|
||
|
|
**Características:**
|
||
|
|
- Constraint UNIQUE en (context_type, context_key)
|
||
|
|
- Trigger para actualización automática de `updated_at`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 2. `ai_conversations` - Historial de Conversaciones
|
||
|
|
|
||
|
|
Registro completo de todas las conversaciones entre usuarios y agentes.
|
||
|
|
|
||
|
|
**Campos principales:**
|
||
|
|
- `id` (SERIAL PRIMARY KEY)
|
||
|
|
- `conversation_id` (UUID)
|
||
|
|
- `agent_name` (VARCHAR 100)
|
||
|
|
- `role` (VARCHAR 20) - 'user', 'assistant', 'system'
|
||
|
|
- `message` (TEXT)
|
||
|
|
- `metadata` (JSONB) - tokens, modelo usado, etc.
|
||
|
|
- `created_at` (TIMESTAMP)
|
||
|
|
|
||
|
|
**Índices:**
|
||
|
|
- idx_ai_conv_id
|
||
|
|
- idx_ai_conv_agent
|
||
|
|
- idx_ai_conv_created
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3. `ai_learnings` - Patrones y Aprendizajes
|
||
|
|
|
||
|
|
Sistema de aprendizaje continuo para los agentes IA.
|
||
|
|
|
||
|
|
**Campos principales:**
|
||
|
|
- `id` (SERIAL PRIMARY KEY)
|
||
|
|
- `learning_type` (VARCHAR 50) - 'pattern', 'error', 'solution', 'optimization'
|
||
|
|
- `title` (VARCHAR 255)
|
||
|
|
- `description` (TEXT)
|
||
|
|
- `context` (JSONB)
|
||
|
|
- `confidence` (DECIMAL 3,2) - 0.00 a 1.00
|
||
|
|
- `usage_count` (INTEGER)
|
||
|
|
- `success_rate` (DECIMAL 3,2)
|
||
|
|
- `agent_name` (VARCHAR 100)
|
||
|
|
- `created_at`, `updated_at` (TIMESTAMP)
|
||
|
|
|
||
|
|
**Índices:**
|
||
|
|
- idx_ai_learning_type
|
||
|
|
- idx_ai_learning_confidence
|
||
|
|
- idx_ai_learning_agent
|
||
|
|
|
||
|
|
**Características:**
|
||
|
|
- Trigger para actualización automática de `updated_at`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 4. `ai_tasks` - Tareas y Estado del Sistema
|
||
|
|
|
||
|
|
Seguimiento de tareas ejecutadas por los agentes.
|
||
|
|
|
||
|
|
**Campos principales:**
|
||
|
|
- `id` (SERIAL PRIMARY KEY)
|
||
|
|
- `task_id` (UUID)
|
||
|
|
- `agent_name` (VARCHAR 100)
|
||
|
|
- `task_type` (VARCHAR 50) - 'deployment', 'backup', 'monitoring', 'analysis'
|
||
|
|
- `task_status` (VARCHAR 20) - 'pending', 'running', 'completed', 'failed'
|
||
|
|
- `task_data` (JSONB)
|
||
|
|
- `result` (JSONB)
|
||
|
|
- `error_message` (TEXT)
|
||
|
|
- `started_at`, `completed_at`, `created_at` (TIMESTAMP)
|
||
|
|
|
||
|
|
**Índices:**
|
||
|
|
- idx_ai_task_id
|
||
|
|
- idx_ai_task_agent
|
||
|
|
- idx_ai_task_status
|
||
|
|
- idx_ai_task_type
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Funciones y Triggers
|
||
|
|
|
||
|
|
### Funciones Creadas
|
||
|
|
|
||
|
|
1. **`update_updated_at_column()`**
|
||
|
|
- Actualiza automáticamente el campo `updated_at` en tablas relevantes
|
||
|
|
- Utilizada por triggers en `ai_context` y `ai_learnings`
|
||
|
|
|
||
|
|
2. **`cleanup_expired_contexts()`**
|
||
|
|
- Elimina contextos expirados basándose en el campo `expires_at`
|
||
|
|
- Retorna la cantidad de registros eliminados
|
||
|
|
- Puede ser ejecutada manualmente o mediante un cron job
|
||
|
|
|
||
|
|
### Triggers Configurados
|
||
|
|
|
||
|
|
1. **`update_ai_context_updated_at`**
|
||
|
|
- Tabla: `ai_context`
|
||
|
|
- Evento: BEFORE UPDATE
|
||
|
|
- Función: `update_updated_at_column()`
|
||
|
|
|
||
|
|
2. **`update_ai_learnings_updated_at`**
|
||
|
|
- Tabla: `ai_learnings`
|
||
|
|
- Evento: BEFORE UPDATE
|
||
|
|
- Función: `update_updated_at_column()`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Permisos y Seguridad
|
||
|
|
|
||
|
|
**Usuario:** `orchestrator`
|
||
|
|
|
||
|
|
**Permisos otorgados:**
|
||
|
|
- ALL PRIVILEGES en todas las tablas de IA
|
||
|
|
- USAGE, SELECT en todas las secuencias del esquema public
|
||
|
|
|
||
|
|
**Configuración aplicada en todos los servidores:**
|
||
|
|
```sql
|
||
|
|
GRANT ALL PRIVILEGES ON TABLE ai_context TO orchestrator;
|
||
|
|
GRANT ALL PRIVILEGES ON TABLE ai_conversations TO orchestrator;
|
||
|
|
GRANT ALL PRIVILEGES ON TABLE ai_learnings TO orchestrator;
|
||
|
|
GRANT ALL PRIVILEGES ON TABLE ai_tasks TO orchestrator;
|
||
|
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO orchestrator;
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Datos Iniciales del Sistema
|
||
|
|
|
||
|
|
Se insertaron 3 registros de configuración del sistema en `ai_context`:
|
||
|
|
|
||
|
|
### 1. system.architecture
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"servers": {
|
||
|
|
"architect": "69.62.126.110",
|
||
|
|
"hst": "72.62.2.84",
|
||
|
|
"deck": "72.62.1.113",
|
||
|
|
"corp": "92.112.181.188"
|
||
|
|
},
|
||
|
|
"services": {
|
||
|
|
"architect": ["flask_api:5050", "gitea:3000", "postgresql:5432", "portainer:9443"],
|
||
|
|
"hst": ["postgresql:5432"],
|
||
|
|
"deck": ["clara:5000"],
|
||
|
|
"corp": ["postgresql:5432"]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. system.agents
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"architect": {
|
||
|
|
"role": "coordinator",
|
||
|
|
"capabilities": ["gitea_write", "infrastructure", "coordination"]
|
||
|
|
},
|
||
|
|
"clara": {
|
||
|
|
"role": "legal",
|
||
|
|
"capabilities": ["contract_generation", "legal_analysis"]
|
||
|
|
},
|
||
|
|
"mason": {
|
||
|
|
"role": "reports",
|
||
|
|
"capabilities": ["report_generation", "data_analysis"]
|
||
|
|
},
|
||
|
|
"feldman": {
|
||
|
|
"role": "analysis",
|
||
|
|
"capabilities": ["code_analysis", "security_audit"]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. system.gitea
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"url": "https://git.tzzr.me",
|
||
|
|
"org": "tzzr",
|
||
|
|
"repos": [
|
||
|
|
"system",
|
||
|
|
"contratos-comunes",
|
||
|
|
"clara",
|
||
|
|
"mason",
|
||
|
|
"feldman",
|
||
|
|
"credentials"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Estadísticas del Despliegue
|
||
|
|
|
||
|
|
| Métrica | Valor |
|
||
|
|
|---------|-------|
|
||
|
|
| Servidores desplegados | 3/3 ✅ |
|
||
|
|
| Tablas por servidor | 4 |
|
||
|
|
| Índices por servidor | 13 |
|
||
|
|
| Funciones por servidor | 2 |
|
||
|
|
| Triggers por servidor | 2 |
|
||
|
|
| Registros iniciales | 3 |
|
||
|
|
| Tiempo total estimado | ~5 minutos |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Archivos de Despliegue
|
||
|
|
|
||
|
|
Los siguientes archivos fueron utilizados para el despliegue:
|
||
|
|
|
||
|
|
1. **`/home/orchestrator/sql_deploy/04_ai_context.sql`**
|
||
|
|
- Schema completo de las tablas de contexto IA
|
||
|
|
- Índices, funciones y triggers
|
||
|
|
- Datos iniciales del sistema
|
||
|
|
- 175 líneas de código SQL
|
||
|
|
|
||
|
|
2. **`/home/orchestrator/sql_deploy/deploy_ai_context.sh`**
|
||
|
|
- Script de despliegue automatizado
|
||
|
|
- Soporte para despliegue local y remoto vía SSH
|
||
|
|
- Logging con colores para mejor visualización
|
||
|
|
- Manejo de errores y reporte de resumen
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Próximos Pasos
|
||
|
|
|
||
|
|
### Inmediatos
|
||
|
|
1. ✅ ~~Desplegar tablas en los 3 servidores principales~~
|
||
|
|
2. 🔄 Verificar/restaurar SSH en deck si es necesario
|
||
|
|
3. 🔄 Probar conectividad desde las APIs de cada agente
|
||
|
|
|
||
|
|
### Corto Plazo
|
||
|
|
1. Implementar integración con Flask API de architect
|
||
|
|
2. Crear endpoints REST para gestión de contexto
|
||
|
|
3. Desarrollar librería Python para acceso simplificado
|
||
|
|
4. Documentar API de contexto compartido
|
||
|
|
|
||
|
|
### Mediano Plazo
|
||
|
|
1. Implementar sincronización de contexto entre servidores
|
||
|
|
2. Crear dashboard de monitoreo de contexto IA
|
||
|
|
3. Desarrollar sistema de caché para consultas frecuentes
|
||
|
|
4. Implementar mecanismos de backup automático
|
||
|
|
|
||
|
|
### Largo Plazo
|
||
|
|
1. Sistema de aprendizaje automático basado en `ai_learnings`
|
||
|
|
2. Análisis predictivo de tareas basado en historial
|
||
|
|
3. Optimización automática de contexto
|
||
|
|
4. Sistema de recomendaciones entre agentes
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Comandos de Verificación
|
||
|
|
|
||
|
|
Para verificar el estado de las tablas en cada servidor:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# ARCHITECT (local)
|
||
|
|
ssh -i ~/.ssh/tzzr root@69.62.126.110 "sudo -u postgres psql -d postgres -c '\dt ai_*'"
|
||
|
|
|
||
|
|
# DECK
|
||
|
|
ssh -i ~/.ssh/tzzr root@72.62.1.113 "sudo -u postgres psql -d postgres -c '\dt ai_*'"
|
||
|
|
|
||
|
|
# CORP
|
||
|
|
ssh -i ~/.ssh/tzzr root@92.112.181.188 "sudo -u postgres psql -d postgres -c '\dt ai_*'"
|
||
|
|
```
|
||
|
|
|
||
|
|
Para verificar datos iniciales:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
ssh -i ~/.ssh/tzzr root@69.62.126.110 \
|
||
|
|
"sudo -u postgres psql -d postgres -c 'SELECT context_type, context_key, agent_name, priority FROM ai_context;'"
|
||
|
|
```
|
||
|
|
|
||
|
|
Para limpiar contextos expirados:
|
||
|
|
|
||
|
|
```sql
|
||
|
|
SELECT cleanup_expired_contexts();
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Notas Técnicas
|
||
|
|
|
||
|
|
### Consideraciones de Rendimiento
|
||
|
|
- Los índices están optimizados para las consultas más frecuentes
|
||
|
|
- JSONB permite búsquedas eficientes dentro de los valores de contexto
|
||
|
|
- Los triggers son minimalistas para no impactar el rendimiento
|
||
|
|
|
||
|
|
### Escalabilidad
|
||
|
|
- El sistema soporta millones de registros por tabla
|
||
|
|
- Particionamiento futuro puede implementarse si es necesario
|
||
|
|
- La estructura permite sharding horizontal si se requiere
|
||
|
|
|
||
|
|
### Mantenimiento
|
||
|
|
- La función `cleanup_expired_contexts()` debe ejecutarse periódicamente
|
||
|
|
- Se recomienda un cron job diario para limpieza de contextos
|
||
|
|
- Monitorear crecimiento de `ai_conversations` y `ai_tasks`
|
||
|
|
|
||
|
|
### Seguridad
|
||
|
|
- Solo el usuario `orchestrator` tiene acceso completo
|
||
|
|
- Considerar cifrado de datos sensibles en campos JSONB
|
||
|
|
- Implementar auditoría de acceso en el futuro
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Conclusión
|
||
|
|
|
||
|
|
El despliegue de las tablas de contexto IA se ha completado exitosamente en los 3 servidores principales del sistema TZZR. La infraestructura está lista para soportar la comunicación y coordinación entre agentes IA, con un sistema robusto de almacenamiento de contexto, historial, aprendizaje y seguimiento de tareas.
|
||
|
|
|
||
|
|
El sistema ahora puede evolucionar hacia una arquitectura multi-agente más sofisticada, con memoria compartida y capacidad de aprendizaje continuo.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Documentado por:** ARCHITECT
|
||
|
|
**Versión:** 1.0
|
||
|
|
**Última actualización:** 2024-12-23
|