logo
Développement
Rechercher
Gestion des outils

Gestion des outils

Présentation

Les outils sont les « mains et pieds » qui permettent à l'Agent d'exécuter des opérations. Le système fournit 19 outils intégrés et prend en charge l'extension de l'ensemble d'outils via le protocole MCP, les définitions OpenAPI et les compétences. La page de gestion des outils sert à configurer et à gérer tous les outils disponibles.

Emplacement de la capture d'écran


19 outils intégrés

Opérations sur les fichiers (7 outils)

Outil Fonction Niveau de sécurité
Read File Lit le contenu d'un fichier, prend en charge une plage de numéros de ligne, limite de 5 Mo P0 (exécution automatique)
Write File Écrit dans un fichier ; s'il n'existe pas, le crée automatiquement avec les répertoires parents P0
Edit Effectue des modifications locales sur un fichier existant (mode recherche-remplacement) P0
MultiEdit Effectue plusieurs modifications par lots sur un fichier existant P0
List Directory Liste les fichiers et sous-répertoires d'un dossier, affiche la taille des fichiers P0 (verrouillé)
Glob Files Recherche des fichiers selon un motif générique, jusqu'à 100 résultats P0 (verrouillé)
Search Files Recherche par expression régulière dans le contenu des fichiers, jusqu'à 250 résultats P0 (verrouillé)

Exécution de commandes (1 outil)

Outil Fonction Niveau de sécurité
Bash Exécute des commandes Shell, des scripts, des opérations Git, délai d'expiration de 120 secondes, sortie limitée à 50 Ko P1 (confirmation à la première utilisation)

Réseau (1 outil)

Outil Fonction Niveau de sécurité
Web Fetch Récupère le contenu d'une URL et le convertit en Markdown, débruitage automatique, cache de 15 minutes P1

Gestion des tâches (1 outil)

Outil Fonction Niveau de sécurité
Task Manage Gère une liste de tâches structurée (à faire / en cours / terminé), appelé automatiquement pour les tâches de plus de 3 étapes P0 (verrouillé)

Appel de compétences (1 outil)

Outil Fonction Niveau de sécurité
Skill Appelle un module de compétence (Skill) installé pour exécuter une tâche spécialisée P1

Interaction utilisateur (1 outil)

Outil Fonction Niveau de sécurité
AskUserQuestion L'Agent pose une question à l'utilisateur (jusqu'à 4 questions, 2 à 10 options chacune) P0 (verrouillé)

Sous-agents (3 outils)

Outil Fonction Niveau de sécurité
create_local_sub_agent Crée un sous-agent temporaire sur le nœud local, prend en charge une imbrication de 1 à 3 niveaux P0
dispatch_sub_agent Répartit une tâche vers un sous-agent déjà enregistré P0
dispatch_multi_node_agent Répartit une tâche vers un nœud distant via la Gateway P0

Mémoire (4 outils)

Outil Fonction Niveau de sécurité
Conversation Search Recherche dans l'historique des conversations par mot-clé, prend en charge le filtrage par plage temporelle, jusqu'à 10 résultats P0 (verrouillé)
Recent Chats Liste les 1 à 20 dernières sessions de conversation, prend en charge le filtrage temporel P0 (verrouillé)
Memory Query Recherche dans les mémoires utilisateur stockées (recherche sémantique + expansion par graphe) P0 (verrouillé)
Memory Manage Ajoute, met à jour ou supprime des mémoires utilisateur P1

Explication des niveaux de sécurité

Niveau Signification Comportement
P0 Opération sûre Exécution automatique, sans confirmation de l'utilisateur
P1 Confirmation requise Une confirmation d'autorisation s'affiche à la première utilisation
P2 Confirmation à chaque fois Chaque appel nécessite une confirmation de l'utilisateur
Verrouillé Non rétrogradable Le niveau de sécurité est fixe et non modifiable

L'administrateur peut ajuster le niveau d'autorisation des outils non verrouillés (plancher de l'organisation) dans les Garde-fous de sécurité, et chaque utilisateur peut le renforcer davantage dans la sécurité d'exécution de l'APP.


Protocole d'outils MCP

Le MCP (Model Context Protocol) est un protocole standardisé de communication d'outils pour l'IA, permettant d'étendre l'ensemble d'outils via des services externes.

Trois modes de transport

Transport Description Cas d'usage
stdio Communication avec un sous-processus local (command + args) Outils CLI locaux
SSE Server-Sent Events (connexion HTTP persistante) Services distants
HTTP API HTTP en flux (Streamable HTTP) Services distants

Cinq modes d'authentification

Authentification Description
none Aucune authentification
bearer Bearer Token
basic HTTP Basic Auth
service Authentification entre services
oauth2 Flux de code d'autorisation OAuth2 (découverte automatique du point de terminaison well-known)

Interface de gestion MCP

Gérez les serveurs MCP via le composant McpManager :

  • Ajouter un serveur : configurez le nom, le mode de transport, les paramètres de connexion et le mode d'authentification
  • Modifier / Supprimer : modifiez ou retirez une configuration existante
  • Activer / Désactiver : basculez l'état de disponibilité du serveur
  • Découverte des outils : après connexion, découvre automatiquement la liste des outils fournis par le serveur

Isolation de sécurité

Le sous-processus MCP ne transmet que les variables d'environnement en liste blanche, afin d'éviter la fuite d'informations sensibles telles que les API Key.


Outils API

Prend en charge l'analyse automatique et la création d'outils à partir de documents OpenAPI/Swagger :

Fonction Description
Analyse automatique Extrait les points de terminaison et les schémas de paramètres depuis la spécification OpenAPI
Configuration de l'authentification Cinq modes d'authentification
Variables de modèle Substitution dynamique par {{variable}}
Méthodes HTTP GET / POST / PUT / DELETE / PATCH

Répertoire d'outils personnalisés NEW

Le système ajoute le ToolDirectoryManager — il gère les outils personnalisés situés dans le répertoire {dataDir}/TOOLs/{orgId}/_custom/, chargeables sans redémarrer l'APP.

Structure du répertoire

{dataDir}/TOOLs/{orgId}/_custom/ ├── my-tool-1/ │ ├── metadata.json │ └── ... └── my-tool-2/ ├── metadata.json └── ...
                      
                      {dataDir}/TOOLs/{orgId}/_custom/
├── my-tool-1/
│   ├── metadata.json
│   └── ...
└── my-tool-2/
    ├── metadata.json
    └── ...

                    
Ce bloc de code dans la fenêtre flottante

Exemple de metadata.json

{ "id": "my-tool-1", "name": "My Custom Tool", "description": "自定义工具说明", "type": "API", "enabled": true, "createdAt": 1776921208476, "updatedAt": 1776921208476 }
                      
                      {
  "id": "my-tool-1",
  "name": "My Custom Tool",
  "description": "自定义工具说明",
  "type": "API",
  "enabled": true,
  "createdAt": 1776921208476,
  "updatedAt": 1776921208476
}

                    
Ce bloc de code dans la fenêtre flottante

Mécanisme de chargement

  • Méthode de scan : scanAndLoad(orgId)
  • Types pris en charge : API / MCP
  • Isolation par organisation : répertoires séparés par orgId, sans interférence mutuelle
  • Chargement à chaud : sans redémarrage de l'APP

Pipeline de chargement des outils

Tous les outils sont chargés et fusionnés dans l'ordre suivant :

① Outils intégrés (19 outils) ↓ ② Outils MCP (découverts depuis les serveurs MCP configurés) ↓ ③ Outils API (analysés depuis les définitions OpenAPI) ↓ ④ Outils personnalisés (le ToolDirectoryManager scanne le répertoire _custom/) ↓ ⑤ Outils de compétence (execute_skill_{id} injecté depuis les Skills activées) ↓ ⑥ Fusion et déduplication → liste finale des outils → envoi au LLM
                      
                      ① Outils intégrés (19 outils)
    ↓
② Outils MCP (découverts depuis les serveurs MCP configurés)
    ↓
③ Outils API (analysés depuis les définitions OpenAPI)
    ↓
④ Outils personnalisés (le ToolDirectoryManager scanne le répertoire _custom/)
    ↓
⑤ Outils de compétence (execute_skill_{id} injecté depuis les Skills activées)
    ↓
⑥ Fusion et déduplication → liste finale des outils → envoi au LLM

                    
Ce bloc de code dans la fenêtre flottante

Cas d'usage des outils courants

Exemple de requête utilisateur Outil appelé par l'Agent Description
« Montre-moi le contenu de package.json » Read File Lit et renvoie le contenu du fichier
« Renomme la fonction getData en fetchData » Edit Recherche-remplacement précis
« Crée un README.md » Write File Crée un nouveau fichier
« Quels fichiers .tsx y a-t-il dans le projet ? » Glob Files Recherche les noms de fichiers selon un motif
« Où utilise-t-on useEffect dans le code ? » Search Files Recherche par expression régulière dans le contenu des fichiers
« Exécute npm install pour moi » Bash Exécute une commande Shell
« Résume-moi le contenu de cette page web : https://... » Web Fetch Récupère la page web et la convertit en Markdown
« Cette tâche est assez complexe, commence par établir un plan » Task Manage Crée une liste de tâches structurée
« Recherche la conversation d'hier sur la migration de base de données » Conversation Search Recherche dans l'historique des conversations
« Souviens-toi que je préfère le thème dark » Memory Manage Stocke dans la mémoire

Guide pratique : ajouter un outil MCP

  1. Ouvrez l'APP → Paramètres → Outils → zone Outils MCP
  2. Cliquez sur Ajouter un serveur MCP
  3. Renseignez la configuration :
    • Nom : donnez un nom d'identification à ce serveur MCP
    • Mode de transport : choisissez stdio / SSE / HTTP
    • Pour stdio : renseignez la commande (par ex. npx) et les arguments (par ex. @anthropic/mcp-server-filesystem)
    • Pour SSE/HTTP : renseignez l'URL du serveur
  4. Si une authentification est nécessaire, choisissez le mode d'authentification et renseignez les identifiants
  5. Cliquez sur Enregistrer
  6. Le système se connecte automatiquement au serveur et découvre les outils disponibles
  7. Les outils découverts apparaissent dans la liste des outils, activés par défaut

Conseil : le sous-processus MCP ne transmet que les variables d'environnement en liste blanche. Si un outil MCP nécessite des variables d'environnement telles qu'une API Key, vous devez les déclarer explicitement dans le champ env de la configuration.


Conséquences de la désactivation d'un outil

Une fois un outil désactivé, l'Agent ignore totalement son existence dans la conversation. Cela signifie que :

Outil désactivé Conséquence
Bash L'Agent ne peut exécuter aucune commande Shell (npm, git, compilation, etc.)
Read File / Write File L'Agent ne peut ni lire ni créer de fichiers
Web Fetch L'Agent ne peut pas récupérer le contenu de pages web, et les compétences de type recherche sont également affectées
Memory Query / Manage L'Agent ne consulte ni ne stocke aucune mémoire
Skill L'Agent ne peut appeler aucun module de compétence
create_local_sub_agent L'Agent ne peut pas créer de sous-agent pour décomposer les tâches

Recommandation : sauf raison de sécurité explicite, il est déconseillé de désactiver les outils fondamentaux d'opération sur les fichiers (Read / Write / Edit / Glob / Search), faute de quoi la capacité de l'Agent à exécuter des tâches serait fortement limitée.


Questions fréquentes

L'Agent dit « je ne peux pas effectuer d'opérations sur les fichiers »

Vérifiez si les outils d'opération sur les fichiers (Read File, Write File, Edit, etc.) ont été désactivés. Sur la page de gestion des outils, confirmez que ces outils sont bien activés.

Échec de connexion d'un outil MCP

  1. Vérifiez que la commande/l'URL du serveur MCP est correcte
  2. En mode stdio, vérifiez que la commande correspondante est installée (par ex. npx nécessite un environnement Node.js)
  3. Vérifiez si des variables d'environnement sont requises (API Key, etc.)
  4. Consultez les journaux de l'APP pour obtenir des informations d'erreur détaillées

L'Agent n'utilise pas l'outil que j'attendais

L'Agent choisit ses outils de manière autonome en fonction des besoins de la tâche. Si l'Agent choisit un « mauvais » outil, vous pouvez le lui indiquer clairement dans la conversation : « Utilise l'outil Bash pour exécuter cette commande. »


Documents connexes