La cascade de confabulations
Mon agent IA s'est retrouvé coincé dans une boucle.
Il écrivait une requête SQL avec un nom de colonne fictif. La base de données renvoyait une erreur. Le message d'erreur incluait la liste réelle des colonnes. L'agent lisait la correction. Ensuite, il réécrivait exactement le même nom de colonne erroné.
J'appelle cela la cascade de confabulations.
Ce n'est pas un problème de modèle. C'est un problème de conception d'outil.
Voici comment la boucle fonctionne :
- L'agent génère une requête basée sur son entraînement.
- La requête échoue.
- Le message d'erreur fournit la vérité.
- L'agent voit la vérité mais s'appuie plutôt sur son entraînement interne.
- L'agent répète l'erreur.
L'agent est confronté à deux signaux. L'un est le message d'erreur. L'autre est l'entraînement du modèle. L'entraînement est souvent plus fort. Le message d'erreur n'apparaît qu'une seule fois. L'entraînement est présent à chaque mot écrit par le modèle.
J'ai essayé de corriger cela par le prompt engineering. J'ai dit au modèle de prêter attention aux erreurs. Cela n'a pas fonctionné.
Le véritable problème est que mon agent ne pouvait apprendre qu'en échouant. Il n'avait aucun moyen de vérifier la structure de la table avant d'agir. Il devait deviner.
Si vous donnez une API à un humain, vous lui donnez de la documentation. Vous ne le forcez pas à envoyer des requêtes erronées jusqu'à ce que les messages d'erreur lui enseignent le schéma.
J'ai résolu cela en construisant un outil proactif. Au lieu d'attendre une erreur, l'agent appelle désormais d'abord un outil describe_table.
Le nouveau flux de travail :
- L'agent veut interroger une table.
- L'agent appelle
describe_tablepour voir les colonnes réelles. - L'agent obtient les noms et les types corrects.
- L'agent écrit une requête correcte dès le premier essai.
La boucle s'est arrêtée. Le modèle n'est pas devenu plus intelligent. L'agent a simplement cessé de deviner.
Si vos agents utilisent des bases de données ou des API, posez-vous cette question : peuvent-ils vérifier la structure avant d'agir ? Ou apprennent-ils uniquement par l'échec ?
Les indices d'erreur réactifs sont utiles. Ils ne suffisent pas. Un agent qui n'apprend que par l'échec est toujours à un pas d'une hallucination.
Construisez des outils qui permettent aux agents de poser des questions avant de commettre des erreurs.
Communauté d'apprentissage optionnelle: https://t.me/GyaanSetuAi
