Je réfléchis à ce qui vient après Tree of Thoughts — si l'on peut rechercher parmi des étapes de raisonnement, pourquoi ne pas rechercher parmi des actions aussi ? C'est exactement ce que fait LATS (Language Agent Tree Search), et c'est pourquoi je le lis maintenant. L'article d'Andy Zhou, Kai Yan, Michal Shlapentokh-Rothman, Haohan Wang et Yu-Xiong Wang (ICML 2024, arXiv:2310.04406) est la synthèse la plus claire à ce jour du raisonnement, de l'action et de la planification dans un cadre d'agent unique, et les résultats sont vraiment difficiles à rejeter.
L'article
Le problème central que LATS aborde est un manque structurel dans les travaux antérieurs sur les agents. ReAct entrelace raisonnement et action, mais n'a aucun mécanisme pour inverser et essayer un chemin différent lorsqu'une trajectoire tourne mal. Tree of Thoughts permet de ramifier les étapes de raisonnement, mais opère sur les connaissances internes du LM — il ne peut pas appeler d'outils ni recevoir de retour externe pendant la recherche. Reflexion ajoute une auto-correction verbale, mais sa boucle de réessai linéaire s'engage dans une nouvelle trajectoire sans explorer d'alternatives. LATS fusionne ces trois idées avec un véritable squelette de recherche arborescente Monte Carlo (MCTS), permettant aux agents LLM d'explorer plusieurs branches, de recevoir des retours réels de l'environnement et de revenir en arrière lorsqu'un chemin échoue.
La machinerie technique est une boucle MCTS en six étapes : Sélection (choisir le prochain nœud à explorer via la formule UCT), Expansion (échantillonner n actions candidates du LM), Évaluation (noter chaque nœud avec une fonction de valeur hybride), Simulation (dérouler jusqu'à un état terminal), Rétropropagation (mettre à jour les valeurs des ancêtres) et Réflexion (en cas d'échec, générer un résumé verbal de ce qui a mal tourné et le stocker comme contexte). La fonction de valeur mérite attention : V(s) = λ·LM(s) + (1−λ)·SC(s), où LM(s) est l'estimation propre du LM de la qualité de la trajectoire après avoir reçu le retour de l'environnement, et SC(s) est un score d'auto-cohérence basé sur la fréquence à laquelle cette action est échantillonnée parmi les nœuds frères. Ce n'est pas un modèle de récompense entraîné — la fonction de valeur est entièrement pilotée par des invites.
Idées clés
- Sur HumanEval, GPT-4 + LATS atteint 92,7 % pass@1, contre 91,0 % pour GPT-4 + Reflexion et 56,9 % pour GPT-3.5 + ReAct seul. GPT-3.5 + LATS bondit à 83,8 %.
- Sur HotPotQA, LATS (CoT + ReAct) atteint 0,71 en correspondance exacte contre 0,32 pour la référence ReAct — plus que doublant la précision multi-sauts.
- Sur WebShop (navigation web + achat), LATS obtient 75,9 (38,0 % de succès) contre Reflexion à 64,2 (35,0 %) — un écart significatif sur une tâche qui nécessite de gérer l'état sur de nombreuses pages.
- Sur Game of 24 (un pur puzzle de raisonnement), LATS atteint 0,44 de succès contre 0,20 pour ToT, malgré l'utilisation du même backbone GPT-4.
- Étonnamment, LATS développe moins de nœuds pour trouver une solution que ToT (moyenne de 66,65 contre 84,05 nœuds sur HotPotQA à k=50) et utilise moins de jetons (173 290 contre 210 215), même s'il semble plus coûteux en théorie.
Ce qui tient — et ce qui ne tient pas
Les chiffres de référence sont réels et le cadre est conceptuellement propre. La formulation UCT fournit un compromis exploration-exploitation fondé sur des principes qui manque au BFS/DFS ad hoc de ToT. Intégrer le retour de l'environnement externe dans la fonction de valeur — au lieu de l'introspection pure du LM — est la bonne décision, et les résultats le montrent.
Mais l'article porte une hypothèse critique que les auteurs reconnaissent sans la stress-tester pleinement : LATS exige la capacité de réverter l'environnement à un état précédent. Sans point de contrôle, on ne peut pas ramifier l'arbre — une fois une action prise, on est engagé. Les auteurs notent que pour les tâches de LM, cela est souvent gérable en « copiant-collant des entrées historiques de texte », mais pour les environnements d'action réels (bases de données, systèmes de fichiers, APIs avec effets de bord), c'est une exigence stricte que de nombreux systèmes de production ne peuvent pas satisfaire. Les résultats WebShop, bien que meilleurs que les références, montrent que dans des environnements complexes, les auto-réflexions tendent à devenir génériques plutôt que spécifiques — les agents peuvent stagner et répéter des erreurs superficiellement différentes mais structurellement identiques. L'article le note mais n'offre aucun remède.
Il n'y a pas non plus d'ablation isolant la contribution de la structure MCTS par rapport à la conception de la fonction de valeur. Il est plausible qu'une approche de ramification plus simple avec la même fonction de valeur hybride comblerait une grande partie de l'écart, et les auteurs ne testent pas cela directement.
Pourquoi cela importe pour l'IA financière
Les registres Beancount sont un environnement presque idéal pour la recherche arborescente de style LATS pour une raison principale : chaque registre est soutenu par un dépôt git. L'exigence de réversion d'état — la contrainte stricte qui rend LATS impraticable dans de nombreux contextes réels — est trivialement satisfaite par git checkout ou git stash. Un agent d'écriture pourrait proposer des entrées de journal candidates sur plusieurs branches, les noter par rapport aux contraintes du bilan (la fonction de valeur), et ne commettre que le chemin le mieux noté. Les branches échouées reçoivent une réflexion verbale : « L'entrée publiée a violé Actifs = Passifs + Capitaux propres parce que le type de compte était mal classifié. »
La conception de la fonction de valeur hybride est directement applicable aussi. Pour un agent de registre, LM(s) noterait une entrée proposée sur l'adéquation sémantique (cela ressemble-t-il à la bonne catégorie ?), tandis que SC(s) suivrait la cohérence avec laquelle l'agent classifie des transactions passées similaires — un contrôle d'auto-cohérence naturel enraciné dans l'historique propre du registre.
La réversion d'état est le seul endroit où je contesterais l'analogie financière. Les registres réels ont souvent des effets en aval : une entrée publiée déclenche une facture qui déclenche un flux de travail de paiement. Dans ces cas, l'hypothèse de LATS se brise. Spécifiquement pour Beancount, où le registre est un fichier en texte brut sous contrôle git et où les changements se produisent localement avant que tout déclencheur en aval ne se produise, l'hypothèse tient — mais c'est une contrainte de conception à garder explicite.
Que lire ensuite
- Planification basée sur MCTS sans modèles d'environnement : « Reasoning with Language Model is Planning with World Model » (Hao et al., 2023, arXiv:2305.14992) — RAP, sur lequel LATS s'appuie et améliore.
- Dans quelle mesure la fonction de valeur du LM se généralise-t-elle ? « Let's Verify Step by Step » (Lightman et al., 2023, arXiv:2305.20050) — les modèles de récompense de processus comme alternative aux fonctions de valeur basées sur des invites.
- Planification multi-étapes sûre sous irréversibilité : « Decision-Making with Language Models via Successive Prompting » (Creswell et al., 2023) — une approche de planification plus simple qui évite l'exigence de réversion d'état.





