Aller au contenu principal

Reflexion : Des agents de langage qui apprennent de leurs erreurs sans réentraînement

· 6 minutes de lecture
Mike Thrift
Mike Thrift
Marketing Manager

Je réfléchis à ce qu'il faudrait pour construire un agent de grand livre Beancount qui s'améliore au fil du temps sans être réentraîné à chaque fois qu'il commet une erreur. L'article de Shinn et al., "Reflexion: Language Agents with Verbal Reinforcement Learning" (NeurIPS 2023), aborde directement cette question, et la réponse est à la fois prometteuse et plus limitée que ne le suggèrent les chiffres de premier plan.

L'article

2026-04-25-reflexion-language-agents-verbal-reinforcement-learning

Reflexion (Shinn, Cassano, Berman, Gopinath, Narasimhan, Yao ; NeurIPS 2023) propose qu'au lieu d'ajuster les poids du modèle via un apprentissage par renforcement coûteux, on peut améliorer un agent en lui faisant écrire sa propre analyse d'échec en langage naturel. Après chaque tentative, un modèle d'auto-réflexion (Self-Reflection) lit la trajectoire et le signal de récompense, produit un post-mortem verbal et l'ajoute à un tampon de mémoire épisodique. Lors de l'essai suivant, l'Acteur lit les réflexions accumulées avant d'agir. Aucun gradient n'est calculé. Aucun modèle n'est affiné. L'« apprentissage » réside entièrement dans la fenêtre de contexte.

L'architecture à trois composants — Acteur, Évaluateur, Auto-Réflexion — est suffisamment modulaire pour s'adapter à différents types de tâches. L'Évaluateur peut être un résultat de test unitaire binaire, un juge LLM ou une heuristique spécifique à la tâche. Cette flexibilité est ce qui rend l'article intéressant au-delà des benchmarks de codage.

Idées clés

  • Sur le pass@1 Python de HumanEval, Reflexion + GPT-4 atteint 91 %, contre une base de 80 % pour GPT-4 seul — un écart réel et important. Sur Leetcode Hard, le bond est de 7,5 % → 15 %, ce qui constitue un progrès mais rappelle aussi la difficulté persistante de ces problèmes.
  • Sur AlfWorld (planification domestique textuelle), Reflexion résout 130/134 tâches après 12 essais, contre 108/134 pour la base de référence ReAct — le résultat de prise de décision le plus convaincant de l'article.
  • Sur le questionnaire multi-sauts HotpotQA, CoT + Reflexion passe de 61 % à 75 % de correspondance exacte sur un échantillon de 100 questions.
  • Sur MBPP (un second benchmark Python), Reflexion nuit légèrement aux performances : 80,1 % → 77,1 %. L'article occulte ce point.
  • Sur WebShop, Reflexion n'aide pas. Les auteurs attribuent cela au fait que la tâche nécessite « une diversité et une exploration significatives » — l'agent écrit des réflexions inutiles qui ne se généralisent pas aux recherches de produits.
  • La mémoire est limitée à 1–3 expériences stockées. C'est pragmatique compte tenu de la longueur du contexte, mais cela signifie que l'agent ne peut pas accumuler d'apprentissage sur un déploiement de longue durée.

Ce qui tient la route — et ce qui ne tient pas

L'affirmation centrale est solide : la réflexion verbale améliore les performances sur les tâches avec un retour d'information clair et vérifiable. Si vous savez si le code a réussi ses tests unitaires, le module de réflexion a quelque chose de concret sur lequel raisonner. Les résultats d'AlfWorld et de HumanEval sont réels et significatifs.

Mais l'échec de WebShop est instructif et l'article le minimise quelque peu. La réflexion fonctionne quand l'évaluateur peut produire un signal net et exploitable. Lorsque le mode d'échec est « l'agent a exploré la mauvaise partie d'un vaste espace de recherche », lui dire d'« essayer différents termes de recherche la prochaine fois » ne permet pas de converger. C'est une limitation structurelle : le renforcement verbal ne remplace pas les stratégies d'exploration.

Les expériences de codage présentent également une circularité que les auteurs reconnaissent dans leur article de blog : l'agent génère ses propres tests unitaires pour évaluer son propre code. Une suite de tests défaillante produit des faux positifs. Le chiffre de 91 % sur HumanEval tient parce que HumanEval fournit des tests de référence (ground-truth), mais la boucle d'auto-évaluation de l'agent est moins fiable sur des problèmes inédits où aucun oracle externe n'existe.

La reproductibilité est une réelle préoccupation. Tous les résultats principaux utilisent GPT-4, et les expériences avec starchat-beta ne montrent aucune amélioration par rapport à la base de référence, ce qui signifie que la technique est limitée par les capacités du modèle. Les équipes utilisant des modèles plus petits ou à poids ouverts ne devraient pas s'attendre aux mêmes gains.

Pourquoi cela compte pour l'IA financière

Le cas d'utilisation de Beancount possède exactement la propriété qui permet à Reflexion de bien fonctionner : un évaluateur clair. Si un agent catégorise incorrectement une transaction, la vérification du solde du grand livre ou une étape de rapprochement peut produire un signal binaire — les comptes s'équilibrent ou non. C'est une surface de retour d'information bien meilleure que la récompense ambiguë de recherche de produits de WebShop.

Concrètement, j'imagine un agent d'écriture Beancount qui, après une tentative de saisie échouée (compte invalide, mauvaise devise, échec d'assertion), génère une réflexion verbale : « J'ai utilisé Dépenses:Repas mais ce compte nécessite une sous-catégorie. La prochaine fois, je vérifierai la hiérarchie des comptes avant d'enregistrer. » Cette réflexion est stockée et récupérée lors de la prochaine transaction similaire. L'agent accumule ainsi une politique spécifique à la session à partir de ses propres erreurs.

Le plafonnement de la mémoire est le principal défi architectural. Un tampon de 1 à 3 expériences convient pour une session unique, mais un agent comptable déployé doit apprendre sur des milliers de transactions et des semaines d'exploitation. Étendre Reflexion à une mémoire à long horizon — peut-être en résumant ou en indexant les réflexions — est un problème ouvert. L'article ne le résout pas.

Que lire ensuite

  • Language Agent Tree Search (LATS) (Zhou et al., arXiv:2310.04406 ; ICML 2024) — étend Reflexion en enveloppant la recherche arborescente Monte Carlo autour de la boucle réflexion-réessai, permettant aux agents d'explorer plusieurs branches de raisonnement plutôt que de s'engager dans une seule trajectoire. Atteint 92,7 % sur HumanEval avec GPT-4.
  • Retroformer (Yao et al., arXiv:2308.02151 ; ICLR 2024) — au lieu de s'appuyer sur le même LLM pour l'auto-réflexion, Retroformer entraîne un modèle rétrospectif léger séparé via un gradient de politique, rendant le processus de réflexion apprenable à travers les tâches. Plus rigoureux, mais nécessite un affinement (fine-tuning).
  • Self-Reflection in LLM Agents: Effects on Problem-Solving Performance (arXiv:2405.06682, 2024) — une étude empirique sondant spécifiquement quand et pourquoi la réflexion aide, avec des ablations sur différents types de tâches. Utile pour calibrer quand appliquer Reflexion par rapport à d'autres stratégies de correction.