🤖 Agent IA · Page 2/4

La boucle ReAct

Comment un agent raisonne, agit et s'adapte en temps réel — pas à pas, jusqu'au but

La métaphore
Imagine un chef cuisinier qui doit improviser un plat avec ce qu'il trouve. Il réfléchit à ce qu'il va faire, ouvre le frigo pour voir les ingrédients disponibles, constate qu'il manque des œufs, adapte sa recette, puis regoûte avant de servir. Il ne prépare pas tout d'un coup — il boucle, observe, ajuste. C'est exactement ce que fait un agent ReAct.

Qu'est-ce que ReAct ?

ReAct est un acronyme : Reasoning + Acting. C'est le pattern fondamental qui transforme un LLM passif en un agent capable d'accomplir des tâches complexes. (Formalisé en 2022 par des chercheurs de Princeton et Google — ICLR 2023.)

L'idée centrale : avant chaque action, l'agent raisonne à voix haute (en interne) sur ce qu'il doit faire et pourquoi. Après chaque action, il observe le résultat et décide de la suite. Ce cycle se répète jusqu'à ce que l'objectif soit atteint.

Les 3 phases du cycle
💭
Thought — Raisonner
L'agent réfléchit avant d'agir
Il analyse la situation, identifie ce qu'il lui manque, et choisit l'action la plus pertinente. Ce raisonnement est invisible pour l'utilisateur mais crucial pour la qualité des décisions.
Action — Agir
Il utilise un outil ou génère une réponse
L'agent appelle un outil concret : chercher sur le web, lire un fichier, exécuter du code, appeler une API… Chaque action produit un résultat observable.
👁
Observation — Observer
Il lit le résultat et recommence si besoin
Le résultat de l'action est intégré dans le contexte. L'agent décide si l'objectif est atteint ou s'il doit repartir en phase de réflexion pour affiner son approche.

Un exemple pas à pas

Tu demandes à un agent : « Quel temps fait-il à Paris et qu'est-ce que je devrais porter aujourd'hui ? » Voici sa trace interne complète :

Trace interne de l'agent
Think L'utilisateur veut la météo de Paris et des conseils vestimentaires. Je dois d'abord obtenir la météo actuelle via l'outil météo.
Act Appel outil get_weather(city="Paris")
Observe Résultat : 12°C, ciel nuageux, 70% de risque de pluie, vent 20 km/h.
Think Il fait frais et il y a un fort risque de pluie. Je peux maintenant formuler des conseils vestimentaires adaptés. J'ai toutes les infos nécessaires.
Réponse « À Paris aujourd'hui : 12°C et nuageux avec 70% de risque de pluie. Je te conseille un manteau imperméable, des couches en dessous, et d'emporter un parapluie. »

Deux cycles Think → Act → Observe ont suffi ici. Pour une tâche plus complexe, l'agent en enchaîne autant que nécessaire.

Quand l'agent s'arrête-t-il ?

L'agent ne boucle pas indéfiniment. Trois conditions peuvent terminer la boucle :

Objectif atteint : l'agent estime avoir une réponse complète et satisfaisante à la demande initiale.
Limite de tours : un nombre maximum d'itérations est fixé pour éviter les boucles infinies (typiquement 10 à 50 selon les systèmes).
Erreur bloquante : un outil échoue de façon répétée, ou l'agent détecte qu'il tourne en rond sans progresser.
⚠️ Le risque de la boucle infinie
Un agent mal conçu peut se retrouver dans une boucle où chaque observation génère une nouvelle action sans jamais converger. C'est pourquoi les bons frameworks imposent toujours une limite de tours, et les agents sont entraînés à reconnaître quand ils tournent en rond.

Les limites de ReAct

🐌
La latence s'accumule
Chaque tour implique un appel au LLM + l'exécution d'un outil. Une tâche de 10 tours peut prendre plusieurs dizaines de secondes.
💰
Le coût augmente
Chaque appel LLM consomme des tokens. Plus il y a de tours, plus le contexte grossit, plus c'est coûteux.
🧩
La planification est limitée
ReAct est réactif : il décide au coup par coup. Pour des plans longs et complexes, d'autres patterns (Tree-of-Thought, etc.) sont plus efficaces.
🎯
La dérive d'objectif
Sur des tâches très longues, l'agent peut perdre de vue l'objectif initial, surtout si le contexte est saturé d'informations.
✅ Le compromis en pratique
Malgré ses limites, ReAct reste le pattern dominant car il est simple, robuste, et fonctionne remarquablement bien sur la majorité des tâches du monde réel. Des variantes comme ReAct + réflexion ou ReAct + mémoire externe permettent d'étendre ses capacités.