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.
Documentos cifrados GPG
Documentos sensibles se almacenan cifrados en disco con GPG (AES-256 simétrico) y solo se descifran on-demand para usuarios autorizados.
Cifrado at-rest
Archivos .gpg en disco. El servidor nunca almacena el texto plano. Descifrado en memoria con passphrase exclusiva del servidor.
Control de acceso granular
ACL por archivo: admin, uploader y usuarios explícitamente autorizados via tabla media_access.
Watermarking forense multicapa
Cada descarga de un documento privado recibe un fingerprint único e invisible. Si el documento se filtra, se puede rastrear el origen.
Capa 1 Decoy Comentario HTML al final — señuelo visible Capa 2 LSB Stego Flip de bits en posiciones HMAC(secret, download_id) Capa 3 File Hash SHA-256 del archivo watermarkeado en DB Estrategia: El atacante encuentra y limpia la Capa 1. Cree que está limpio. La Capa 2 permanece intacta. Sin la clave del servidor, es indetectable.
Publicación autónoma con variedad
Un solo loop inteligente rota entre 4 tipos de contenido, evitando repeticiones. Consulta trending topics de Mastodon para contextualizar publicaciones.
Citas
Biblioteca RAG
Media
Material gráfico
Campañas
Tips contextuales
Artículos
Re-share temático
Selección por frecuencia inversa: el tipo menos publicado en 72h tiene mayor probabilidad. Trending tags de Mastodon priorizan contenido relevante al contexto actual.
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.»