Formicaio
Un equipo de agentes especializados para tus objetivos de cada día — recuerdan el contexto, citan sus fuentes y miden el progreso
Formicaio nace de una pregunta que me hacía cada mañana: «¿qué puedo comer esta mañana?». Para responderla bien hacen falta el plan de entrenamiento, el día de la semana, lo que hay en la despensa y el objetivo — y con un chat de IA genérico había que explicarlo todo desde cero, cada vez: un cuarto de hora para decidir una comida, para luego recibir un consejo que no sabía nada de mí. Formicaio parte del supuesto contrario: el contexto es un dato estructurado, no un texto que reescribir. Es un asistente personal hecho de agentes especializados, agrupados en equipos — atletismo, estudio, cualquier otro ámbito — que responden en pocos segundos con tu contexto, dicen de qué fuente viene cada consejo y llevan la cuenta de lo que haces de verdad.
## Equipos, agentes y fuentes
Un equipo es un ámbito con su estado compartido: objetivos, métricas, compromisos recurrentes, tipos de observación. Dentro hay uno o varios agentes, cada uno con sus instrucciones, sus principios y sus documentos. Antes de cada respuesta, una lectura estructurada de la pregunta elige al agente que debe responder y reconoce lo que hay que registrar; después el agente responde citando los pasajes de los que saca el consejo.
## Un núcleo que no sabe nada de atletismo
El requisito más estricto era la agnosticidad: un ámbito nuevo tiene que añadirse solo con configuración, sin tocar el código. El núcleo no conoce ni la pista ni los exámenes, y una comprobación en la CI falla si un término del piloto aparece en sus módulos. La configuración de un equipo está descrita por un JSON Schema versionado y validada con Ajv; cada guardado publica una nueva versión inmutable, y cada turno registra la que ha usado. El segundo equipo, estudio, nació así: un archivo de configuración, cero líneas de código. Hoy equipos, agentes, métricas y tipos de observación se crean y se modifican directamente desde la app, a partir de plantillas.
## El turno, de la pregunta a la respuesta
Cada pregunta es un turno con una traza completa: la versión de la configuración, el contexto enviado al modelo, los intentos, las comprobaciones de reglas, los tokens y el coste. El contexto se ensambla leyendo el núcleo en el mismo proceso, porque dentro de un turno el sistema tiene que leer sus propias escrituras: es el motivo principal por el que la arquitectura es un monolito modular y no un conjunto de servicios.
## Tu clave, tu modelo
Formicaio no tiene una clave propia. Cada usuario elige el proveedor en los ajustes — Anthropic, OpenAI o DeepSeek — y pega su propia clave, que se sella con AES-256-GCM en un esquema aparte. Hay un modelo por proveedor, detrás de un adaptador común con su propio ciclo de reintentos dentro del presupuesto de latencia del turno. Cada respuesta la paga quien la pide, y antes de elegir la app explica con claridad cómo trata los datos cada proveedor.
## Medir, no adivinar
El proyecto tiene un gate semanal con dos números: la adherencia, es decir, la proporción de días de compromiso en los que el consejo se sigue de verdad (el objetivo es al menos el 80 %), y el tiempo desde la pregunta hasta la respuesta mostrada (p95 por debajo de dos minutos, frente al cuarto de hora del punto de partida). La calidad de las respuestas se evalúa sobre un conjunto de preguntas congelado, en una copia desechable de la base de datos, nunca en producción.
## Diseño e identidad visual
La app es una PWA instalable, pensada para el móvil pero cómoda también en el escritorio, con una estética suave y un único azul como color primario. El logotipo es un hormiguero en sección: el montículo arriba, las cámaras dentro, las galerías recortadas hasta la entrada, de modo que en cualquier superficie se ve el fondo a través. En el nombre, la «AI» de FORMICAIO va en el color de acento.
## Stack tecnológico
Un monorepo TypeScript gestionado con pnpm: el backend, la PWA y un cliente de API generado a partir del contrato OpenAPI del backend, para que front-end y back-end no puedan divergir en silencio.
## En producción
Funciona en contenedores Docker en un servidor de la Unión Europea. Las imágenes las construye la CI, etiquetadas con el SHA del commit, y cada commit en main pasa a producción por sí solo: de la CI el servidor acepta una única cosa, el despliegue de un commit de main, siempre con una copia de seguridad de la base de datos antes de las migraciones. La base de datos está en un volumen cifrado con LUKS2, y las copias nocturnas salen del servidor ya cifradas con age, hacia Cloudflare R2.
Formicaio es un proyecto personal, ideado, diseñado y desarrollado en solitario, y su primer usuario soy yo. Los documentos del proyecto — discovery, estimación, modelo de dominio, arquitectura, plan de implementación y plan de pruebas — los escribió donumAI y yo los aprobé etapa por etapa. El criterio con el que lo juzgo está escrito en el gate: cuatro semanas de uso diario, con una adherencia de al menos el 80 %. Lo demás son intenciones.