Un agent tourne en boucle : que faites-vous ?

Questions d’entrevue Agents IA

Seniordiagnosticproduction

C’est la panne la plus courante d’un agent, et elle a des causes identifiables. La réponse attendue est un diagnostic, pas « j’augmente la limite de tours ».

D’abord, lire la trace

Il faut la trace tour par tour : quel outil a été appelé, avec quels arguments, ce qui a été renvoyé. Sans elle, on ne diagnostique rien — et si elle n’existe pas, c’est le premier correctif à apporter.

La question à se poser en la lisant : qu’est-ce que l’agent a appris à ce tour ? Une boucle signifie qu’il n’apprend rien. Il faut trouver pourquoi.

Les causes, par fréquence

L’observation ne porte pas d’information. Un outil qui renvoie une liste vide, un null, ou un message technique incompréhensible. L’agent ne sait pas si sa requête était mauvaise ou si le résultat est réellement vide, alors il réessaie. C’est de loin la cause première.

Le correctif est dans l’outil : renvoyer « aucun client trouvé avec ce nom, essayez une recherche partielle » plutôt que []. On informe la décision suivante au lieu de la laisser sans appui.

L’erreur d’outil est opaque. Une trace de pile Python renvoyée brute n’aide pas. Un message explicite — « le paramètre date doit être au format ISO, reçu 14/03/2026 » — se corrige au tour suivant.

L’objectif est inatteignable et l’agent n’a pas le droit d’abandonner. L’information demandée n’existe pas dans le système. Sans issue déclarée, l’agent persévère indéfiniment. Il faut lui donner un moyen explicite de conclure à l’échec, et le valoriser dans l’invite.

Le critère de réussite est absent. L’agent a en réalité terminé mais ne le sait pas, alors il vérifie, revérifie, reformule. Il faut dire dans l’invite ce qui constitue une réponse complète.

Deux outils se renvoient la balle. L’agent alterne entre chercher et lire sans jamais progresser, souvent parce que les deux descriptions se chevauchent.

Le contexte a saturé et l’agent a perdu de vue ce qu’il avait déjà essayé. Il refait au tour douze ce qu’il a fait au tour trois. C’est un problème de gestion de contexte, pas de raisonnement.

Les protections à mettre en place

Elles ne corrigent pas la cause, elles bornent le dégât — et il faut le dire ainsi.

  • La détection de répétition : même outil, mêmes arguments, deux fois de suite. On interrompt, et l’on injecte une observation du type « cet appel a déjà été fait et a donné le même résultat ; change d’approche ». Cette injection débloque souvent, et c’est une astuce qui distingue.
  • Un plafond de tours et un budget de jetons, vérifiés à chaque itération.
  • Un délai global sur l’exécution.
  • Un compteur d’absence de progrès : si aucun outil n’a produit de nouvelle information depuis trois tours, on arrête.

Ce qu’il ne faut pas faire

Augmenter la limite de tours. C’est le réflexe, et il transforme un échec rapide en échec coûteux.

Ajouter « ne tourne pas en boucle » dans l’invite. L’agent ne boucle pas par choix : il boucle parce que rien dans ce qu’il reçoit ne lui indique d’autre voie.

La conclusion

Une boucle est presque toujours le symptôme d’un outil qui communique mal, pas d’un modèle défaillant. C’est une bonne nouvelle : le correctif est dans du code que vous contrôlez.

Toutes les questions Agents IA