Comment fonctionne un agent LLM : contexte, outils et boucle de rétroaction

Un agent LLM n'est pas qu'un simple chatbot, c'est un système à rétroaction. Le modèle génère du texte, appelle des outils, observe les résultats (y compris les erreurs) et corrige sa trajectoire à l'itération suivante. Auparavant, le modèle écrivait du code à l'aveugle ; désormais, il sait ce qu'il a fait et peut le corriger. Voici l'architecture de base : • **Contexte** — entrée du modèle allant de 32K à 1M tokens (standard de l'industrie) • **Outils** (harness) — décrits via JSON Schema, appelés selon le format Anthropic ou l'API OpenAI Tools • **MCP** (Model Context Protocol) — standard d'intégration avec des systèmes tiers via JSON-RPC 2.0 (transport : stdin/stdout ou HTTP)

Traité par IA depuis Habr AI ; édité par Hamidun News
Comment fonctionne un agent LLM : contexte, outils et boucle de rétroaction
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #1Contexte — entrée du modèle allant de 32K à 1M tokens (standard de l'industrie)
Chiffre clé #2Outils (harness) — décrits via JSON Schema, appelés selon le format Anthropic ou l'API OpenAI Tools
Chiffre clé #3MCP (Model Context Protocol) — standard d'intégration avec des systèmes tiers via JSON-RPC 2.0 (transport : stdin/stdout ou HTTP)

Un agent LLM se distingue d'un modèle génératif par une boucle de rétroaction. Alors qu'un chatbot ne fait que générer du texte, un agent appelle des outils, récupère les résultats et affine sa réponse. Cela devient possible grâce à une architecture spécifique construite au-dessus du LLM.

Contexte et principes de base

Le LLM reçoit en entrée un bloc de texte appelé contexte. Sa taille est limitée : au début de l'ère des transformers, 32K tokens constituaient déjà une avancée majeure ; aujourd'hui, 1M tokens est devenu le standard de l'industrie. À partir du contexte, le modèle génère une suite — un fragment logiquement achevé, se terminant par un token spécial <stop>. Le contexte est ensuite étendu : le nouveau fragment y est ajouté, et le cycle se répète.

Appel des outils et leur description

Le modèle est entraîné à utiliser un formatage spécial pour appeler des fonctions externes. Chaque fournisseur implémente cela à sa manière : Anthropic utilise son propre format, tandis qu'Ollama et vLLM reproduisent l'API OpenAI Tools. Pour que le modèle sache quels outils sont à sa disposition, il faut les décrire au préalable dans le contexte (dans le « system prompt ») selon le standard JSON Schema — en précisant les paramètres, leurs types, leur description et leur caractère obligatoire ou non.

Voici un exemple de description d'un outil de vérification de livraison (get_delivery_status) : son nom, la description de sa finalité, et un schema avec les champs order_id (obligatoire, chaîne de caractères) et detailed (optionnel, booléen). Disposant de telles descriptions dans son contexte, le modèle génère des appels dans un format spécial (celui d'Anthropic, par exemple).

L'ensemble des outils disponibles est appelé harness (« attelage »). Pour décrire des outils qui ne sont pas intégrés à l'agent lui-même, on utilise le MCP (Model Context Protocol) — un standard de l'industrie pour l'IPC entre l'agent et des systèmes tiers. Les échanges se font via JSON-RPC 2.0, avec un transport soit par stdin/stdout d'un processus local (l'équivalent de FastCGI), soit par HTTP pour les serveurs externes.

Boucle de l'agent, rétroaction et gestion du contexte

L'API du fournisseur de LLM retourne des objets JSON typés. Le format varie : l'API OpenAI Tools est la plus répandue, Ollama et vLLM la reproduisent, tandis qu'Anthropic a son propre format. Dans la réponse (modèle claude-sonnet-4-5), l'appel arrive sous forme d'un bloc séparé dans le tableau content, avec un id, un nom et un objet input déjà analysé. Le signe d'un tour inachevé est stop_reason: "tool_use".

Le résultat de l'exécution est renvoyé dans un nouveau message avec le rôle user et un bloc tool_result, qui fait référence à l'id de l'appel. Si l'outil a échoué, un flag is_error est renvoyé avec la trace d'erreur. Une erreur n'interrompt pas la boucle : l'agent voit ce qu'il a fait et corrige au tour suivant. Auparavant, le modèle écrivait du code à l'aveugle ; désormais, il voit la rétroaction.

Le contexte comporte deux limites : une limite formelle (en cas de dépassement, l'API renvoie une erreur) et une limite opérationnelle (le volume à partir duquel la qualité se dégrade). Sur un contexte long, le début et la fin restent dans le focus, tandis que le milieu tend à disparaître. Deux techniques permettent de lutter contre ce phénomène :

• Déport vers des fichiers — seules 10 à 20 lignes de sortie sont placées dans le contexte, le reste étant écrit dans un fichier temporaire dont le chemin est indiqué à proximité ; le modèle extraira si besoin les informations nécessaires via un appel d'outil séparé. • Compactification — remplacement du contexte par un résumé concis généré par le LLM à l'aide d'un system prompt spécial, qui fixe la requête principale, les concepts clés, les détails techniques et les décisions architecturales.

Voilà pour l'architecture de base d'un agent. Pour s'exercer, il est recommandé d'écrire un agent directement sur l'API brute : on peut tenir en 200 à 300 lignes de code et obtenir un outil à peine moins performant que Claude Code ou Codex. La puissance d'un agent est déterminée avant tout par la puissance du modèle, pas par l'ensemble d'outils dont il dispose.

Dossier

Questions clés sur cet article

Que sait-on sur Contexte et principes de base ?

Le LLM reçoit en entrée un bloc de texte appelé contexte. Sa taille est limitée : au début de l'ère des transformers, 32K tokens constituaient déjà une avancée majeure ; aujourd'hui, 1M tokens est devenu le standard de l'industrie. À partir du contexte, le modèle génère une suite — un fragment logiquement achevé, se terminant par un token spécial <stop>. Le contexte est ensuite étendu : le nouveau fragment y est ajouté, et le cycle se répète.

Que sait-on sur Appel des outils et leur description ?

Le modèle est entraîné à utiliser un formatage spécial pour appeler des fonctions externes. Chaque fournisseur implémente cela à sa manière : Anthropic utilise son propre format, tandis qu'Ollama et vLLM reproduisent l'API OpenAI Tools. Pour que le modèle sache quels outils sont à sa disposition, il faut les décrire au préalable dans le contexte (dans le « system prompt ») selon le standard JSON Schema — en précisant les paramètres, leurs types, leur description et leur caractère obligatoire ou non. Voici un exemple de description d'un outil de vérification de livraison (ge

Que sait-on sur Boucle de l'agent, rétroaction et gestion du contexte ?

L'API du fournisseur de LLM retourne des objets JSON typés. Le format varie : l'API OpenAI Tools est la plus répandue, Ollama et vLLM la reproduisent, tandis qu'Anthropic a son propre format. Dans la réponse (modèle claude-sonnet-4-5), l'appel arrive sous forme d'un bloc séparé dans le tableau content, avec un id, un nom et un objet input déjà analysé. Le signe d'un tour inachevé est stop_reason: "tool_use". Le résultat de l'exécution est renvoyé dans un nouveau message avec le rôle user et un bloc tool_result, qui fait référence à l'id de l'appel. Si l'outil a échoué, un f

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
Qu'en pensez-vous ?
Chargement des commentaires…