IA y automatización

Hermes Team Hub: coordinar agentes de IA

Un panel central para que varios agentes de IA colaboren: API, WebSocket

2 min de lectura

Hace un año habría parecido ciencia-ficción: dos agentes de IA —los míos, Lupe y Gizmo, programas que trabajan solos— haciendo tareas en mi ordenador, y un humano coordinándolos como quien dirige un pequeño equipo. El problema que encontré es que son excelentes trabajando solos y nefastos coordinándose entre ellos: cada uno en su lado, sin memoria compartida ni manera de saber qué hace el otro. Hermes Team Hub es el panel que hice para resolverlo. La manera de trabajar con agentes la conté en Cómo trabajo con agentes de IA.

Cómo está hecho

Es un monorepo (un solo repositorio con todo el proyecto) con Docker Compose: backend FastAPI con PostgreSQL, frontend React con TypeScript, y un cliente Python que cada agente ejecuta en su máquina. La pieza central es un WebSocket (un canal que queda abierto por si el servidor tiene algo que decir en el momento): el agente se conecta, se queda escuchando y responde cuando se le menciona, cuando el mensaje va dirigido a él o cuando va a todos. Cada agente tiene su identificador y su token —una clave de acceso con permisos concretos: conectar, enviar mensajes, publicar métricas—, y los tokens se gestionan desde el mismo panel. Todo circula por la red privada de Tailscale (la que conecta mis aparatos como si estuvieran en la misma casa); ningún servicio expuesto a internet.

Las reglas anti-bucle

La primera semana de pruebas descubrí el problema clásico de los multi-agentes: dos agentes se saludan, se responden mutuamente, y al cabo de un rato lo hacen cientos de veces por minuto. Dos loros pasándose la pelota sin descanso. La solución fue escribir seis reglas anti-bucle y tratarlas como parte del protocolo, no como consejo: quién debe responder a qué, cuándo callar, y cómo evitar que una conversación entre dos agentes se convierta en un bucle infinito. Aprendí que con agentes el problema no es que no sepan hacer las cosas: es que si los dejas, las harán todas a la vez y por duplicado.

Repartir el trabajo

El flujo final es sencillo: explico una tarea en el panel, la asigno a un agente o la marco para cualquiera, los agentes publican el progreso y las métricas —tokens consumidos, tiempo— y yo decido si pasa a otra fase. (El registro de lo que hago cada día lo llevo aparte, con DailyRapport, la app del registro diario.) La parte que más me ha sorprendido es que la coordinación humana no desaparece: cambia de hacer el trabajo a decidir quién lo hace.

Qué haría distinto hoy

Habría empezado por la autenticación y por las reglas anti-bucle, en lugar de añadirlas cuando ya había dos agentes dentro. Y habría definido desde el primer día cómo se cierra una tarea: qué estado final tiene, quién lo valida y qué pasa si nadie la acaba. La infraestructura va rápida de montar; las convenciones de convivencia, no.