Outils
Gérer les outils qu'un LLM peut utiliser.
Les outils permettent au LLM d'effectuer des actions dans votre base de code. Dropstone est livré avec un ensemble d'outils intégrés, mais vous pouvez l'étendre avec des outils personnalisés ou des serveurs MCP.
Par défaut, tous les outils sont activés et ne nécessitent pas de permission pour s'exécuter. Vous pouvez contrôler le comportement des outils via les permissions.
Configurer
Utilisez le champ permission pour contrôler le comportement des outils. Vous pouvez autoriser, refuser ou demander une approbation pour chaque outil.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
Vous pouvez également utiliser des caractères génériques pour contrôler plusieurs outils à la fois. Par exemple, pour demander une approbation pour tous les outils d'un serveur MCP :
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"mymcp_*": "ask"
}
}
En savoir plus sur la configuration des permissions.
Intégrés
Voici tous les outils intégrés disponibles dans Dropstone.
bash
Exécuter des commandes shell dans votre environnement de projet.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"bash": "allow"
}
}
Cet outil permet au LLM d'exécuter des commandes de terminal comme npm install, git status, ou toute autre commande shell.
edit
Modifier les fichiers existants en utilisant des remplacements de chaînes exactes.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Cet outil effectue des modifications précises aux fichiers en remplaçant les correspondances de texte exactes. C'est le moyen principal par lequel le LLM modifie le code.
write
Créer de nouveaux fichiers ou remplacer les fichiers existants.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Utilisez ceci pour permettre au LLM de créer de nouveaux fichiers. Il remplacera les fichiers existants s'ils existent déjà.
Note:
L'outil write est contrôlé par la permission edit, qui couvre toutes les modifications de fichiers (edit, write, apply_patch).
read
Lire le contenu des fichiers de votre base de code.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"read": "allow"
}
}
Cet outil lit les fichiers et retourne leur contenu. Il supporte la lecture de plages de lignes spécifiques pour les fichiers volumineux.
grep
Rechercher le contenu des fichiers en utilisant des expressions régulières.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"grep": "allow"
}
}
Recherche de contenu rapide dans votre base de code. Supporte la syntaxe complète des expressions régulières et le filtrage par motif de fichier.
glob
Trouver des fichiers par correspondance de motif.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
Rechercher des fichiers en utilisant des motifs glob comme **/*.js ou src/**/*.ts. Retourne les chemins de fichiers correspondants triés par date de modification.
lsp (expérimental)
Interagir avec vos serveurs LSP configurés pour obtenir des fonctionnalités d'intelligence de code comme les définitions, les références, les informations au survol et la hiérarchie des appels.
Expérimental:
L'outil LSP est expérimental et désactivé par défaut. Le comportement peut changer entre les versions.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"lsp": "allow"
}
}
Les opérations supportées incluent goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, et outgoingCalls.
Pour configurer les serveurs LSP disponibles pour votre projet, voir Serveurs LSP.
apply_patch
Appliquer des correctifs aux fichiers.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Cet outil applique des fichiers de correctif à votre base de code. Utile pour appliquer des diffs et des correctifs de diverses sources.
Lors du traitement des hooks tool.execute.before ou tool.execute.after, vérifiez input.tool === "apply_patch" (et non "patch").
apply_patch utilise output.args.patchText au lieu de output.args.filePath. Les chemins sont intégrés dans les lignes de marqueur dans patchText et sont relatifs à la racine du projet (par exemple : *** Add File: src/new-file.ts, *** Update File: src/existing.ts, *** Move to: src/renamed.ts, *** Delete File: src/obsolete.ts).
Note:
L'outil apply_patch est contrôlé par la permission edit, qui couvre toutes les modifications de fichiers (edit, write, apply_patch).
skill
Charger une compétence (un fichier SKILL.md) et retourner son contenu dans la conversation.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"skill": "allow"
}
}
todowrite
Gérer les listes de tâches pendant les sessions de codage.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
Crée et met à jour les listes de tâches pour suivre la progression lors d'opérations complexes. Le LLM utilise ceci pour organiser les tâches multi-étapes.
Note:
Cet outil est désactivé pour les sous-agents par défaut, mais vous pouvez l'activer manuellement. En savoir plus.
webfetch
Récupérer le contenu web.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
Permet au LLM de récupérer et lire des pages web. Utile pour consulter la documentation ou rechercher des ressources en ligne.
websearch
Rechercher sur le web pour trouver des informations. Disponible par défaut lorsque vous êtes connecté à Dropstone.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
Effectue des recherches web pour trouver des informations pertinentes en ligne. Utile pour rechercher des sujets, trouver des événements actuels ou rassembler des informations au-delà de la date limite de l'entraînement. Aucune clé API ou configuration supplémentaire n'est requise lorsque vous êtes connecté à Dropstone.
Conseil:
Utilisez websearch lorsque vous avez besoin de trouver des informations (découverte), et webfetch lorsque vous avez besoin de récupérer du contenu à partir d'une URL spécifique (récupération).
question
Poser des questions à l'utilisateur pendant l'exécution.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
Cet outil permet au LLM de poser des questions à l'utilisateur pendant une tâche. C'est utile pour :
- Recueillir les préférences ou les exigences de l'utilisateur
- Clarifier les instructions ambiguës
- Obtenir des décisions sur les choix de mise en œuvre
- Offrir des choix sur la direction à prendre
Chaque question comprend un en-tête, le texte de la question et une liste d'options. Les utilisateurs peuvent sélectionner parmi les options fournies ou taper une réponse personnalisée. Lorsqu'il y a plusieurs questions, les utilisateurs peuvent naviguer entre elles avant de soumettre toutes les réponses.
Outils personnalisés
Les outils personnalisés vous permettent de définir vos propres fonctions que le LLM peut appeler. Ceux-ci sont définis dans votre fichier de configuration et peuvent exécuter du code arbitraire.
En savoir plus sur la création d'outils personnalisés.
Serveurs MCP
Les serveurs MCP (Model Context Protocol) vous permettent d'intégrer des outils et des services externes. Cela inclut l'accès aux bases de données, les intégrations d'API et les services tiers.
En savoir plus sur la configuration des serveurs MCP.
Motifs d'ignorance
Par défaut, grep et glob respectent votre .gitignore : les fichiers et répertoires listés là sont exclus des recherches et des listes.
Pour inclure les fichiers qui seraient normalement ignorés, créez un fichier .ignore à la racine de votre projet. Ce fichier peut explicitement autoriser certains chemins.
!node_modules/
!dist/
!build/
Par exemple, ce fichier .ignore autorise la recherche dans les répertoires node_modules/, dist/ et build/ même s'ils sont listés dans .gitignore.