Les définitions d'outils et les blocs tool_result accumulés consomment votre « context window » (fenêtre de contexte). Les agents de longue durée disposant de nombreux outils ou effectuant de nombreux tours peuvent épuiser le contexte disponible avant que la tâche ne soit terminée. Quatre approches traitent ce problème à différents points du pipeline.
Chaque approche cible une source différente de pression sur le contexte. Choisissez celle qui correspond à l'endroit où vos tokens sont consommés.
| Approche | Ce qu'elle réduit | Quand elle convient | En savoir plus |
|---|---|---|---|
| Recherche d'outils | Définitions d'outils chargées en amont | Grands ensembles d'outils (20+ outils) où la plupart des outils ne sont pas nécessaires à chaque tour | Outil de recherche d'outils |
| Appel programmatique d'outils | Allers-retours de tool_result | Chaînes d'appels d'outils pouvant s'exécuter comme un seul script | Appel programmatique d'outils |
| Mise en cache des prompts | Coût en tokens des définitions d'outils répétées | Ensembles d'outils stables sur de nombreuses requêtes | Utilisation d'outils avec mise en cache des prompts |
| Édition de contexte | Anciens blocs tool_result dans l'historique | Longues conversations où les premiers résultats ne sont plus pertinents | Édition de contexte |
La recherche d'outils maintient les définitions d'outils hors de la fenêtre de contexte jusqu'à ce que Claude les demande. Au lieu d'envoyer 50 schémas d'outils en amont, vous envoyez un seul outil tool_search et laissez Claude découvrir le reste à la demande. Cela échange une petite quantité de latence (un tour supplémentaire pour rechercher un outil) contre une réduction importante de l'utilisation de base du contexte.
L'appel programmatique d'outils condense une séquence d'appels d'outils en un seul bloc de code que Claude écrit et que le bac à sable d'exécution de code d'Anthropic exécute. Plutôt que cinq allers-retours de tool_use et tool_result, Claude émet un seul script qui appelle les cinq fonctions depuis le bac à sable. Les résultats intermédiaires n'entrent jamais dans l'historique de conversation.
La mise en cache des prompts ne réduit pas le nombre de tokens dans le contexte, mais elle réduit ce que vous payez pour eux lors des requêtes suivantes. Si vos définitions d'outils sont stables, mettez-les en cache une fois et réutilisez le préfixe mis en cache sur des milliers de requêtes. C'est le bon choix lorsque l'ensemble d'outils est volumineux mais fixe.
L'édition de contexte supprime les anciens blocs tool_result de l'historique de conversation une fois qu'ils ont rempli leur fonction. Une longue boucle d'agent peut produire des centaines de résultats intermédiaires qui étaient utiles sur le moment mais qui sont désormais du poids mort. L'édition de contexte vous permet de les élaguer sans redémarrer la conversation.
Ces approches se composent. Un agent de longue durée peut utiliser la recherche d'outils pour garder l'ensemble d'outils léger, la mise en cache des prompts pour amortir le coût des définitions restantes, et l'édition de contexte pour élaguer les résultats obsolètes à mesure que la conversation s'allonge. Chacune résout une partie différente du problème, il n'y a donc aucun conflit à les utiliser ensemble.
Un point de départ raisonnable pour un agent à volume élevé :
Chargez les définitions d'outils à la demande plutôt qu'en amont.
Condensez les chaînes d'appels d'outils en un seul script exécutable.
Mettez en cache les définitions d'outils entre les requêtes pour réduire les coûts en tokens.
Élaguez les résultats d'outils obsolètes des conversations de longue durée.
Was this page helpful?