12 KiB
Context Manager v8 - Sistema de Gestión de Contexto para IA
Versión: 8.1 Fecha: 2026-01-01 Sistema: CAPTAIN CLAUDE - TZZR Generador: ARCHITECT
Visión General
El Context Manager v8 es un sistema completo para la gestión del contexto en sistemas de IA. Proporciona:
- Log inmutable con integridad criptográfica (blockchain-style)
- Integración con Sistema de Componentes TZZR (players, items, locations, hashtags, flags)
- Referencias relacionales a contexto, libros contables y registros de secretaría
- Contexto ambiental dinámico embebido en mensajes
- Soporte multiagente con owner, players y master_player
Arquitectura de Schemas
┌─────────────────────────────────────────────────────────────┐
│ CONTEXT MANAGER v8.1 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ SCHEMA: log (Inmutable) │ │
│ │ │ │
│ │ ├── log.messages (mensajes) │ │
│ │ └── log.message_refs (referencias a contexto) │ │
│ │ │ │
│ │ Características: │ │
│ │ ├─ Solo INSERT (UPDATE/DELETE bloqueados) │ │
│ │ ├─ Cadena SHA-256: prev_hash → hash │ │
│ │ └─ Integración con Sistema Componentes TZZR │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ SISTEMA DE COMPONENTES TZZR (Referencias externas) │ │
│ │ │ │
│ │ ├── ply (Players: usuarios, agentes, empresas) │ │
│ │ ├── hst (Hash Semantic Tagging: etiquetas) │ │
│ │ ├── flg (Flags: jurisdicciones, normativas) │ │
│ │ ├── itm (Items: productos, componentes) │ │
│ │ └── loc (Locations: ubicaciones físicas) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ FUENTES DE CONOCIMIENTO (via message_refs) │ │
│ │ │ │
│ │ ├── context → log.messages (historial) │ │
│ │ ├── accountant → libros contables │ │
│ │ └── secretary → registros de secretaría │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Schema LOG (2 tablas)
1. log.messages - Mensajes
Almacena todos los mensajes del sistema de forma inmutable.
Características:
- Solo permite INSERT (triggers previenen UPDATE/DELETE)
- Cadena de integridad: cada mensaje contiene hash del anterior
- Integración completa con Sistema de Componentes TZZR
- Soporte multiagente: owner (emisor), players (receptores), master_player (líder)
Schema:
CREATE TABLE log.messages (
id BIGSERIAL PRIMARY KEY,
hash CHAR(64) UNIQUE NOT NULL, -- SHA-256 del mensaje
session_hash CHAR(64) NOT NULL, -- Sesión
thread_hash CHAR(64), -- Hilo (nullable)
owner_id CHAR(64) NOT NULL, -- Emisor (→ ply)
players_id CHAR(64)[] DEFAULT '{}', -- Receptores (→ ply)
master_player CHAR(64), -- Líder/coordinador (→ ply)
role TEXT, -- Rol del emisor
content TEXT NOT NULL, -- Contenido del mensaje
attachments JSONB DEFAULT '{}', -- Adjuntos
prev_hash CHAR(64), -- Hash mensaje anterior
hashtags CHAR(64)[] DEFAULT '{}', -- Etiquetas (→ hst)
flag_id CHAR(64), -- Jurisdicción (→ flg)
master_item_id CHAR(64), -- Item principal (→ itm)
item_id CHAR(64)[] DEFAULT '{}', -- Items relacionados (→ itm)
loc_id CHAR(64), -- Ubicación (→ loc)
ambient JSONB, -- Contexto ambiental
created_at TIMESTAMPTZ DEFAULT NOW()
);
Índices:
session_hash- Mensajes de una sesiónthread_hash- Mensajes de un hiloowner_id- Mensajes enviados pormaster_player- Mensajes con líderprev_hash- Cadena de integridadcreated_at- Orden cronológicohashtags(GIN) - Búsqueda por etiquetasplayers_id(GIN) - Búsqueda por receptoresitem_id(GIN) - Búsqueda por itemsflag_id- Filtrar por jurisdicciónloc_id- Filtrar por ubicación
2. log.message_refs - Referencias
Relaciona cada mensaje con su contexto y fuentes de conocimiento.
Características:
- Tabla relacional para evitar arrays largos de hashes
- Tres tipos de referencias: context, accountant, secretary
- Posición para ordenar el contexto
- Inmutable como log.messages
Schema:
CREATE TABLE log.message_refs (
id BIGSERIAL PRIMARY KEY,
message_hash CHAR(64) NOT NULL, -- Mensaje que se envía
ref_hash CHAR(64) NOT NULL, -- Hash de la referencia
ref_type log.ref_type NOT NULL, -- context|accountant|secretary
position INT NOT NULL, -- Orden de la referencia
thread_hash CHAR(64), -- Hilo (nullable)
UNIQUE(message_hash, ref_hash)
);
Tipos de referencia:
| Tipo | Descripción |
|---|---|
context |
Mensajes anteriores incluidos como contexto |
accountant |
Registros de libros contables (conocimiento financiero) |
secretary |
Registros de secretaría (conocimiento general) |
Integración con Sistema de Componentes TZZR
El Context Manager referencia las tablas del Sistema de Componentes:
| Campo log.messages | Tabla TZZR | Descripción |
|---|---|---|
owner_id |
ply | Emisor del mensaje (usuario o agente) |
players_id[] |
ply | Receptores del mensaje |
master_player |
ply | Coordinador en sistemas multiagente |
hashtags[] |
hst | Etiquetas semánticas del mensaje |
flag_id |
flg | Jurisdicción o normativa aplicable |
master_item_id |
itm | Item principal relacionado |
item_id[] |
itm | Items adicionales relacionados |
loc_id |
loc | Ubicación física del contexto |
Tablas del Sistema de Componentes
PLY (Players)
├── ply - Sistema (empresas, entidades oficiales)
├── plu - Usuario (contactos personales)
└── plx - Compartidos
HST (Hash Semantic Tagging)
├── hst - Tags del sistema (658)
├── spe - Especificaciones técnicas (145)
├── vsn - Visiones/escenas (84)
├── vue - Valores humanos (21)
└── hsu - Tags de usuario
FLG (Flags/Jurisdicciones)
├── flg - Sistema (65 países/normativas)
└── flu - Usuario
ITM (Items)
├── itm - Sistema
├── itu - Usuario
└── itx - Compartidos
LOC (Locations)
├── loc - Sistema
├── lou - Usuario
└── lox - Compartidos
Cadena de Integridad
Cada mensaje incluye el hash del anterior, formando una cadena verificable:
msg1.hash = SHA256(msg1_data)
msg2.prev_hash = msg1.hash
msg2.hash = SHA256(msg2_data)
msg3.prev_hash = msg2.hash
...
Primer mensaje de sesión: prev_hash = NULL
Función de hash:
CREATE FUNCTION log.sha256(data TEXT) RETURNS CHAR(64) AS $$
BEGIN
RETURN encode(digest(data, 'sha256'), 'hex');
END;
$$ LANGUAGE plpgsql IMMUTABLE;
Protección de Inmutabilidad
Triggers que previenen modificación:
-- Bloquear UPDATE
CREATE TRIGGER protect_messages_update
BEFORE UPDATE ON log.messages
FOR EACH ROW EXECUTE FUNCTION log.prevent_update();
-- Bloquear DELETE
CREATE TRIGGER protect_messages_delete
BEFORE DELETE ON log.messages
FOR EACH ROW EXECUTE FUNCTION log.prevent_delete();
-- Igual para message_refs
Contexto Ambiental (ambient)
Campo JSONB para capturar estado del sistema en el momento del mensaje:
{
"timezone": "Europe/Madrid",
"locale": "es-ES",
"working_directory": "/home/architect/project",
"git_branch": "main",
"active_services": ["gitea", "postgresql"],
"server": "ARCHITECT",
"timestamp_utc": "2026-01-01T12:00:00Z"
}
Solo se incluye cuando es relevante (nullable en la mayoría de mensajes).
Despliegue
Servidores activos:
| Servidor | IP | Base de Datos | Estado |
|---|---|---|---|
| ARCHITECT | 69.62.126.110 | architect | ✅ Activo |
| DECK | 72.62.1.113 | tzzr | ✅ Activo |
| CORP | 92.112.181.188 | tzzr | ✅ Activo |
Extensiones requeridas:
pgcrypto- Para función SHA-256pgvector- Para embeddings (opcional, instalado)
Comando de aplicación:
sudo -u postgres psql -d [database] -c "$(curl -s http://localhost:3000/admin/context-manager/raw/branch/main/schemas/04_log.sql)"
Flujo de Trabajo
1. Insertar mensaje
INSERT INTO log.messages (
hash, session_hash, owner_id, players_id,
content, prev_hash, hashtags, created_at
) VALUES (
log.sha256(...), 'session_abc...', 'owner_hash...',
ARRAY['player1_hash...', 'player2_hash...'],
'Contenido del mensaje', 'prev_msg_hash...',
ARRAY['tag1_hash...'], NOW()
);
2. Añadir referencias de contexto
INSERT INTO log.message_refs (
message_hash, ref_hash, ref_type, position, thread_hash
) VALUES
('msg_hash...', 'context_msg_1...', 'context', 1, 'thread...'),
('msg_hash...', 'context_msg_2...', 'context', 2, 'thread...'),
('msg_hash...', 'accountant_record...', 'accountant', 3, 'thread...');
3. Consultar mensajes con contexto
SELECT
m.content,
m.owner_id,
array_agg(r.ref_hash ORDER BY r.position) as context_refs
FROM log.messages m
LEFT JOIN log.message_refs r ON m.hash = r.message_hash
WHERE m.session_hash = 'session_abc...'
GROUP BY m.id, m.content, m.owner_id
ORDER BY m.created_at;
Ubicación de Documentación
| Ubicación | Ruta |
|---|---|
| Gitea | http://localhost:3000/admin/context-manager |
| R2 | s3://architect/system/context-manager/ |
| Skynet v8 | s3://architect/system/skynet v8/03_MODELO_DATOS/ |
Historial de Cambios
| Versión | Fecha | Cambios |
|---|---|---|
| 8.0 | 2025-12-30 | Versión inicial con 9 tablas |
| 8.1 | 2026-01-01 | Simplificación a 2 tablas (log.messages, log.message_refs). Integración con Sistema de Componentes TZZR. Nuevos campos: owner_id, players_id, master_player, flag_id, master_item_id, item_id, loc_id |
Documento generado por: ARCHITECT Timestamp: 2026-01-01 Versión: Context Manager v8.1