Éviter les boucles incontrôlées (Partie 1)
Vous vous réveillez, consultez le tableau de bord de votre fournisseur de modèles et voyez des milliers de dollars d’appels API de la nuit. Une boucle. Elle a continué à tourner pendant que vous dormiez.
Les enquêtes auprès d’équipes d’ingénierie montrent que la plupart ont connu ça. Dépassement moyen autour de 7 200 $. Certains au-delà de 20 000 $. Pour les startups en phase early, une seule boucle en a mis certaines en faillite.
Bonne nouvelle : elles sont largement évitables. Ce guide explique les causes et comment les arrêter.
Qu’est-ce qu’une boucle incontrôlée ?
C’est tout workflow autonome qui se retrouve coincé dans un cycle répétitif d’appels API sans sortie intégrée. Chaque cycle génère plus d’appels, plus de tokens, plus de coûts. Parce qu’il est autonome, il peut tourner des heures ou des jours.
Types courants :
- Boucles de retentatives – l’appel d’outil échoue, l’agent réessaie indéfiniment
- Boucles de redémarrage de workflow – le workflow échoue, l’agent repart de zéro, répète
- Boucles d’agents imbriqués – l’agent principal lance un secondaire, qui en lance un autre, cascade
- Boucles d’hallucination – le modèle invente un appel d’outil ou une requête et continue d’essayer de la satisfaire
- Boucles de dépassement de contexte – le contexte grossit à chaque cycle jusqu’à la limite, le workflow redémarre, répète
Toutes brûlent votre budget sans livrer de valeur.
Pourquoi elles surviennent
La plupart des boucles partagent la même cause : les équipes n’optimisent que le chemin heureux.
Vous passez l’essentiel du temps à tester le cas où tout fonctionne. L’utilisateur envoie une requête claire, les outils réussissent, le modèle renvoie une bonne sortie, le workflow se termine. Vous ne consacrez pas assez de temps aux cas limites : et si un outil échoue ? Si le modèle renvoie n’importe quoi ? Si l’API timeout ? Si l’agent ne peut pas satisfaire la requête ?
Les équipes ajoutent de la logique de retentatives mais pas de limites strictes, de disjoncteurs ou de conditions de sortie. Elles supposent que le workflow finira par réussir. Cette hypothèse démarre les boucles.
La boucle à 10k $ de l’article précédent est arrivée parce que les retentatives étaient limitées par appel mais pas par workflow. Quand 10 retentatives échouaient, l’agent redémarrait tout le workflow. Personne n’avait ajouté cette garde.
Étape 1 : Limites strictes de retentatives à tous les niveaux
La logique de retentatives cause la plupart des boucles incontrôlées. Les limites strictes les stoppent.
La plupart des équipes ne limitent les retentatives que par appel d’outil. Il en faut à quatre niveaux :
- Par appel d’outil : max 3 retentatives. Après 3 échecs, l’appel échoue et le workflow passe en gestion d’erreur—plus de retentatives.
- Par action : max 2 retentatives. Si l’agent ne peut pas terminer l’action après 2 tentatives, escalade vers un humain.
- Par workflow : max 1 redémarrage. Si le workflow échoue une fois, permettre un redémarrage. S’il échoue à nouveau, stopper.
- Global : plafond total de retentatives par heure ou jour. Une fois atteint, désactiver les retentatives pour le reste de la période.
Appliquez-les au niveau infrastructure, avant que les appels n’atteignent le fournisseur. S’ils sont uniquement dans le code de l’agent, un bug ou une réponse malformée peut les contourner. ClawFirewall applique les limites de retentatives au niveau de la passerelle API.
Étape 2 : Disjoncteurs pour chaque workflow
Un disjoncteur arrête un workflow quand il franchit un seuil. Quand il se déclenche : workflow stoppé, plus d’appels API, escalade. Ne pas redémarrer avant revue.
Conditions de déclenchement utiles :
- Taux d’erreur – ex. >20 % d’erreurs sur 10 minutes
- Volume de retentatives – ex. >10 retentatives en 5 minutes
- Usage de tokens – ex. 2x la moyenne pour une exécution
- Dépenses – ex. 10x le coût moyen ou 50 % du budget quotidien
- Volume d’appels API – ex. 5x la moyenne d’appels par minute
Même si quelque chose contourne les limites de retentatives, un disjoncteur peut arrêter la boucle avant qu’elle ne brûle le budget. ClawFirewall inclut des disjoncteurs configurables.