Un agent n'est pas un nouveau type de modèle. C'est le même LLM, appelé plusieurs fois de suite dans une boucle — en lui donnant à chaque fois un peu plus de contexte, jusqu'à ce qu'il ait assez d'information pour répondre.
Un détective ne résout pas une enquête en un seul éclair de génie. Il observe un indice, en déduit une hypothèse, va vérifier cette hypothèse sur le terrain, note ce qu'il trouve, et recommence — jusqu'à avoir assez d'éléments pour conclure. Chaque nouvelle observation vient s'ajouter à son carnet de notes, qu'il relit avant chaque nouvelle déduction.
ReAct (Reasoning + Acting) formalise ce cycle. À chaque tour, le modèle reçoit tout ce qui s'est passé avant, et produit soit une nouvelle pensée, soit une action à exécuter.
Question posée à l'agent : « Quelle température fait-il à Paris, en Fahrenheit ? » L'agent ne connaît ni la météo ni la formule de conversion à l'avance — il doit utiliser deux outils. Avance étape par étape et regarde le contexte grandir réellement, comme un vrai historique de conversation envoyé au modèle à chaque appel.
La barre montre la taille du contexte (en tokens estimés) que le modèle doit relire à chaque appel — elle ne fait que grandir, jamais diminuer, tant que la boucle continue.
Chaque Thought et chaque Action est une prédiction — donc une occasion de se tromper : mauvais outil choisi, mauvais argument, mauvaise interprétation de l'observation. Ce sujet est développé en détail dans un épisode dédié plus loin dans la série.
# La boucle ReAct, réduite à l'essentiel context = ["Question : quelle température à Paris, en Fahrenheit ?"] for step in range(MAX_STEPS): reponse = llm.generate("\n".join(context)) # même appel qu'un chatbot classique if reponse.type == "action": resultat = executer_outil(reponse.outil, reponse.arguments) context.append(f"Action: {reponse}") context.append(f"Observation: {resultat}") # le contexte grandit elif reponse.type == "final_answer": break # la boucle s'arrête
À chaque étape de la boucle, le modèle doit choisir parmi plusieurs outils disponibles. Ce choix n'est ni magique ni séparé du modèle : c'est encore une distribution de probabilité, comme à l'épisode 7 de la série LLM.