Passer au contenu principal
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.
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 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 :
ValeurComportement
(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.
trueLa 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.
autoVé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:NIdentique à 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.
falseLa 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