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.

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
└── ...
Exemple de metadata.json
{
"id": "my-tool-1",
"name": "My Custom Tool",
"description": "自定义工具说明",
"type": "API",
"enabled": true,
"createdAt": 1776921208476,
"updatedAt": 1776921208476
}
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
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
- Ouvrez l'APP → Paramètres → Outils → zone Outils MCP
- Cliquez sur Ajouter un serveur MCP
- 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
- Si une authentification est nécessaire, choisissez le mode d'authentification et renseignez les identifiants
- Cliquez sur Enregistrer
- Le système se connecte automatiquement au serveur et découvre les outils disponibles
- 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
- Vérifiez que la commande/l'URL du serveur MCP est correcte
- En mode stdio, vérifiez que la commande correspondante est installée (par ex.
npxnécessite un environnement Node.js) - Vérifiez si des variables d'environnement sont requises (API Key, etc.)
- 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
- Gestion des compétences — le système de compétences
- Sécurité d'exécution — configuration des autorisations des outils
- Garde-fous de sécurité — gestion des autorisations d'outils au niveau entreprise
