La recherche en IA te passionne ?
Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Identifier les coûts des tokens cachés dans les boucles agentiques
Dans le monde des systèmes d'intelligence artificielle agentiques, les coûts associés aux tokens peuvent rapidement devenir un problème majeur si l'on ne prend pas les précautions nécessaires. Ces coûts s'accumulent souvent de manière insidieuse, en particulier lorsque les flux de travail impliquent plusieurs étapes. Cet article se penche sur les raisons de cette accumulation et propose des modèles architecturaux pour mieux les contrôler avant qu'ils n'atteignent des niveaux critiques.
Sujets abordés
L'article aborde plusieurs points clés : pourquoi les coûts des tokens augmentent de manière non linéaire dans les flux de travail agentiques multi-étapes, et comment la distinction entre état et contexte est essentielle pour les gérer. Il identifie cinq modes de défaillance distincts, allant de l'accumulation de contexte O(N²) à la duplication de l'invite système statique, qui expliquent la majeure partie des dépenses excessives en tokens dans les déploiements en production. Des solutions pratiques sont proposées pour chaque piège, incluant la compression de contexte, les disjoncteurs, le filtrage de charge utile, le routage dynamique de modèles et l'injection d'invite en temps réel.
Le problème central
Créer un wrapper LLM à tour unique peut sembler simple, mais empêcher un agent autonome de compromettre votre infrastructure sur une période prolongée est un défi bien plus complexe. Le problème fondamental réside dans le fait que chaque fois qu'un LLM traite du texte, il facture en tokens, ces petites unités de texte qui sont essentielles pour que les modèles puissent lire et écrire. Les tokens sont comparables aux unités mesurées sur votre facture cloud : plus vous envoyez de tokens par appel API, plus la facture augmente. Cela reste relativement simple pour un chatbot. Cependant, dans une boucle agentique, où une IA appelle de manière autonome des outils, lit les résultats et planifie ses prochaines actions à travers de nombreuses étapes, les coûts des tokens ne croissent pas de manière linéaire. Ils s'accumulent. Une configuration naïve qui intègre chaque sortie d'outil dans un tableau de messages en constante augmentation peut transformer une tâche d'automatisation à 0,05 $ en une boucle infinie à 5,00 $ sans déclencher une seule erreur.
La solution commence par une distinction mentale claire entre l'état, qui est le minimum de faits nécessaires pour faire avancer la tâche, et le contexte, qui est la transcription complète et détaillée de tout ce qui s'est passé jusqu'à présent. La plupart des cadres agentiques confondent ces deux notions par défaut, et évaluer quels cadres valent votre temps avant de vous architecturer autour d'eux est crucial. Les cinq pièges de coûts ci-dessous illustrent ce à quoi ressemble cette confusion état/contexte en production.
1. La taxe d'accumulation de contexte O(N²)
Le concept : Dans une boucle agentique, transmettre l'historique complet de la conversation à chaque appel de modèle signifie que vous payez pour les mêmes tokens historiques à plusieurs reprises, et pas seulement une fois.
Comment ça fonctionne : La plupart des frameworks d'orchestration ajoutent par défaut chaque message utilisateur, assistant et outil à un seul tableau en croissance. Au 20ème pas d'un flux de travail de 20 étapes, le modèle relit tout depuis les étapes 1 à 19. La solution est la compression de contexte : réduire les tours précédents en un résumé dense, ou utiliser la mise en cache de prompt KV-cache pour figer l'état de préfixe et ne payer que pour le delta — une conséquence directe de la façon dont les mécanismes d'attention évoluent avec la longueur de la séquence.
À noter : Compresser trop agressivement peut entraîner une « amnésie contextuelle ». L'agent perd un paramètre critique qu'il a récupéré à l'étape 2, hallucine un remplacement à l'étape 8, et cascade dans une chaîne d'appels d'outils en échec.
Quand l'utiliser : Appliquez la compression de contexte à tout flux de travail multi-étapes prévu pour dépasser cinq tours ou interagir avec des API externes lourdes en données et à latence élevée.
2. Boucles de réessai illimitées sur un état obsolète
Le gonflement du contexte n'est pas seulement un problème d'accumulation. Il s'aggrave activement lorsque les choses tournent mal.
Le concept : Lorsqu'un appel d'outil échoue, l'agent essaie de se corriger mais traîne le contexte gonflé de l'échec à chaque réessai, ce qui augmente les coûts à chaque tentative.
Comment ça fonctionne : Une boucle ReAct (Raisonnement et Action) standard attrape une exception — par exemple, une erreur 400 Bad Request — et ajoute la trace d'erreur au contexte avant de demander au modèle de la corriger. Si l'agent reste bloqué, chaque réessai envoie également tous les échecs précédents. La solution est un disjoncteur au niveau de l'orchestrateur : retirer les trajectoires échouées de l'état avant de présenter l'erreur au modèle, ou arrêter complètement l'exécution après un seuil.
À noter : Supprimer complètement l'historique des échecs signifie que l'agent répétera probablement exactement le même appel d'outil invalide. Vous devez extraire et injecter un « heuristique d'échec » déterministe (par exemple, « L'outil X a échoué parce que le paramètre Y était manquant ») plutôt que la trace de pile brute.
Quand l'utiliser : Appliquez des disjoncteurs et une taille de trajectoire sur tous les appels d'API externes non déterministes où le modèle génère dynamiquement la charge utile.
3. Gonflement de charge utile d'outil non filtré
Avec les boucles de réessai sous contrôle, le prochain point à examiner est ce qui est introduit dans le contexte en premier lieu — spécifiquement, la sortie brute de vos outils.
Le concept : Alimenter des réponses API brutes et non analysées directement dans le contexte de l'agent gaspille des tokens sur des éléments de structure et des champs que l'agent n'utilisera jamais.
Comment ça fonctionne : Un agent interroge une base de données ou une API tierce et reçoit un énorme payload JSON. Au lieu de déverser ce JSON brut dans l'invite, faites-le passer par une couche d'extraction déterministe (jq, un filtre regex, ou un analyseur dédié) qui supprime les métadonnées, les champs nuls et le boilerplate. Ce qui entre dans le contexte ne devrait être que les paires clé-valeur validées par le schéma dont l'agent a réellement besoin pour avancer.
À noter : Si la couche d'extraction supprime silencieusement un champ dont l'agent a besoin en aval, il hallucine silencieusement une valeur plausible pour combler le vide — et cette valeur va directement dans vos écritures de base de données.
Quand l'utiliser : Déployez un middleware de filtrage de charge utile chaque fois qu'un agent s'intègre à des systèmes hérités, des API REST verbeuses ou des outils de scraping web non structurés.
4. Routage de modèle monolithique
Une fois que votre contexte est épuré et que vos charges utiles sont filtrées, il reste un levier de coût que la plupart des ingénieurs ignorent : quel modèle effectue le travail.
Le concept : Par défaut, utiliser votre modèle le plus performant (et coûteux) pour chaque étape d'un flux de travail — y compris des tâches triviales comme le formatage d'un objet JSON ou la classification d'une intention.
Comment ça fonctionne : Un flux de travail agentique est en réalité un graphe dirigé de tâches hétérogènes. Un raisonnement sémantique complexe et une planification nécessitent un modèle lourd. Mais pour les nœuds traitant de la classification d'intention, du formatage JSON ou de la validation de schéma, l'orchestrateur peut acheminer dynamiquement vers un modèle plus petit et moins coûteux (par exemple, Llama 3 8B ou GPT-4o-mini) à une fraction du coût en tokens.
À noter : Le routage ajoute une surcharge d'orchestration. Si votre système doit charger un modèle différent dans la VRAM ou ouvrir une nouvelle connexion fournisseur à chaque étape, le temps de latence peut annuler les économies réalisées.
Quand l'utiliser : Le routage dynamique de modèles est bénéfique dans des systèmes multi-agents à haut débit où le graphe de flux de travail contient des nœuds clairement isolés pour la transformation de données déterministes.
5. Duplication statique de contexte
Le dernier piège se situe au tout début de chaque appel API, dans l'invite système elle-même.
Le concept : Injecter une énorme invite système couvrant chaque définition d'outil et chaque cas particulier dans chaque appel API, même lorsque la plupart d'entre elles sont sans rapport avec l'étape actuelle.
Comment ça fonctionne : Au lieu de charger une invite système de 5 000 tokens définissant 20 outils, construisez vos invites dynamiquement en utilisant les techniques abordées ici. L'orchestrateur maintient un index vectoriel ou un moteur de règles léger des outils et contraintes disponibles. Au moment de l'exécution, il injecte uniquement les définitions d'outils et les directives comportementales dont l'étape actuelle a réellement besoin — rien de plus.
À noter : L'injection dynamique de contexte ouvre une vulnérabilité d'injection d'invite si la requête de recherche est influencée par une entrée utilisateur non fiable. Une requête malveillante pourrait amener l'orchestrateur à récupérer et exécuter une définition d'outil altérée.
Quand l'utiliser : Passez à la construction dynamique d'invite lorsque le nombre d'outils de votre agent dépasse une douzaine, ou lorsque vous exécutez des systèmes multi-tenant avec des contrôles d'accès basés sur des rôles distincts.
Gestion des coûts des tokens en production
Ces cinq pièges partagent une cause racine commune : traiter le contexte comme illimité. Une fois que vous commencez à le gérer délibérément — en compactant l'historique, en taillant les échecs, en filtrant les charges utiles, en routant par complexité de tâche et en injectant uniquement ce dont chaque étape a besoin — le profil de coût de votre système agentique change considérablement.
Mais réduire votre consommation de tokens en temps d'exécution n'est que le premier problème. Au jour 100 en production, vous ferez face à des coûts d'infrastructure croissants liés à la gestion de l'état. Stocker d'énormes trajectoires d'agents non compressées pour l'observabilité ou la récupération après un crash gonflera votre stockage et dégradera rapidement la latence des requêtes. Mettez en œuvre des TTL agressifs sur les états de session et l'archivage en stockage froid pour les journaux d'audit à long terme, afin que votre base de données opérationnelle ne contienne que des états actifs et prioritaires.
Les tokens sont la monnaie de calcul des systèmes agentiques. Les traiter comme une ressource gratuite est un moyen fiable d'échouer en production. Ne vous attendez pas à ce que les fournisseurs de modèles réduisent leurs prix API. Architectez votre couche d'orchestration pour traiter le contexte comme une ressource contrainte et volatile dès le premier jour.





