MadoHub Docs

Routage d'agents

Transmettez automatiquement les sorties entre agents IA avec transformation intelligente.

Le routage d'agents est la fonctionnalité principale de MadoHub. Lorsqu'un agent termine une tâche, MadoHub peut automatiquement extraire le résultat, le transformer en prompt actionnable et le transmettre à un autre agent.

Comment ça fonctionne

  1. Déclencheur — Un tile source connecté se déclenche selon le type de déclencheur configuré (détection d'inactivité, complétion, correspondance de mot-clé ou continu).
  2. Extraction — MadoHub lit la dernière réponse de l'agent. Pour Claude Code, cela utilise les fichiers de session JSONL pour une extraction propre. Pour les autres agents, il lit directement la sortie du terminal.
  3. Transformation — La sortie extraite est transformée en prompt pour l'agent cible. Cela peut utiliser la réécriture par IA, l'enrobage par template ou le transfert brut.
  4. Livraison — Le prompt transformé est saisi dans le terminal cible ligne par ligne avec des délais semblables à ceux d'un humain (50–80ms par ligne), puis soumis avec la séquence Entrée adaptée à l'agent.

Résolution des sessions JSONL

Pour Claude Code, MadoHub extrait des réponses propres en lisant les fichiers journaux de session :

  1. Repère le pane tmux du terminal, puis parcourt l'arbre des processus (ps -eo pid=,ppid=,comm=) en largeur jusqu'au premier descendant dont le nom de commande contient claude/codex/amp/opencode — ce PID est le processus de l'agent.
  2. Lit ~/.claude/sessions/{PID}.json (indexé par le PID de l'agent, pas par le session id) et en extrait le champ sessionId.
  3. Parcourt chaque sous-répertoire de ~/.claude/projects/ à la recherche d'un fichier nommé {sessionId}.jsonl — c'est la transcription.
  4. Analyse le JSONL et extrait le dernier message de l'assistant.

Cela donne un contenu bien plus propre que le scraping brut du terminal, en évitant les codes ANSI et les artefacts de formatage.

Séparément, cwd_to_project_dir() fait correspondre le répertoire de travail d'un tile à un répertoire de projet en remplaçant / par -, avec un repli sur une recherche de sous-chaîne en l'absence de correspondance exacte.

Types de déclencheurs

TypeComportement
on-idleAttend une correspondance de mot-clé de complétion (IDLE_DELAY_MS), puis 8 secondes de silence. Par défaut et le plus fiable.
on-completeTraité de manière identique à on-idle : attend la même correspondance de mot-clé de complétion, puis le même délai de silence de 8 secondes avant de se déclencher.
on-keywordSe déclenche lorsqu'un pattern regex personnalisé correspond dans la sortie.
alwaysDiffuse en continu toute la nouvelle sortie du terminal.

Types de transformation

TypeDescription
ai-routingUtilise un modèle IA pour générer un prompt contextuel pour l'agent cible. Nécessite une clé API dans les paramètres. Prend en charge les templates personnalisés.
prompt-wrapEnrobe la sortie dans un template fourni par l'utilisateur. Variables : {output}, {round}, {maxRounds}, {source}.
full-outputEnvoie les 30 dernières lignes de la sortie du terminal telles quelles.
rawEnvoie les 10 dernières lignes de la sortie du terminal.
summaryEnvoie un résumé généré par IA de la sortie.

La répartition du routage utilise par défaut le chemin madoagent (également sélectionnables : legacy, shadow).

Livraison du contenu

MadoHub saisit le contenu dans le terminal cible ligne par ligne avec des délais de 50–80ms pour simuler la saisie humaine. Le comportement de la touche Entrée est spécifique à chaque agent :

  • Claude Code, Codex, Amp, OpenCode : Double retour chariot (\r\r) pour soumettre. Codex a un délai initial de 800ms avec 200ms entre les deux pressions ; les autres agents utilisent un délai initial de 500ms.
  • Shell : Saut de ligne unique (\n) pour soumettre.

Protection contre les boucles

Les connexions de routage disposent de garde-fous intégrés pour prévenir les boucles infinies :

ParamètreDéfautPlageDescription
maxRounds51–20Nombre maximum de cycles de routage avant désactivation automatique.
cooldownMs3s1–30sDélai minimum entre les déclencheurs.
stopKeyword—N'importe quelle chaîneArrête le routage lorsque détecté (p.ex., "LGTM").

Exemple de flux de travail

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

L'Agent 1 refactorise le code. À la complétion, MadoHub lit la réponse JSONL, utilise le routage IA pour générer un prompt de révision avec les fichiers et changements spécifiques, et le livre à l'Agent 2.

On this page