7 septembre 2026
La plupart des runtimes d'agents partagent le même squelette fragile. Voici ce qui se passe quand on le remplace par un journal d'événements.

La plupart des frameworks d'agents IA d'aujourd'hui sont construits autour d'une boucle unique, sans fin, qui lit répétitivement la sortie du modèle, exécute un outil et renvoie le résultat dans le prompt. Ce squelette while (true) est simple à comprendre, mais il accouple la prise de décision, les effets de bord et la gestion de l'état dans un cycle monolithique. À mesure que les agents deviennent plus capables — gérant un raisonnement multi-étapes, des tâches de longue durée et des interactions humaines dans la boucle — la boucle devient un goulot d'étranglement pour la fiabilité, l'observabilité et l'extensibilité.
Dans un runtime classique basé sur une boucle, l'historique complet de l'agent réside dans un tampon de prompt mutable. À chaque itération, ce tampon est écrasé ou enrichi, ce qui rend difficile de répondre à des questions comme « quel appel d'outil a produit cette erreur ? » ou « que se passerait-il si l'on revenait à l'étape trois ? ». Le débogage nécessite de reproduire la séquence exacte des appels au modèle, ce qui est fragile lorsque le modèle est non déterministe ou lorsque les API externes changent. De plus, la boucle impose un modèle d'exécution synchrone ; les opérations de longue durée bloquent tout l'agent, et il n'y a pas de place naturelle pour injecter des tentatives, des délais d'attente ou une logique de compensation.
Remplacer la boucle par un journal d'événements en ajout seul change le modèle mental de « exécuter jusqu'à la fin » à « enregistrer ce qui s'est passé ». Chaque action significative — requête au modèle, appel d'outil, retour humain, erreur — devient un événement immuable avec un horodatage, un ID de corrélation et une charge utile. L'état actuel de l'agent est alors une fonction pure qui replie sur le journal. Cette approche reflète les modèles de type event-sourcing utilisés dans les systèmes distribués et donne au runtime un historique durable et interrogable sans instrumentation supplémentaire.
Commencez par définir un schéma d'événement minimal : type Event = ModelRequest | ToolCall | ToolResult | HumanInput | Error. Enveloppez la boucle existante dans une fonction qui émet un événement à chaque itération et le stocke dans un stockage en ajout seul (un fichier, une base de données ou un journal en mémoire pour les prototypes). Remplacez le tampon de prompt mutable par un réducteur pur qui reconstruit le prompt à partir du journal à chaque appel du modèle. Déplacez progressivement les effets de bord — appels API, écritures de fichiers — dans des gestionnaires séparés qui réagissent aux événements ToolCall, les transformant en flux de travail asynchrones et réessayables. Enfin, exposez le journal via un point de terminaison HTTP simple afin que les tableaux de bord de débogage, les scripts de relecture et les tests automatisés puissent le consommer directement.
Pour aller plus loin : https://dev.to/tomsun28/why-does-every-ai-agent-still-look-like-while-true--258a
Vous avez probablement vécu ce moment exact. Vous demandez à une IA une question de mathématiques. Elle présente les étapes...
7 sept. 2026