Outils
Gérez les outils qu'un LLM peut utiliser.
Les outils permettent au LLM d'effectuer des actions dans votre codebase. 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.
Configuration
Utilisez le champ permission pour contrôler le comportement des outils. Vous pouvez autoriser, refuser ou exiger 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 exiger 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.
Outils intégrés
Voici tous les outils intégrés disponibles dans Dropstone.
bash
Exécutez 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 terminal comme npm install, git status, ou toute autre commande shell.
edit
Modifiez des 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 sur les fichiers en remplaçant des correspondances de texte exactes. C'est le principal moyen pour le LLM de modifier le code.
write
Créez de nouveaux fichiers ou écrasez des 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 écrasera 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
Lisez le contenu des fichiers de votre codebase.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"read": "allow"
}
}
Cet outil lit les fichiers et renvoie leur contenu. Il prend en charge la lecture de plages de lignes spécifiques pour les fichiers volumineux.
grep
Recherchez dans le contenu des fichiers en utilisant des expressions régulières.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"grep": "allow"
}
}
Recherche rapide de contenu dans votre codebase. Prend en charge la syntaxe complète des expressions régulières et le filtrage par motifs de fichiers.
glob
Trouvez des fichiers par correspondance de motifs.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
Recherchez des fichiers en utilisant des motifs glob comme **/*.js ou src/**/*.ts. Renvoie les chemins de fichiers correspondants triés par heure de modification.
lsp (expérimental)
Interagissez 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 d'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 prises en charge incluent goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls et outgoingCalls.
Pour configurer les serveurs LSP disponibles pour votre projet, consultez Serveurs LSP.
apply_patch
Appliquez des correctifs aux fichiers.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
Cet outil applique des fichiers de correctifs à votre codebase. Utile pour appliquer des diffs et des correctifs provenant de diverses sources.
Lors de la gestion 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
Chargez une compétence (un fichier SKILL.md) et renvoyez son contenu dans la conversation.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"skill": "allow"
}
}
todowrite
Gérez 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 des listes de tâches pour suivre la progression lors d'opérations complexes. Le LLM l'utilise pour organiser les tâches en plusieurs étapes.
Note
Cet outil est désactivé par défaut pour les sous-agents, mais vous pouvez l'activer manuellement. En savoir plus.
webfetch
Récupérez du contenu web.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
Permet au LLM de récupérer et de lire des pages web. Utile pour consulter de la documentation ou rechercher des ressources en ligne.
websearch
Recherchez des informations sur le web. 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 des données d'entraînement. Aucune clé API ni configuration supplémentaire n'est requise lorsque vous êtes connecté à Dropstone.
Tip
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
Posez 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. Il est utile pour :
- Recueillir les préférences ou les exigences de l'utilisateur
- Clarifier des instructions ambiguës
- Obtenir des décisions sur les choix d'implémentation
- Proposer 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 saisir 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. Ils 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 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 qui y sont répertoriés sont exclus des recherches et des listes.
Pour inclure des 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 permet la recherche dans les répertoires node_modules/, dist/ et build/ même s'ils sont répertoriés dans .gitignore.