Les définitions d'outils et les blocs tool_result accumulés consomment votre fenêtre de contexte. Les agents de longue durée avec de nombreux outils ou de nombreux tours peuvent épuiser le contexte disponible avant que la tâche soit terminée. Quatre approches abordent cela à différents points du pipeline.
Chaque approche cible une source différente de pression contextuelle. Choisissez celle qui correspond à l'endroit où vos jetons sont utilisés.
| Approche | Ce qu'elle réduit | Quand elle convient | En savoir plus |
|---|---|---|---|
| Recherche d'outils | Définitions d'outils chargées à l'avance | Grands ensembles d'outils (20+ outils) où la plupart des outils ne sont pas nécessaires à chaque tour | Outil de recherche d'outils |
| Appel d'outils programmatique | Allers-retours tool_result | Chaînes d'appels d'outils qui peuvent s'exécuter comme un seul script | Appel d'outils programmatique |
| Mise en cache des invites | Coût en jetons 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 invites |
| Édition de contexte | Anciens blocs tool_result dans l'historique | Longues conversations où les résultats antérieurs ne sont plus pertinents | Édition de contexte |
La recherche d'outils garde les définitions d'outils en dehors de la fenêtre de contexte jusqu'à ce que Claude les demande. Au lieu d'envoyer 50 schémas d'outils à l'avance, 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 du contexte de base.
L'appel d'outils programmatique réduit une séquence d'appels d'outils à un seul bloc de code que Claude écrit et que le bac à sable d'exécution de code d'Anthropic exécute. Au lieu de cinq allers-retours de tool_use et tool_result, Claude émet un script qui appelle les cinq fonctions depuis le bac à sable. Les résultats intermédiaires n'entrent jamais dans l'historique de la conversation.
La mise en cache des invites ne réduit pas le nombre de jetons en 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 quand l'ensemble d'outils est grand mais fixe.
L'édition de contexte supprime les anciens blocs tool_result de l'historique de la 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 à l'époque mais qui sont maintenant du poids mort. L'édition de contexte vous permet de les réduire sans redémarrer la conversation.
Ces approches se composent. Un agent de longue durée pourrait utiliser la recherche d'outils pour garder l'ensemble d'outils léger, la mise en cache des invites pour amortir le coût des définitions restantes, et l'édition de contexte pour réduire les résultats obsolètes à mesure que la conversation se développe. 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 à haut volume :
Charger les définitions d'outils à la demande au lieu de à l'avance.
Réduire les chaînes d'appels d'outils à un seul script exécutable.
Mettre en cache les définitions d'outils sur les requêtes pour réduire les coûts en jetons.
Réduire les résultats d'outils obsolètes des conversations de longue durée.
Was this page helpful?