{"meta":{"title":"Chargement d’outils à la demande avec recherche d’outils","intro":"La recherche d’outils conserve votre contexte petit en laissant Copilot CLI charger des outils externes uniquement lorsqu’une tâche en a besoin.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/fr/enterprise-cloud@latest/copilot/concepts","title":"Concepts"},{"href":"/fr/enterprise-cloud@latest/copilot/concepts/agents","title":"Agent"},{"href":"/fr/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli","title":"Copilot CLI"},{"href":"/fr/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/tool-search","title":"Recherche d’outils"}],"documentType":"article"},"body":"# Chargement d’outils à la demande avec recherche d’outils\n\nLa recherche d’outils conserve votre contexte petit en laissant Copilot CLI charger des outils externes uniquement lorsqu’une tâche en a besoin.\n\n## Présentation\n\nLa connexion de serveurs MCP et d’autres outils externes est Copilot CLI puissante, mais chaque outil que vous ajoutez comporte un coût : sa définition prend de l’espace dans la fenêtre contextuelle du modèle, et un long menu d’outils rend plus difficile pour l’agent de choisir celui qui convient. Le chargement d’outils à la demande (ou « recherche d’outils ») empêche la fenêtre de contexte d’être encombrée par les définitions des outils que l’agent n’utilise pas. L’agent commence par ses outils intégrés et un moyen de rechercher le reste, puis charge des outils supplémentaires uniquement lorsqu’il est nécessaire d’effectuer une tâche.\n\nLa recherche d’outils résout deux problèmes associés à un nombre croissant d’outils :\n\n* **Contexte gaspillé.** Quelques dizaines de définitions d’outils peuvent consommer 10 000 à 20 000 tokens avant même que l’agent ait commencé à travailler.\n* **Précision de sélection de l’outil détériorée.** Lorsque plusieurs dizaines d’outils sont affichés simultanément, le modèle risque davantage de choisir le mauvais outil.\n\n## Que se passe-t-il pendant une session\n\nChaque fois que vous saisissez une instruction, le CLI vérifie l’inventaire actuel des outils et détermine s’il doit utiliser la fonction de recherche d’outils. En dessous de 30 outils, les économies que vous obtenez à partir de la recherche d’outils ne valent pas la peine, donc Copilot CLI ignore entièrement la recherche d’outils et charge simplement tout.\n\nAu départ, lorsque la recherche d’outils est utilisée, seuls les outils intégrés de l’interface CLI sont chargés. Tout le reste , les outils MCP et d’autres outils externes, sont conservés. L’agent peut voir que ces outils existent et à peu près ce qu’ils sont pour, mais que leurs définitions complètes ne sont pas encore chargées.\n\nLorsque l’agent atteint une étape qui a besoin d’un outil qu’il n’a pas chargé, il exécute une recherche rapide sur les outils disponibles et extrait les correspondances les plus proches dans le contexte. Ces outils restent ensuite disponibles pendant le reste de la conversation, de sorte que la recherche n’a lieu que la première fois que l’un d’eux est nécessaire.\n\nCette consultation initiale coûte un échange supplémentaire avec le modèle, mais ce surcoût est largement amorti en gardant un contexte réduit à chaque échange suivant.\n\n### Outils toujours chargés\n\nQuelques outils ignorent la recherche d’outils et sont prêts immédiatement :\n\n* ```\n            les outils intégrés de Copilot CLI (grep, glob, bash, edit, etc.).\n  ```\n* Outils provenant d’un serveur MCP que vous avez configuré avec `deferTools: \"never\"`. Consultez plus loin dans cet article [Maintenir les outils d’un serveur MCP toujours chargés](#keeping-an-mcp-servers-tools-always-loaded).\n* Outils chargés par un agent personnalisé. Consultez [Configuration de la mise en attente de l’outil dans les agents personnalisés](#configuring-tool-deferral-in-custom-agents) plus loin dans cet article.\n\n## Désactivation de la recherche d’outils\n\nLa recherche d’outils est activée par défaut et s’active automatiquement chaque fois que vous êtes sur un modèle pris en charge et que vous disposez d’outils connectés suffisants pour le rendre utile. Pour désactiver la recherche d’outils et revenir au chargement de tous les outils, définissez `toolSearch: false` dans vos paramètres personnels. Consultez « [GitHub Copilot le répertoire de configuration du CLI](/fr/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson) ».\n\n### Modèles pris en charge\n\n| Famille            | Versions prises en charge                                 |\n| ------------------ | --------------------------------------------------------- |\n| Claude (Anthropic) | Mythos Preview, Fable, Sonnet 4.0+, Opus 4.0+ (pas Haiku) |\n| GPT (OpenAI)       | GPT-5.4 et versions ultérieures                           |\n\nSur n’importe quel autre modèle, tous les outils sont chargés en amont.\n\n### Garder les outils du serveur MCP chargés en permanence\n\nParfois, vous souhaiterez peut-être que les outils d’un serveur MCP particulier soient toujours devant l’agent( par exemple, un serveur dont les outils sont utilisés constamment, ou un serveur où l’étape de recherche supplémentaire n’en vaut pas la peine. Chaque serveur MCP a un `deferTools` paramètre qui contrôle ceci :\n\n* `\"auto\"` (valeur par défaut) : les outils du serveur se comportent comme n’importe quel autre et peuvent être différés une fois que vous dépassez le seuil.\n* `\"never\"`: les outils du serveur sont toujours inclus dans la liste des outils de l’agent, même si la recherche d’outils est active pour tout le reste.\n\nLe moyen le plus simple de le définir consiste à utiliser la commande slash `/mcp edit`. Dans le formulaire de modification du serveur MCP, réglez **Différer les outils** sur **Jamais**. Vous pouvez également le définir directement dans `~/.copilot/mcp-config.json`:\n\n```json\n{\n    \"mcpServers\": {\n        \"my-server\": {\n            \"type\": \"stdio\",\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@example/mcp-server\"],\n            \"deferTools\": \"never\",\n            \"tools\": [\"*\"]\n        }\n    }\n}\n```\n\n### Configuration du différé de l’outil dans les agents personnalisés\n\nLorsqu’un agent personnalisé répertorie ses outils par nom, ces outils sont toujours chargés afin que l’agent puisse les utiliser immédiatement. C’est généralement ce que vous voulez, mais si un agent déclare un grand ensemble d’outils et ne touche que quelques-uns d’entre eux dans une exécution donnée, vous pouvez remettre cette liste à la recherche d’outils afin que les outils soient découverts en fonction des besoins plutôt que tous chargés à la fois.\n\nPour un agent Markdown (`.github/agents/*.md`), ajoutez-le `deferred-tool-loading: true` au frontmatter :\n\n```markdown\n---\nname: my-agent\ndescription: Works with a large catalog of tools\ntools:\n    - some_mcp_tool\n    - another_mcp_tool\n    # ...many more\ndeferred-tool-loading: true\n---\n\nAgent instructions here.\n```\n\nGardez à l’esprit les éléments suivants concernant le `deferred-tool-loading` paramètre :\n\n* Elle a uniquement un effet lorsque la recherche d’outils est active (autrement dit, sur un modèle pris en charge avec suffisamment d’outils pour franchir le seuil).\n* Il importe uniquement pour les agents qui nomment leurs outils. Les agents utilisant le joker `*` utilisent déjà la recherche d’outils.\n\n## Optimisation des outils pour la recherche d’outils\n\nLa recherche d’outils correspond à ce que l’agent tente de faire par rapport au **nom** de chaque outil, à sa **description** et à ses **noms de paramètres et descriptions**. Une formulation claire et spécifique permet à un outil de s’afficher pour les demandes appropriées :\n\n* Nommez les outils pour ce qu’ils font afin qu’ils soient plus faciles à trouver.\n* Rédigez des descriptions avec les mots que les gens rechercheraient réellement plutôt qu’avec des termes vagues."}