- Added comprehensive infrastructure overview - Server documentation: ARCHITECT, DECK, CORP, HST - Service documentation: Odoo, Directus, Context Manager - Includes configuration, monitoring, and backup procedures
297 lines
5.8 KiB
Markdown
297 lines
5.8 KiB
Markdown
# Context Manager - Sistema de Gestión de Contexto
|
|
|
|
## Información General
|
|
|
|
- **Servidor**: ARCHITECT (69.62.126.110)
|
|
- **Ubicación**: /home/architect/captain-claude/context-manager/
|
|
- **Tecnología**: Python + PostgreSQL
|
|
- **Base de datos**: PostgreSQL (local)
|
|
|
|
## Descripción
|
|
|
|
Context Manager es un sistema de gestión de contexto diseñado para coordinar agentes de IA en el sistema TZZR. Proporciona:
|
|
|
|
- Almacenamiento centralizado de contexto
|
|
- Control de acceso a contexto entre agentes
|
|
- Versionamiento de contexto
|
|
- Auditoría de cambios
|
|
- Integración con múltiples proveedores de IA (Anthropic, OpenAI)
|
|
|
|
## Arquitectura
|
|
|
|
### Componentes
|
|
|
|
```
|
|
context-manager/
|
|
├── schemas/ # Definiciones de base de datos
|
|
│ ├── 00_base.sql
|
|
│ ├── 01_immutable_log.sql
|
|
│ ├── 02_context_manager.sql
|
|
│ └── 03_algorithm_engine.sql
|
|
├── src/
|
|
│ ├── __init__.py
|
|
│ ├── database.py # Conexión a PostgreSQL
|
|
│ ├── models.py # Modelos de datos
|
|
│ ├── context_selector.py
|
|
│ └── providers/ # Integraciones con IA
|
|
│ ├── base.py
|
|
│ ├── anthropic.py
|
|
│ └── openai.py
|
|
└── tests/ # Tests unitarios
|
|
```
|
|
|
|
### Base de Datos
|
|
|
|
**Host**: localhost (ARCHITECT)
|
|
**Puerto**: 5432
|
|
**Base de datos**: tzzr_db
|
|
|
|
**Tablas principales**:
|
|
- `context` - Almacenamiento de contexto
|
|
- `agents` - Registro de agentes
|
|
- `access_log` - Auditoría de accesos
|
|
- `context_history` - Versionamiento
|
|
|
|
## Instalación
|
|
|
|
### Requisitos
|
|
- Python 3.9+
|
|
- PostgreSQL 12+
|
|
- pip
|
|
|
|
### Setup
|
|
```bash
|
|
cd /home/architect/captain-claude/context-manager/
|
|
|
|
# Crear entorno virtual
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
# Instalar dependencias
|
|
pip install -r requirements.txt
|
|
|
|
# Inicializar base de datos
|
|
python -m src.database init
|
|
```
|
|
|
|
## Configuración
|
|
|
|
### Variables de Entorno
|
|
Archivo: `/home/architect/captain-claude/context-manager/.env`
|
|
|
|
```env
|
|
# PostgreSQL
|
|
DATABASE_URL=postgresql://architect:password@localhost:5432/tzzr_db
|
|
|
|
# Providers de IA
|
|
ANTHROPIC_API_KEY=sk-...
|
|
OPENAI_API_KEY=sk-...
|
|
|
|
# Configuración del sistema
|
|
CONTEXT_MANAGER_PORT=5000
|
|
LOG_LEVEL=INFO
|
|
```
|
|
|
|
## API
|
|
|
|
### Endpoints Principales
|
|
|
|
#### Crear Contexto
|
|
```bash
|
|
POST /api/context
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"agent_id": "agent_name",
|
|
"context_data": {
|
|
"key": "value"
|
|
},
|
|
"metadata": {
|
|
"priority": "high"
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Obtener Contexto
|
|
```bash
|
|
GET /api/context/{context_id}
|
|
```
|
|
|
|
#### Actualizar Contexto
|
|
```bash
|
|
PATCH /api/context/{context_id}
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"context_data": {
|
|
"key": "new_value"
|
|
}
|
|
}
|
|
```
|
|
|
|
#### Eliminar Contexto
|
|
```bash
|
|
DELETE /api/context/{context_id}
|
|
```
|
|
|
|
#### Obtener Historial
|
|
```bash
|
|
GET /api/context/{context_id}/history
|
|
```
|
|
|
|
#### Listar Contextos de Agente
|
|
```bash
|
|
GET /api/agent/{agent_id}/contexts
|
|
```
|
|
|
|
## Uso desde Agentes
|
|
|
|
### Ejemplo Python
|
|
```python
|
|
from src.database import DatabaseManager
|
|
from src.context_selector import ContextSelector
|
|
|
|
# Conectar a base de datos
|
|
db = DatabaseManager()
|
|
|
|
# Crear contexto
|
|
context = db.create_context(
|
|
agent_id="mi_agente",
|
|
context_data={"información": "valor"},
|
|
metadata={"priority": "high"}
|
|
)
|
|
|
|
# Obtener contexto
|
|
contexto = db.get_context(context_id)
|
|
|
|
# Actualizar
|
|
db.update_context(context_id, new_data)
|
|
|
|
# Seleccionar contexto relevante
|
|
selector = ContextSelector(db)
|
|
contextos_relevantes = selector.select_for_agent(
|
|
agent_id="mi_agente",
|
|
query="búsqueda"
|
|
)
|
|
```
|
|
|
|
## Proveedores de IA
|
|
|
|
### Anthropic
|
|
```python
|
|
from src.providers.anthropic import AnthropicProvider
|
|
|
|
provider = AnthropicProvider(api_key="sk-...")
|
|
response = provider.process_with_context(
|
|
model="claude-opus-4.5-20251101",
|
|
messages=[...],
|
|
context=context_data
|
|
)
|
|
```
|
|
|
|
### OpenAI
|
|
```python
|
|
from src.providers.openai import OpenAIProvider
|
|
|
|
provider = OpenAIProvider(api_key="sk-...")
|
|
response = provider.process_with_context(
|
|
model="gpt-4",
|
|
messages=[...],
|
|
context=context_data
|
|
)
|
|
```
|
|
|
|
## Esquemas de Base de Datos
|
|
|
|
### Tabla: context
|
|
```sql
|
|
CREATE TABLE context (
|
|
id UUID PRIMARY KEY,
|
|
agent_id VARCHAR NOT NULL,
|
|
context_data JSONB NOT NULL,
|
|
metadata JSONB,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
version INTEGER DEFAULT 1
|
|
);
|
|
```
|
|
|
|
### Tabla: access_log
|
|
```sql
|
|
CREATE TABLE access_log (
|
|
id SERIAL PRIMARY KEY,
|
|
context_id UUID REFERENCES context(id),
|
|
agent_id VARCHAR NOT NULL,
|
|
action VARCHAR NOT NULL,
|
|
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
```
|
|
|
|
## Monitoreo y Logs
|
|
|
|
### Logs de Aplicación
|
|
```bash
|
|
tail -f /var/log/captain-claude/context-manager.log
|
|
```
|
|
|
|
### Estadísticas
|
|
```bash
|
|
# Número de contextos por agente
|
|
psql -U architect tzzr_db -c "SELECT agent_id, COUNT(*) FROM context GROUP BY agent_id;"
|
|
|
|
# Últimos accesos
|
|
psql -U architect tzzr_db -c "SELECT * FROM access_log ORDER BY timestamp DESC LIMIT 10;"
|
|
```
|
|
|
|
## Backup y Recuperación
|
|
|
|
### Backup
|
|
```bash
|
|
pg_dump -U architect tzzr_db > /home/backups/context_manager_backup.sql
|
|
|
|
# Subir a R2
|
|
aws s3 cp /home/backups/context_manager_backup.sql s3://architect/backups/ \
|
|
--endpoint-url https://7dedae6030f5554d99d37e98a5232996.r2.cloudflarestorage.com
|
|
```
|
|
|
|
### Restaurar
|
|
```bash
|
|
psql -U architect tzzr_db < context_manager_backup.sql
|
|
```
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
cd /home/architect/captain-claude/context-manager/
|
|
|
|
# Ejecutar tests
|
|
pytest tests/
|
|
|
|
# Tests con coverage
|
|
pytest --cov=src tests/
|
|
|
|
# Tests específicos
|
|
pytest tests/test_database.py -v
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Error de conexión a BD
|
|
```python
|
|
from src.database import DatabaseManager
|
|
db = DatabaseManager()
|
|
db.test_connection()
|
|
```
|
|
|
|
### Logs detallados
|
|
```bash
|
|
# Cambiar nivel de log
|
|
export LOG_LEVEL=DEBUG
|
|
python -m src.main
|
|
```
|
|
|
|
## Últimas Actualizaciones
|
|
|
|
- 2025-12-30: Documentación inicial
|
|
- 2025-12-28: Implementación inicial de Context Manager
|