View a markdown version of this page

Organisation des outils - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Organisation des outils

Découvrir les bons outils et s'assurer que le LLM peut les utiliser efficacement est l'un des éléments les plus critiques d'un développement d'outils efficace. Lorsque vous commencez à développer des serveurs MCP, vous avez besoin d'une stratégie qui détermine :

  • Combien d'outils sont inclus dans un serveur MCP

  • Quels outils ne doivent pas être placés dans le même serveur MCP

  • Comment nommer les outils pour les rendre consultables et éviter les collisions de noms (différents outils portant le même nom)

  • Comment documenter les outils et le serveur MCP pour les rendre faciles à utiliser par le LLM

L'organisation des espaces de noms est un modèle de conception qui empêche les collisions entre les noms d'outils, regroupe les fonctionnalités associées et facilite l'identification efficace des outils par les LLM. Le modèle établit une catégorisation structurée analogue aux systèmes de stockage organisés plutôt qu'à une accumulation non structurée. Nous recommandons le modèle domain-nom-verbe pour nommer les outils. Par exemple, github_issue_creategithub_issue_list,github_issue_update,github_pullrequest_create,github_pullrequest_list, ougithub_pullrequest_merge. L'avantage de ce modèle est évident lorsque l'on examine le comportement du tri alphabétique. Lorsque les outils sont répertoriés par ordre alphabétique, toutes les opérations liées aux problèmes sont regroupées (create,,update)list, suivies des opérations de pull request (create,,list). merge Le nom (type de ressource) fonctionne comme une limite organisationnelle. Cette structure facilite à la fois l'analyse des outils LLM et la navigation dans la documentation humaine, car les fonctionnalités associées se regroupent naturellement.

Le serveur MCP doit être limité au niveau du domaine, mais il peut être subdivisé en fonction de la séparation des tâches pour les fonctionnalités qu'il fournit. Par exemple, vous pouvez avoir des serveurs MCP distincts pour les opérations d'écriture et les opérations de lecture dans une base de données. Pour appliquer cette séparation, il est recommandé de mettre en place des garde-fous au niveau de l'agent qui limitent les serveurs MCP accessibles en fonction des intentions et des autorisations de l'utilisateur. Cela peut être réalisé grâce à une combinaison des éléments suivants :

  • Chargement conditionnel du serveur : chargez le serveur MCP en lecture seule uniquement lorsque l'agent détecte des opérations de lecture dans l'entrée utilisateur.

  • Permission-based filtrage — Utilisez l'autorisation de l'utilisateur pour accorder l'accès uniquement aux serveurs MCP appropriés.

Enfin, vous souhaiterez créer une limite supérieure pour le nombre d'outils fournis par un serveur MCP. Ne faites aucune supposition quant à la manière dont les agents utiliseront votre serveur MCP. Ils peuvent naïvement énumérer tous les outils disponibles et les fournir tous au LLM. Si vous avez plus de 50 outils sur un seul serveur, vous devriez envisager de le diviser en plusieurs serveurs.

Meilleures pratiques pour l'organisation des outils MPC

  • Utilisez la norme de dénomination nom-nom-verbe pour les outils : mettez en œuvre des stratégies pour éviter les collisions de noms dans les serveurs MCP et dans les agents.

  • Définissez une limite supérieure : limitez le nombre d'outils sur un seul serveur MCP.

  • Diviser les serveurs MCP : utilisez la séparation des tâches pour diviser les serveurs MCP en groupes logiques.