SpyBara
Go Premium

agent-sdk/tool-search.md 2026-05-14 17:02 UTC to 2026-05-15 22:58 UTC

129 added, 0 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

Adapter à de nombreux outils avec la recherche d'outils

Adaptez votre agent à des milliers d'outils en découvrant et chargeant uniquement ce qui est nécessaire, à la demande.

La recherche d'outils permet à votre agent de travailler avec des centaines ou des milliers d'outils en les découvrant et en les chargeant dynamiquement à la demande. Au lieu de charger toutes les définitions d'outils dans la fenêtre de contexte dès le départ, l'agent recherche dans votre catalogue d'outils et charge uniquement les outils dont il a besoin.

Cette approche résout deux défis à mesure que les bibliothèques d'outils se développent :

  • 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.

La recherche d'outils est activée par défaut. Cette page couvre son fonctionnement, comment la configurer, et comment optimiser la découverte d'outils.

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.

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 lorsque ANTHROPIC_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.

La recherche d'outils s'applique à tous les outils enregistrés, qu'ils proviennent de serveurs MCP distants ou de serveurs MCP SDK personnalisés. Lors de l'utilisation de 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 :

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
prompt: "Find and run the appropriate database query",
options: {
mcpServers: {
"enterprise-tools": {
// Connect to a remote MCP server
type: "http",
url: "https://tools.example.com/mcp"
}
},
allowedTools: ["mcp__enterprise-tools__*"], // Wildcard pre-approves all tools from this server
env: {
ENABLE_TOOL_SEARCH: "auto:5" // Activate tool search when tools exceed 5% of context
}
}
})) {
if (message.type === "result" && message.subtype === "success") {
console.log(message.result);
}
}

Définir 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 comme search_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 :

You can search for tools to interact with Slack, GitHub, and Jira.

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