Réessais limités pour les appels d'outils d'agent
Le pire incident causé par notre agent n'était pas une mauvaise réponse. C'était une boucle.
Un appel d'outil a échoué. L'agent a réessayé. Le réessai a encore échoué. L'agent a continué. Il a consommé des tokens et a sollicité notre API des centaines de fois en une minute.
L'agent a fait ce que nous lui avons demandé de faire. Nous lui avons dit de réessayer si un outil échoue. Nous avons oublié de lui dire quand s'arrêter.
Les réessais sont utiles pour les erreurs temporaires. Le problème est que les agents ne peuvent pas distinguer une erreur temporaire d'une erreur permanente. Sans limites, un agent réessaie un appel défectueux jusqu'à ce que quelque chose l'interrompe.
Le code traditionnel utilise des limites de réessai. Les appels d'outils d'agent ont déplacé cette décision dans le raisonnement du modèle. Cela a rendu la boucle invisible et illimitée.
Nous avons corrigé cela en ajoutant deux budgets en dehors du modèle :
• Plafond par appel : un outil spécifique dispose d'un nombre défini de tentatives. S'il échoue, l'agent doit emprunter un chemin différent. • Budget par session : l'ensemble de la tâche a une limite sur le nombre total d'appels d'outils. Si l'agent atteint cette limite, il s'arrête et demande de l'aide.
La limite en soi n'est pas la solution. Ce qui compte, c'est ce qui se passe après avoir atteint la limite.
Si vous vous contentez de vous arrêter, l'agent reste bloqué. Au lieu de cela, nous donnons à l'agent un message clair. Nous lui indiquons que l'appel a échoué et qu'il ne doit pas réessayer. Cela transforme une boucle en une décision. Généralement, l'agent choisit alors une nouvelle approche.
Depuis que nous avons ajouté cela, les boucles de mauvaise utilisation des outils ont presque disparu. Lorsqu'elles surviennent, elles sont gérées proprement au lieu de générer des factures d'API colossales.
Trouver la bonne limite est difficile. Une limite trop stricte interrompt les tâches longues. Une limite trop souple permet des boucles coûteuses. Nous avons fixé nos limites en nous basant sur la longueur des tâches au 95e percentile.
Avez-vous une meilleure façon de définir ces budgets ? Dites-le-moi dans les commentaires.
Communauté d'apprentissage optionnelle : https://t.me/GyaanSetuAi