- Efficacité du contexte : Les définitions d’outils peuvent consommer de grandes portions de la fenêtre de contexte (50 outils peuvent utiliser 10-20 K tokens), laissant moins de place pour le travail réel.
- Précision de la sélection d’outils : La précision de la sélection d’outils se dégrade avec plus de 30-50 outils chargés à la fois.
Fonctionnement de la recherche d’outils
Lorsque la recherche d’outils est active, les définitions d’outils sont retenues de la fenêtre de contexte. L’agent reçoit un résumé des outils disponibles et recherche les outils pertinents lorsque la tâche nécessite une capacité non déjà chargée. Les 3-5 outils les plus pertinents sont chargés dans le contexte, où ils restent disponibles pour les tours suivants. Si la conversation est assez longue pour que le SDK compacte les messages antérieurs afin de libérer de l’espace, les outils précédemment découverts peuvent être supprimés, et l’agent recherche à nouveau selon les besoins. La recherche d’outils ajoute un aller-retour supplémentaire la première fois que Claude découvre un outil (l’étape de recherche), mais pour les grands ensembles d’outils, cela est compensé par un contexte plus petit à chaque tour. Avec moins d’environ 10 outils, charger tout dès le départ est généralement plus rapide. Pour plus de détails sur le mécanisme API sous-jacent, consultez Recherche d’outils dans l’API.La recherche d’outils nécessite Claude Sonnet 4 ou version ultérieure, ou Claude Opus 4 ou version ultérieure. Les modèles Haiku ne supportent pas la recherche d’outils.
Configurer la recherche d’outils
La recherche d’outils est activée par défaut. Elle est désactivée par défaut sur Vertex AI, où elle est supportée pour Claude Sonnet 4.5 et versions ultérieures et Claude Opus 4.5 et versions ultérieures. Elle est également désactivée lorsqueANTHROPIC_BASE_URL pointe vers un hôte tiers, car la plupart des proxies ne transmettent pas les blocs tool_reference. Vous pouvez remplacer l’un ou l’autre défaut avec la variable d’environnement ENABLE_TOOL_SEARCH :
| Valeur | Comportement |
|---|---|
| (non défini) | La recherche d’outils est activée. Les définitions d’outils sont différées et découvertes à la demande. Revient au chargement initial sur Vertex AI ou un ANTHROPIC_BASE_URL tiers. |
true | La recherche d’outils est toujours activée. Le SDK envoie l’en-tête bêta même sur Vertex AI et via des proxies. Les requêtes échouent sur les modèles Vertex AI antérieurs à Sonnet 4.5 ou Opus 4.5, ou sur les proxies qui ne supportent pas les blocs tool_reference. |
auto | Vérifie le nombre de tokens combiné de toutes les définitions d’outils par rapport à la fenêtre de contexte du modèle. S’ils dépassent 10 %, la recherche d’outils s’active. S’ils sont en dessous de 10 %, tous les outils sont chargés dans le contexte normalement. |
auto:N | Identique à auto avec un pourcentage personnalisé. auto:5 s’active lorsque les définitions d’outils dépassent 5 % de la fenêtre de contexte. Les valeurs plus basses s’activent plus tôt. |
false | La recherche d’outils est désactivée. Toutes les définitions d’outils sont chargées dans le contexte à chaque tour. |
auto, le seuil est basé sur la taille combinée de toutes les définitions d’outils sur tous les serveurs.
Définissez la valeur dans l’option env sur query(). Cet exemple se connecte à un serveur MCP distant qui expose de nombreux outils, les pré-approuve tous avec un caractère générique, et utilise auto:5 pour que la recherche d’outils s’active lorsque leurs définitions dépassent 5 % de la fenêtre de contexte :
ENABLE_TOOL_SEARCH sur "false" désactive la recherche d’outils et charge toutes les définitions d’outils dans le contexte à chaque tour. Cela supprime l’aller-retour de recherche, ce qui peut être plus rapide lorsque l’ensemble d’outils est petit (moins d’environ 10 outils) et que les définitions s’adaptent confortablement à la fenêtre de contexte.
Optimiser la découverte d’outils
Le mécanisme de recherche fait correspondre les requêtes aux noms et descriptions des outils. Des noms commesearch_slack_messages apparaissent pour une plus large gamme de requêtes que query_slack. Les descriptions avec des mots-clés spécifiques (« Rechercher les messages Slack par mot-clé, canal ou plage de dates ») correspondent à plus de requêtes que les descriptions génériques (« Interroger Slack »).
Vous pouvez également ajouter une section de message système listant les catégories d’outils disponibles. Cela donne à l’agent un contexte sur les types d’outils disponibles à rechercher :
Limites
- Outils maximum : 10 000 outils dans votre catalogue
- Résultats de recherche : Retourne 3-5 outils les plus pertinents par recherche
- Support du modèle : Claude Sonnet 4 et versions ultérieures, Claude Opus 4 et versions ultérieures (pas de Haiku)
Documentation connexe
- Recherche d’outils dans l’API : Documentation API complète pour la recherche d’outils, y compris les implémentations personnalisées
- Connecter les serveurs MCP : Connectez-vous à des outils externes via les serveurs MCP
- Outils personnalisés : Créez vos propres outils avec les serveurs MCP SDK
- Référence du SDK TypeScript : Référence API complète
- Référence du SDK Python : Référence API complète