MadoHub Docs

Enrutamiento de agentes

Pasa automáticamente resultados entre agentes de IA con transformación inteligente.

El enrutamiento de agentes es la función principal de MadoHub. Cuando un agente completa una tarea, MadoHub puede extraer automáticamente el resultado, transformarlo en un prompt accionable y entregarlo a otro agente.

Cómo funciona

  1. Disparador — Un tile fuente conectado se activa según el tipo de disparador configurado (detección de inactividad, completado, coincidencia de palabras clave o continuo).
  2. Extracción — MadoHub lee la última respuesta del agente. Para Claude Code, usa archivos de sesión JSONL para una extracción limpia. Para otros agentes, lee la salida del terminal directamente.
  3. Transformación — La salida extraída se transforma en un prompt para el agente destino. Se puede usar reescritura con IA, envoltorio de plantilla o paso directo.
  4. Entrega — El prompt transformado se escribe en el terminal destino línea por línea con retrasos similares a los humanos (50–80ms por línea), y se envía con la secuencia Enter apropiada para el agente.

Resolución de sesiones JSONL

Para Claude Code, MadoHub extrae respuestas limpias leyendo los archivos de registro de sesión:

  1. Localiza el pane de tmux del terminal y recorre el árbol de procesos (ps -eo pid=,ppid=,comm=) en anchura hasta el primer descendiente cuyo nombre de comando contenga claude/codex/amp/opencode; ese PID es el proceso del agente.
  2. Lee ~/.claude/sessions/{PID}.json (indexado por el PID del agente, no por el session id) y extrae su campo sessionId.
  3. Recorre cada subdirectorio de ~/.claude/projects/ en busca de un archivo llamado {sessionId}.jsonl: esa es la transcripción.
  4. Analiza el JSONL y extrae el último mensaje del asistente.

Esto proporciona contenido mucho más limpio que el raspado directo del terminal, evitando códigos ANSI y artefactos de formato.

Por separado, cwd_to_project_dir() mapea el directorio de trabajo de un tile a un directorio de proyecto sustituyendo / por -, recurriendo a una búsqueda por subcadena cuando no hay coincidencia exacta.

Tipos de disparador

TipoComportamiento
on-idleEspera una coincidencia de palabra clave de completado (IDLE_DELAY_MS), luego 8 segundos de silencio. Por defecto y el más fiable.
on-completeSe maneja igual que on-idle: espera la misma coincidencia de palabra clave de completado y el mismo retraso de silencio de 8 segundos antes de activarse.
on-keywordSe activa cuando un patrón regex personalizado coincide en la salida.
alwaysTransmite toda la nueva salida del terminal de forma continua.

Tipos de transformación

TipoDescripción
ai-routingUsa un modelo de IA para generar un prompt contextual para el agente destino. Requiere clave API en configuración. Admite plantillas personalizadas.
prompt-wrapEnvuelve la salida en una plantilla proporcionada por el usuario. Variables: {output}, {round}, {maxRounds}, {source}.
full-outputEnvía las últimas 30 líneas de la salida del terminal tal cual.
rawEnvía las últimas 10 líneas de la salida del terminal.
summaryEnvía un resumen generado por IA de la salida.

El despacho de enrutamiento usa por defecto la ruta madoagent (también se puede elegir legacy o shadow).

Entrega de contenido

MadoHub escribe el contenido en el terminal destino línea por línea con retrasos de 50–80ms para simular la entrada humana. El comportamiento de la tecla Enter es específico de cada agente:

  • Claude Code, Codex, Amp, OpenCode: Doble retorno de carro (\r\r) para enviar. Codex tiene un retraso previo de 800ms con 200ms entre las dos pulsaciones; los demás agentes usan un retraso previo de 500ms.
  • Shell: Salto de línea único (\n) para enviar.

Protección contra bucles

Las conexiones de enrutamiento tienen salvaguardas integradas para prevenir bucles infinitos:

ConfiguraciónPor defectoRangoDescripción
maxRounds51–20Máximo de ciclos de enrutamiento antes de la desactivación automática.
cooldownMs3s1–30sRetraso mínimo entre disparadores.
stopKeyword—Cualquier cadenaDetiene el enrutamiento cuando se detecta (p.ej., "LGTM").

Ejemplo de flujo de trabajo

Terminal 1 (Claude Code)          Terminal 2 (Claude Code)
┌──────────────────────┐    →    ┌──────────────────────┐
│ "Refactor auth module"│         │ Receives:            │
│                       │         │ "Review the refactor │
│ ✓ Done — 3 files     │         │  in src/auth/..."    │
└──────────────────────┘         └──────────────────────┘

El Agente 1 refactoriza el código. Al completarse, MadoHub lee la respuesta JSONL, usa el enrutamiento de IA para generar un prompt de revisión con los archivos y cambios específicos, y lo entrega al Agente 2.

On this page