Showcase técnico
Arquitectura multi-agente con gobernanza colectiva para comunicación solidaria.
Stack
Backend
Rust (Axum) · PostgreSQL · Redis · SQLx
Frontend
Astro · Vue 3 · Tailwind CSS · Leaflet
IA
Claude Haiku (clasificación, composición, GIS) · Claude Sonnet (revisión, asamblea)
Canales
Mastodon · Telegram · Twitter/X · LinkedIn · RSS
Sistema de 9 agentes
Cada agente tiene una responsabilidad atómica dentro del flujo editorial. La coordinación es secuencial donde importa (el Reviewer bloquea publicación) y paralela donde conviene (clasificación + análisis de sentimiento).
Clasificador
Evalúa toxicidad de comentarios (escala 1-5)
HaikuCompositor
Genera borradores de respuesta; 25% incluye citas de la biblioteca
HaikuReviewer
Aprueba o rechaza antes de publicar. Bloqueante.
SonnetPublisher
Ejecuta publicación a Telegram y Mastodon
GIS
Detecta referencias geográficas para enriquecer el mapa interactivo
HaikuBibliotecario
Gestiona citas; publica autónomamente cada 16-28 horas
Observador
Monitoreo pasivo de interacciones y contexto
HaikuSentimiento
Analiza sentimiento global de los comentarios entrantes
HaikuNarrador
Genera narrativas y resúmenes contextuales
HaikuPipeline de comentarios
Poll (cada 2-5 min)
│
├─► Clasificador (toxicidad 1-5)
│ ├─ Nivel 1 → eliminar + bloquear
│ ├─ Nivel 2 → reportar
│ └─ Nivel 3-5 ──┐
│ ▼
├─► Sentimiento ──► Compositor ──► Reviewer ⛔ ──► Publisher
│ (máx 420 chars) (bloqueante) ├► Mastodon
│ └► Telegram
└─► Observador (pasivo, registra contexto)
trace_id compartido en todo el flujo Gobernanza: Sistema de Soviets
Los agentes no operan como individuos aislados. Se organizan en soviets (consejos) que gestionan memoria colectiva, personalidad y estrategia narrativa.
Tonificar
Cada soviet tiene un perfil de tono versionado que se inyecta en los prompts antes de cada ejecución. Los tonos disponibles:
Cada tono transfiere ADN intelectual al agente: el tono poético invoca a Darwish (la memoria como resistencia), Weil y Freire; el activista a Walsh (verificación de datos), Galeano y Fanon; el técnico a Beer (propósito sistémico) y Luhmann.
Memoria dual
- Memoria privada — táctica, por soviet: observaciones, contexto local
- Memoria organizacional — compartida: posiciones, líneas rojas, narrativas consensuadas
Estrategia ajedrez/go
Los agentes asumen roles estratégicos inspirados en ajedrez y go para la coordinación narrativa:
Rey
Reina
Torre
Alfil
Caballo
Peón
Observabilidad y auditoría
- Cada ejecución registrada en
agent_runscontrace_id, hash del prompt, estado, entrada/salida/error - Políticas versionadas en
agent_policies: publicación, moderación, posteo autónomo - Permisos por agente en
agent_tool_permissions(Tool Gateway) - Detección de deriva de personalidad (
personality_drift_log) - Asamblea semanal: cada agente se autoevalúa (Haiku), un coordinador sintetiza (Sonnet)
Modelo de datos
PostgreSQL con 14 tablas dedicadas al sistema de soviets, además del esquema editorial y de canales. Migraciones gestionadas con SQLx.
Código abierto
Todo el código fuente está disponible en GitLab. Contribuciones bienvenidas.
«La tecnología al servicio de la solidaridad no es neutral: es un acto político de infraestructura.»