En bref
Le routage introduit une logique conditionnelle dans le flux d’exécution d’un agent : au lieu de suivre un chemin fixe, le système évalue le contexte et sélectionne dynamiquement l’action, l’outil ou le sous-agent le plus adapté. C’est le mécanisme qui transforme un exécuteur statique en système adaptatif. Quatre mécanismes principaux coexistent — LLM-based, embedding-based, rule-based et ML classifier — avec des profils de coût, de vitesse et de flexibilité différents.
Pourquoi le routage est structurant
Imaginez une réception d’hôtel : une seule personne accueille tous les clients, peu importe leur demande (chambre, restauration, problème, taxi). Sans triage, elle traite toutes les demandes pareillement, mal. Un standard d’aéroport est différent : à l’arrivée, des agents orientent chaque passager vers le bon comptoir selon sa destination. C’est le routage : choisir dynamiquement le traitement adapté à l’input.
Un pipeline linéaire (prompt chaining) traite toutes les requêtes de la même façon. Dès que le système doit gérer des requêtes hétérogènes — une question de facturation, une demande technique, un signalement d’incident — la rigidité devient un problème. Le routage résout cette limite en ajoutant une couche de décision conditionnelle.
Gulli (2025) le formule ainsi : “Routing introduces conditional logic into an agent’s operational framework, enabling a shift from a fixed execution path to a model where the agent dynamically evaluates specific criteria to select from a set of possible subsequent actions.”
Le routage n’est pas une optimisation de surface. C’est une condition architecturale pour tout système qui doit répondre à des inputs variables avec des traitements différenciés.
Les quatre mécanismes
1. LLM-based routing
Le modèle de langue lui-même analyse l’input et produit un identifiant de route ou une instruction d’acheminement. Avantage : compréhension fine du langage naturel, gestion des formulations ambiguës. Inconvénient : latence et coût à chaque décision de routage, comportement non déterministe.
Usage typique : classification d’intention sur des requêtes complexes, ambiguës ou multilingues où une règle explicite est difficile à écrire.
2. Embedding-based routing
La requête est convertie en vecteur d’embedding, puis comparée par similarité cosinus aux embeddings représentant chaque route ou capacité disponible. La route dont l’embedding est le plus proche sémantiquement est sélectionnée.
Avantage : flexibilité sémantique sans appel LLM à chaque requête. Inconvénient : la qualité dépend du modèle d’embedding et de la construction des embeddings de référence. Sensible aux formulations très éloignées des exemples d’entraînement.
Usage typique : systèmes avec un grand nombre de routes, où la similarité sémantique est un critère pertinent.
3. Rule-based routing
Des règles prédéfinies (if-else, switch, regex sur mots-clés, vérification de données structurées) déterminent l’acheminement. C’est le mécanisme le plus rapide et le plus déterministe.
Avantage : vitesse d’exécution, coût quasi nul, comportement entièrement prévisible et auditable. Inconvénient : rigidité — toute nouvelle variante requiert une règle explicite, et les formulations imprévues ne sont pas couvertes.
Usage typique : catégorisation sur des critères stricts et stables (type de document, langue détectée, plage de valeur numérique).
4. ML classifier
Un modèle discriminatif spécialisé, entraîné sur corpus étiqueté, prend la décision de routage. La logique est encodée dans les poids du modèle, pas dans un prompt. Gulli mentionne la génération de données synthétiques par LLM pour construire ce corpus d’entraînement : le LLM participe à la phase offline, pas à l’inférence temps réel.
Avantage : inférence rapide, performances élevées sur les domaines couverts par l’entraînement, coût marginal bas à l’échelle. Inconvénient : nécessite un corpus étiqueté, réentraînement si le domaine évolue, moins adaptable que le LLM-based sur des cas hors distribution.
Usage typique : systèmes à fort volume où la latence et le coût par requête sont critiques.
En clair : les 4 mécanismes vont du plus rapide/rigide (rule-based, < 1 ms par décision) au plus flexible/coûteux (LLM-based, 100-500 ms par décision). Aucun n’est “meilleur” — ils correspondent à des contraintes différentes. En production grande échelle, on combine souvent : rule-based en première passe pour les cas évidents, LLM-based en fallback pour les cas ambigus.
Routage sur l’input vs routage sur l’état
Cette distinction est souvent négligée mais elle change l’architecture.
Routage sur l’input : la décision se prend uniquement à partir de la requête entrante. C’est le cas des quatre mécanismes décrits ci-dessus. Le système évalue ce qui arrive et sélectionne un chemin.
Routage sur l’état : la décision dépend de l’état global accumulé du système, pas seulement de la dernière entrée. C’est le paradigme des graphes stateful (LangGraph). Gulli note : “LangGraph’s state-based graph architecture is particularly well-suited for complex routing scenarios where decisions are contingent upon the accumulated state of the entire system.”
Un exemple concret : un agent de support qui a déjà essayé deux solutions sans succès ne doit pas proposer une troisième solution du même type — le routage sur état lui permet de lire l’historique de la session et d’escalader vers un humain. Un routage sur input seul verrait simplement la dernière question et ignorerait le contexte accumulé.
En clair : routage sur input = “quelle catégorie pour cette demande ?”. Routage sur état = “quelle action sachant tout l’historique de cette session ?”. Le second est plus puissant mais demande de maintenir un état cohérent — c’est le pari architectural des graphes stateful (LangGraph).
Patterns d’implémentation
Coordinator-Delegate
Un agent coordinateur reçoit toutes les requêtes, les route vers des sous-agents spécialisés (par exemple : agent facturation, agent technique, agent support général). Chaque sous-agent dispose de capacités discrètes et d’un contexte adapté à son domaine.
Ce pattern est le plus courant dans les architectures multi-agents. Il implique que le coordinateur soit fiable : une erreur de routage envoie la requête au mauvais spécialiste.
Multi-level routing
Le routage s’applique à plusieurs niveaux de l’opération : classification initiale de la requête, décisions intermédiaires dans la chaîne de traitement, sélection d’outil à l’intérieur d’une sous-routine. Chaque niveau peut utiliser un mécanisme différent selon ses contraintes de vitesse et de précision.
Dispatch cognitif
Cas particulier du routage : acheminer une tâche vers le modèle de langue dont la taille est adaptée au type de cognition requise. Une extraction simple va vers un modèle léger (rapide, peu coûteux) ; une analyse de contradictions va vers un modèle plus lourd. La décision de routage encode une politique de ressources.
Choisir le bon mécanisme de routage
| Contexte | Recommandation | Pourquoi |
|---|---|---|
| Catégorisation stable, critères stricts (langue détectée, format) | Rule-based | < 1 ms par décision, auditabilité totale, coût nul |
| 100+ routes, similarité sémantique pertinente | Embedding-based | Pas d’appel LLM par requête, scalable, flexibilité conservée |
| Volume élevé, domaine stable, corpus disponible | ML classifier | Inférence rapide, coût marginal bas, performances élevées sur domaine |
| Requêtes ambiguës, formulations imprévues | LLM-based | Compréhension fine, gestion nuance — accepter coût et latence |
| Décisions contextuelles (session multi-tour, escalade) | Routage sur état (LangGraph) | Tient compte de tout l’historique, pas seulement de la dernière entrée |
Forces et limites
| Dimension | Forces | Limites |
|---|---|---|
| LLM-based | Compréhension nuancée, zéro configuration initiale | Latence, coût, non déterministe |
| Embedding-based | Flexibilité sémantique, scalable | Qualité dépend des embeddings de référence |
| Rule-based | Vitesse, auditabilité totale | Rigide, maintenance manuelle |
| ML classifier | Rapide, coût marginal bas | Nécessite corpus, réentraînement si dérive |
| Routage sur état | Décisions contextuellement cohérentes | Complexité accrue, débogage plus difficile |
Le choix du mécanisme n’est pas absolu : les systèmes en production combinent souvent plusieurs niveaux. Un filtre rule-based rapide élimine les cas triviaux avant de passer au LLM pour les cas ambigus.
Ce qu’il faut retenir
- Le routage est ce qui transforme un pipeline linéaire en système adaptatif : sans lui, tous les inputs reçoivent le même traitement, quelle que soit leur nature.
- Quatre mécanismes coexistent avec des profils différents — rule-based (déterministe et rapide), embedding-based (flexibilité sémantique), ML classifier (scalabilité), LLM-based (compréhension fine) — et peuvent se combiner.
- La distinction routage sur input vs routage sur état est architecturale : le second nécessite de maintenir un état global explicite (paradigme LangGraph) et permet des décisions cohérentes sur une session entière.
- Chaque mécanisme a ses limites : rule-based casse sur les cas non prévus, LLM-based est coûteux, ML classifier dérive si le domaine évolue.
- Le routing n’est pas une couche d’optimisation ajoutée après coup — c’est une décision de conception qui détermine la capacité du système à gérer la variabilité des inputs en production.