Anti-Pattern Multi-Agent Overkill : trop d’agents

Quand trop d’agents sont utilisés pour résoudre un problème simple.
Sur cette page
  1. Idée en 30 secondes
  2. Exemple de l'anti-pattern
  3. Pourquoi cela arrive et ce qui se passe mal
  4. Bonne approche
  5. Test rapide
  6. Différence avec les autres anti-patterns
  7. Overengineering Agents vs Multi-Agent Overkill
  8. Agent Everywhere Problem vs Multi-Agent Overkill
  9. Too Many Tools vs Multi-Agent Overkill
  10. Auto-vérification : avez-vous cet anti-pattern ?
  11. FAQ
  12. Et ensuite

Idée en 30 secondes

Multi-Agent Overkill est un anti-pattern où trop d'agents sont lancés pour une tâche sans limites de rôles claires.

Résultat : le bruit de coordination augmente : handoffs inutiles, actions dupliquées, et décisions conflictuelles entre agents. Cela augmente latency, cost et le risque de régressions sur des scénarios simples.

Règle simple : ajoutez un nouvel agent seulement s'il a un rôle clair, une valeur mesurable et une limite de responsabilité explicite.


Exemple de l'anti-pattern

L'équipe construit un système support pour des demandes de paiement, de remboursement et de statut de commande.

Au lieu d'un routeur et de 1-2 agents spécialisés, l'équipe ajoute une cascade de nombreuses rôles.

PYTHON
response = orchestrator_agent.run(
    "User: Où est ma commande #18273 ?"
)

Dans ce schéma, une requête simple passe par trop de handoffs :

PYTHON
plan = planner_agent.run(user_message)
route = router_agent.run(plan)
facts = retrieval_agent.run(route)
draft = responder_agent.run(facts)
checked = policy_agent.run(draft)
final = critic_agent.run(checked)

Dans cette chaîne, plusieurs agents commencent souvent à faire des fonctions similaires : par exemple, planner et router dupliquent la classification, tandis que policy et critic vérifient les mêmes règles.

Pour ce cas, une architecture plus simple suffit :

PYTHON
order = get_order(order_id)
return format_order_status(order)

Ici, l'excès d'agents ajoute :

  • des handoffs inutiles entre rôles
  • des vérifications et décisions dupliquées
  • une maintenance difficile après changements

Pourquoi cela arrive et ce qui se passe mal

Cet anti-pattern apparaît souvent quand l'équipe conçoit à l'avance à grande échelle et ajoute des agents "par précaution".

Causes typiques :

  • volonté de rendre l'architecture "enterprise-ready" avant besoin réel
  • copie de schémas multi-agent de démo sans adaptation aux tâches réelles
  • absence de limites claires entre rôles d'agents
  • tentative de couvrir chaque cas non standard avec un agent séparé

Cela crée des problèmes :

  • latency plus élevée - chaque handoff ajoute une étape
  • cost plus élevé - plus d'appels LLM/tool par requête
  • conflits de décision - les agents peuvent donner des interprétations différentes du même contexte
  • fragilité des changements - modifier un rôle casse des scénarios voisins
  • debug difficile - difficile d'identifier quel agent a pris la décision critique

Contrairement à une simple architecture surchargée, la panne principale ici apparaît précisément aux frontières entre agents : pendant les handoffs, la duplication des rôles et la perte du propriétaire de la décision.

Signaux production typiques indiquant qu'il y a déjà trop d'agents :

  • une requête utilisateur typique déclenche 4+ agent handoffs alors que 1-2 suffiraient
  • le même cas passe par des chaînes différentes selon les runs
  • l'ajout d'un agent dégrade success rate ou P95 sur des routes existantes
  • l'équipe ne peut pas expliquer clairement qui est le "owner" de la réponse finale

Point important : chaque handoff signifie généralement un nouveau prompt et une nouvelle LLM inference. Quand ces transitions sont trop nombreuses, le nombre d'interprétations possibles augmente et le comportement du système devient moins stable.

Quand ce schéma grossit, sans trace ni visualisation d'exécution, il devient difficile de comprendre quel agent a pris la décision finale et où la chaîne a échoué.

Bonne approche

Commencez avec un schéma multi-rôle minimal : une couche de routage et seulement les agents qui ont une valeur unique. Ajoutez de nouveaux rôles uniquement après des métriques ou des incidents.

Cadre pratique :

  • gardez workflow pour les tâches déterministes
  • ajoutez des handoffs entre agents seulement quand il y a une vraie spécialisation
  • définissez le propriétaire de chaque étape explicitement (qui prend la décision finale)
  • mesurez l'effet d'un nouveau rôle (par exemple, amélioration de success rate sans forte hausse de latency et de cost per request)

Si un schéma multi-agent est vraiment nécessaire, commencez au minimum : un coordinator et un specialist, pas une cascade complète de rôles.

PYTHON
def run_support_flow(user_message: str):
    route = classify_intent(user_message)  # simple classifier or rules

    if route == "order_status":
        return run_order_status_workflow(user_message)

    response = specialist_agent.run(user_message)

    if not validate_output(response):  # format, required fields, no empty answer
        return stop("invalid_output")

    return response

Dans ce schéma, les scénarios simples n'entrent pas dans une cascade multi-agent inutile, et les cas complexes sont traités avec le nombre minimal de rôles nécessaires.

Test rapide

Si vous répondez "oui" à ces questions, vous avez un risque multi-agent-overkill :

  • Une requête typique passe-t-elle régulièrement par 4+ agent handoffs ?
  • Un même cas passe-t-il par des chaînes d'agents différentes selon les runs ?
  • Après l'ajout d'un rôle, latency et cost augmentent-ils plus souvent que la qualité ?

Différence avec les autres anti-patterns

Overengineering Agents vs Multi-Agent Overkill

Overengineering AgentsMulti-Agent Overkill
Problème principal : couches et composants d'architecture inutiles.Problème principal : excès d'agents et coordination complexe entre eux.
Quand il apparaît : quand des niveaux d'abstraction inutiles sont ajoutés dans l'architecture globale.Quand il apparaît : quand une requête traverse trop de handoffs entre rôles d'agents.

Agent Everywhere Problem vs Multi-Agent Overkill

Agent Everywhere ProblemMulti-Agent Overkill
Problème principal : l'agent est utilisé même pour des tâches déterministes.Problème principal : plusieurs agents se dupliquent ou se contredisent.
Quand il apparaît : quand on remplace des if/else ou appels API basiques par un agent.Quand il apparaît : quand le workflow multi-agent a des responsabilités qui se chevauchent entre rôles.

Too Many Tools vs Multi-Agent Overkill

Too Many ToolsMulti-Agent Overkill
Problème principal : un agent a trop d'outils.Problème principal : les outils sont répartis entre trop d'agents, ce qui crée des handoffs inutiles.
Quand il apparaît : quand le menu tools d'un agent grossit sans limites claires.Quand il apparaît : quand le routage d'outils passe par une chaîne inutile de handoffs entre agents.

Auto-vérification : avez-vous cet anti-pattern ?

Vérification rapide de l'anti-pattern Multi-Agent Overkill.
Cochez les points pour votre système et regardez le statut ci-dessous.

Vérifiez votre système :

Progression: 0/8

⚠ Il y a des signes de cet anti-pattern

Essayez de déplacer les étapes simples dans un workflow et de garder l'agent uniquement pour les décisions complexes.

FAQ

Q : Est-ce que cela veut dire que l'approche multi-agent est toujours mauvaise ?
R : Non. Elle est utile quand les rôles sont vraiment différents, que le handoff a un but clair et que le propriétaire de la réponse finale est explicitement défini. Le problème commence quand il y a plus d'agents que de besoin réel.

Q : Quand ajouter un nouvel agent ?
R : Quand il existe un signal concret : gain de qualité, nouvelle classe de tâches, ou incidents que le schéma actuel ne couvre pas sans croissance disproportionnée de latency, de cost ou de complexité de debug.

Q : Comment simplifier un système multi-agent déjà surchargé ?
R : Commencez par cartographier les rôles : fusionnez les doublons, renvoyez les cas déterministes vers workflow et gardez les handoffs agents seulement là où il existe une spécialisation unique.


Et ensuite

Anti-patterns proches :

Ce qu'il faut construire à la place :

  • Routing Agent - comment envoyer les cas simples vers workflow et router les cas complexes vers le bon rôle.
  • Orchestrator Agent - comment construire une couche de coordination sans handoffs inutiles.
  • Hybrid Workflow + Agent - comment combiner branches déterministes et décisions agents sans surcharger le système.
⏱️ 8 min de lectureMis à jour 16 mars 2026Difficulté: ★★★
Implémenter dans OnceOnly
Safe defaults for tool permissions + write gating.
Utiliser dans OnceOnly
# onceonly guardrails (concept)
version: 1
tools:
  default_mode: read_only
  allowlist:
    - search.read
    - kb.read
    - http.get
writes:
  enabled: false
  require_approval: true
  idempotency: true
controls:
  kill_switch: { enabled: true, mode: disable_writes }
audit:
  enabled: true
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.