Agent de routage : envoyer chaque tâche au bon agent

Routez chaque demande vers le meilleur agent ou outil selon des critères explicites pour gagner en qualité, vitesse et coût.
Sur cette page
  1. Essence du pattern
  2. Problème
  3. Solution
  4. Comment ça fonctionne
  5. En code, cela ressemble à ça
  6. À quoi cela ressemble pendant l'exécution
  7. Quand c'est adapté - et quand ça ne l'est pas
  8. Adapté
  9. Non adapté
  10. Quand utiliser Routing (vs autres patterns)
  11. Comment combiner avec d'autres patterns
  12. En bref
  13. Avantages et Inconvénients
  14. FAQ
  15. Et ensuite

Essence du pattern

Agent Routing est un pattern dans lequel un agent choisit quel autre agent ou outil doit exécuter une tâche.

Quand l'utiliser : quand il faut d'abord choisir le meilleur exécutant ou outil pour une tâche précise.


Au lieu de tout exécuter lui-même, il :

  • analyse la tâche
  • détermine qui peut l'exécuter
  • la délègue à l'agent approprié

Agent Routing : choix entre agents

Problème

Imagine qu'il y ait plusieurs spécialistes dans le système :

  • UI Agent pour les tâches frontend
  • Finance Agent pour les calculs financiers
  • Code Agent pour les changements techniques

L'utilisateur envoie des requêtes différentes, mais sans étape de routing, elles sont envoyées non pas selon la spécialisation, mais à un exécutant "au hasard".

Le problème n'est pas que les agents sont faibles, mais que le système ne sait pas choisir le bon exécutant de façon stable.

Résultat :

  • une requête spécialisée part vers le mauvais agent
  • la qualité baisse à cause de la perte de spécialisation
  • le temps augmente à cause d'essais supplémentaires "hors domaine"
  • le chemin devient imprévisible

Voilà le problème : sans étape de routing contrôlée, même une tâche simple peut être exécutée par le "mauvais" agent et produire un résultat faible.

Solution

Routing ajoute une étape séparée de sélection de l'exécutant avant l'exécution.

Analogie : c'est comme un dispatch dans un centre de service. Le dispatch ne répare pas lui-même, il décide vers quel spécialiste envoyer la demande. C'est exactement ce qui réduit les erreurs et les réaffectations inutiles.

Principe clé : d'abord le bon choix d'exécutant, ensuite la délégation de la tâche.

Le Router ne fait pas le travail lui-même. Son rôle est de contrôler la route :

  1. Analyse (Analyze) : classifier la requête
  2. Décision (Decide) : choisir l'agent selon routing-rules
  3. Délégation (Delegate) : transmettre la tâche à l'exécutant
  4. Re-routage (Fallback, si nécessaire) : changer d'exécutant en cas de mismatch ou d'erreur

Le schéma ci-dessous montre la route de base : sélection d'un seul exécutant et transmission de la tâche.

Cela donne :

  • une meilleure précision grâce à la spécialisation
  • moins d'étapes inutiles et une latence plus faible
  • une route transparente pour le debug et le contrôle
  • un risque plus faible d'erreur de choix d'exécutant

Fonctionne bien si :

  • des règles de classification claires existent
  • les rôles des agents ne se chevauchent pas de façon chaotique
  • une route de secours (fallback) est définie
  • l'étape de routing (router) n'est pas contournée directement par l'utilisateur ou la logique du worker

Même si le modèle "veut" déléguer la tâche au premier agent disponible, c'est la routing-policy qui fixe qui doit réellement l'exécuter.

Comment ça fonctionne

Diagram

Le Router n'exécute pas la tâche lui-même.

Il la délègue seulement à un agent spécialisé, qui exécute la sous-tâche via son propre cycle : Raisonnement (Think) -> Action (Act) -> Observation (Observe).

Description du flow complet : Analyze → Decide → Delegate

Analyse (Analyze)
Le Router identifie le type de tâche, le domaine et la spécialisation nécessaire.

Décision (Decide)
Le système choisit l'exécutant le plus adapté selon routing-policy et la confidence.

Délégation (Delegate)
La tâche est transmise à l'agent sélectionné, et le Router contrôle la route en cas de mismatch/error.

En code, cela ressemble à ça

PYTHON
agent = route(goal)  # Le Router classe le goal et choisit un exécutant spécialisé.

result = agent.run(goal)  # L'exécution est faite par l'agent sélectionné, pas par le Router.
return result

À quoi cela ressemble pendant l'exécution

TEXT
Goal: "Combien d'impôts faut-il payer sur des revenus freelance ?"
Analyze: tâche financière
Decide: choisir Finance Agent
Route confidence: 0.92 (finance)
Delegate: le système transmet la tâche à Finance Agent
Observe: Finance Agent renvoie le calcul

Goal: "Change la couleur du bouton sur la landing page"
Analyze: tâche frontend
Decide: choisir UI Agent
Route confidence: 0.89 (ui)
Delegate: le système transmet la tâche à UI Agent
Observe: UI Agent renvoie le composant mis à jour

Le Router choisit uniquement l'exécutant et délègue la tâche.

La qualité du résultat dépend de la justesse de ce choix.

Exemple complet d'agent Routing

PYPython
TSTypeScript · bientôt

Quand c'est adapté - et quand ça ne l'est pas

Adapté

SituationPourquoi ce pattern est adapté
Les tâches diffèrent par type ou complexitéLe Router choisit un exécutant selon le type de tâche au lieu d'envoyer tout à un seul agent.
Il existe des agents spécialisés pour des tâches différentesLe routing permet d'utiliser les points forts de chaque agent.
La précision d'exécution est importanteLe bon choix d'exécutant réduit les erreurs et les relances.

Non adapté

SituationPourquoi ce pattern n'est pas adapté
Toutes les tâches sont du même typeUne étape supplémentaire de sélection de route n'apporte rien si l'exécutant est toujours le même.
Le système n'a qu'un seul agentLe routing duplique un appel direct et ne fait que complexifier le pipeline.
Le routing n'influence pas le résultatSi la qualité du résultat ne change pas selon le choix d'exécutant, cette couche est inutile.

Parce que Routing ajoute une étape de traitement supplémentaire. Si les tâches ne diffèrent pas, il ne fait que ralentir l'exécution.

Quand utiliser Routing (vs autres patterns)

Utilisez Routing quand l'essentiel est de bien choisir à qui déléguer la requête.

Test rapide :

  • si vous devez "identifier le meilleur exécutant" -> Routing
  • si vous devez "faire passer la tâche par des étapes claires" -> Orchestrator Agent
Comparaison avec d'autres patterns et exemples

Aide-mémoire rapide :

Si la tâche ressemble à ça...Utilisez
Il faut choisir un unique meilleur exécutantAgent Routing
Il y a une séquence d'étapes et l'ordre est importantOrchestrator Agent
Un policy-check est nécessaire avant le résultatSupervisor Agent
Plusieurs agents doivent converger vers une seule conclusionMulti-Agent Collaboration

Exemples :

Routing : "Le client demande un remboursement - envoyer à Billing, pas à Sales".

Orchestrator : "Prépare la release : d'abord changelog, puis QA, puis déploiement".

Supervisor : "Avant d'envoyer un e-mail, vérifie les politiques, la conformité et les promesses interdites".

Multi-Agent Collaboration : "Marketing, Legal et Product doivent valider un seul texte final de promotion".

Comment combiner avec d'autres patterns

  • Routing + Task Decomposition - d'abord la tâche est découpée en parties, puis Routing envoie chaque partie à l'agent approprié.
  • Routing + Orchestrator - Routing choisit l'exécutant, et Orchestrator coordonne les tâches parallèles et leurs dépendances.
  • Routing + Supervisor - Supervisor vérifie si le choix d'exécutant respecte les politiques et le niveau de risque.

En bref

En bref

Agent Routing :

  • Analyse la tâche
  • Choisit l'agent approprié
  • La délègue pour exécution

Avantages et Inconvénients

Avantages

oriente rapidement la tâche vers le bon agent

supprime les étapes inutiles

améliore le temps de réponse

facilite l'ajout de nouvelles routes

Inconvénients

une erreur de routing envoie la tâche au mauvais endroit

les règles de routing doivent être maintenues

les cas complexes demandent des exceptions

FAQ

Q : Le Router peut-il exécuter la tâche lui-même ?
A : Non. Il détermine seulement qui doit l'exécuter.

Q : Faut-il du Routing s'il n'y a qu'un seul agent ?
A : Non. Dans ce cas, cela ajoute une étape inutile.

Q : Peut-on changer la route pendant l'exécution ?
A : Oui. Si l'agent sélectionné ne peut pas exécuter la tâche ou renvoie une erreur, le Router peut la transmettre à un autre agent.

Et ensuite

Routing permet de choisir l'agent approprié.

Mais que faire si les tâches doivent être exécutées en parallèle ?

⏱️ 10 min de lectureMis à jour Mars, 2026Difficulté: ★★☆
Suite pratique

Exemples d’implémentation du patron

Passe à l’implémentation avec des projets d’exemple.

Intégré : contrôle en productionOnceOnly
Ajoutez des garde-fous aux agents tool-calling
Livrez ce pattern avec de la gouvernance :
  • Budgets (steps / plafonds de coût)
  • Permissions outils (allowlist / blocklist)
  • Kill switch & arrêt incident
  • Idempotence & déduplication
  • Audit logs & traçabilité
Mention intégrée : OnceOnly est une couche de contrôle pour des systèmes d’agents en prod.
Auteur

Cette documentation est organisée et maintenue par des ingénieurs qui déploient des agents IA en production.

Le contenu est assisté par l’IA, avec une responsabilité éditoriale humaine quant à l’exactitude, la clarté et la pertinence en production.

Les patterns et recommandations s’appuient sur des post-mortems, des modes de défaillance et des incidents opérationnels dans des systèmes déployés, notamment lors du développement et de l’exploitation d’une infrastructure de gouvernance pour les agents chez OnceOnly.