Verdent Docs
Fonctionnalités avancées

Référence du système d'outils

Référence complète du système d'outils de Verdent

Ce que vous allez apprendre

Référence complète du système d'outils intégré de Verdent, incluant les opérations sur les fichiers, les capacités de recherche, l'exécution de commandes et les outils d'intégration.


Vue d'ensemble des outils disponibles

Verdent for VS Code fournit une boîte à outils complète pour la manipulation de code, la navigation et l'interaction externe.

OutilObjectifCapacités clés
file_readLire le contenu d'un fichierPrend en charge les plages de lignes pour les gros fichiers, fonctionne avec tous les formats texte
file_editModifications cibléesRemplace des correspondances de texte exactes, remplacements multiples, préserve le formatage
file_writeCréer ou remplacer des fichiersCréation/remplacement complet de fichier, gère le contenu texte
OutilObjectifCapacités clés
bashExécution de commandes shellConfiguration du délai d'expiration, descriptions résumées, enchaînement de commandes
spawn_subagentDéléguer à des spécialistesLance des sous-agents general, explorer, verifier ou code-reviewer
todo_updateSuivre la progression des tâchesGère les listes de tâches, met à jour le statut, suit la progression
OutilObjectifCapacités clés
web_searchRecherche sur internetExécution de requêtes, contrôle du nombre de résultats, filtrage par fraîcheur
web_fetchRécupérer et analyser des pagesRécupère du contenu, extrait des informations à partir de requêtes

Capacités des outils et cas d'usage

file_read

Capacités :

  • Lit le contenu complet d'un fichier ou des plages de lignes spécifiques
  • Essentiel pour comprendre le code avant toute modification
  • Gestion efficace des gros fichiers grâce à la spécification de plages

Cas d'usage :

  • Lire des fichiers de configuration avant de les modifier
  • Comprendre les schémas d'implémentation existants
  • Examiner des fichiers de test pour comprendre la couverture

Exemple :

# Read entire file
file_read("src/components/Button.tsx")

# Read specific range for large files
file_read("package-lock.json", start_line=1, max_lines=50)

file_edit

Capacités :

  • Remplacement précis de texte par correspondance exacte de chaîne
  • Opérations de remplacement multiples avec l'indicateur multiple
  • Préserve la structure et le formatage du fichier

Cas d'usage :

  • Mettre à jour des implémentations de fonctions
  • Modifier des valeurs de configuration
  • Renommer des variables dans plusieurs fichiers

Bonne pratique : À utiliser pour des changements ciblés. Pour des réécritures complètes, utilisez plutôt file_write.


file_write

Capacités :

  • Créer de nouveaux fichiers depuis zéro
  • Remplacer entièrement le contenu de fichiers existants
  • Gérer tout format basé sur du texte

Cas d'usage :

  • Générer de nouveaux composants ou modules
  • Créer des fichiers de configuration
  • Écrire des fichiers de test

Avertissement : Remplace entièrement les fichiers existants. Utilisez file_edit pour des modifications partielles.

bash

Capacités :

  • Exécute des commandes shell
  • Délai d'expiration maximal : 120 secondes (2 minutes, limite stricte)
  • Enchaîne les commandes avec && pour gérer les dépendances
  • Fournit des résumés descriptifs pour plus de clarté

Cas d'usage :

  • Exécuter des tests
  • Construire des projets
  • Installer des dépendances
  • Opérations Git
  • Migrations de base de données

Exemple :

# Run tests
bash("npm test", timeout=60000, summary="Run Jest test suite")

# Chain dependent commands
bash("npm install && npm run build", timeout=120000)

Sécurité : Les commandes s'exécutent avec les permissions de l'utilisateur. Vérifiez les commandes dans Manual Accept Mode.


spawn_subagent

Capacités :

  • Lance des sous-agents spécialisés avec des contextes isolés
  • Types : explorer, verifier, code-reviewer
  • Délègue des tâches complexes sans polluer le contexte principal
  • Exécution parallèle de sous-agents pour plus d'efficacité

Cas d'usage :

  • explorer : Rechercher des motifs dans de grandes bases de code
  • verifier : Valider la logique d'implémentation
  • code-reviewer : Évaluation de la sécurité et de la qualité

Bonne pratique : Déléguez les recherches exploratoires au sous-agent Explorer pour préserver le contexte de la conversation principale.


todo_update

Capacités :

  • Créer et gérer des listes de tâches
  • Mettre à jour le statut des tâches (pending, in_progress, completed)
  • Suivre la progression au fil d'implémentations complexes

Cas d'usage :

  • Décomposer des fonctionnalités multi-étapes
  • Suivre la progression d'une refactorisation
  • Gérer des tâches de migration

Capacités :

  • Interroge des moteurs de recherche internet
  • Contrôle du nombre de résultats
  • Filtrage par fraîcheur (jours récents)

Cas d'usage :

  • Trouver la documentation de APIs peu familiers
  • Rechercher des messages d'erreur
  • Vérifier les bonnes pratiques actuelles

web_fetch

Capacités :

  • Récupère le contenu de pages web
  • Analyse le contenu à l'aide de requêtes spécifiques
  • Extrait des informations structurées

Cas d'usage :

  • Lire des pages de documentation
  • Analyser la documentation API
  • Extraire des exemples depuis des tutoriels

Prise en charge des formats de fichiers

Verdent fonctionne avec tous les formats de fichiers basés sur du texte grâce à ses outils d'opération sur les fichiers.

CatégorieLangages/Extensions
WebJavaScript, TypeScript, HTML, CSS, SCSS, LESS
BackendPython, Java, Go, Rust, C, C++, C#, Ruby, PHP, Perl
MobileSwift, Kotlin, Dart (Flutter), Objective-C
FonctionnelHaskell, Scala, Elixir, Clojure, F#
ScriptingBash, PowerShell, Zsh, Fish
DonnéesSQL, R, Julia, MATLAB
FormatExemples courants
JSONpackage.json, tsconfig.json, settings.json
YAMLdocker-compose.yml, GitHub Actions, configurations Kubernetes
TOMLCargo.toml, pyproject.toml
XMLpom.xml, web.xml, fichiers de configuration
INI.gitconfig, .editorconfig
ENVfichiers .env, configuration d'environnement
HCLConfiguration Terraform
FormatCas d'usage
MarkdownREADME.md, fichiers de documentation
HTMLModèles, pages web
LaTeXDocuments scientifiques, articles académiques
reStructuredTextDocumentation Python
AsciiDocDocumentation technique

Formats de données

FormatDescription
CSV/TSVFichiers de données tabulaires
Données basées sur du texteFichiers de logs, exports de données
JSON/YAMLÉchange de données structurées

Fichiers de build et de package

FichierObjectif
MakefileAutomatisation du build
package.jsonDépendances Node.js
requirements.txtPaquets Python
GemfileGems Ruby
Cargo.tomlPaquets Rust
build.gradleBuilds Gradle
Type de formatExemplesModifiable
ImagesPNG, JPG, GIF, SVG (binaire)Non modifiable directement
VidéosMP4, AVI, MOVNon modifiable directement
Binaires compilésEXE, DLL, SONon modifiable directement
ArchivesZIP, TAR, GZNon modifiable directement
Documents bureautiquesDOCX, XLSX, PPTXNon modifiable directement
PDFFichiers PDFNon modifiable directement

Les fichiers binaires peuvent être référencés dans le code mais ne peuvent pas être modifiés via les outils de fichiers.


Prise en charge des langages de programmation

Verdent offre une prise en charge complète de tous les langages de programmation et frameworks basés sur du texte.

Langage/FrameworkNiveau de prise en chargeCas d'usage courants
JavaScriptExcellentLogique frontend, backends Node.js, outillage
TypeScriptExcellentApplications web sûres au niveau des types, projets à grande échelle
ReactExcellentInterfaces basées sur des composants, hooks, gestion d'état
VueExcellentApplications web progressives, composants monofichiers
AngularExcellentApplications d'entreprise, intégration TypeScript
SvelteTrès bonComposants compilés, programmation réactive
HTML/CSSExcellentBalisage, style, design responsive
SCSS/LESSExcellentStyle avancé, variables, mixins
Langage/FrameworkNiveau de prise en chargeCas d'usage courants
PythonExcellentAPIs, traitement de données, automatisation
Django/Flask/FastAPIExcellentFrameworks web, APIs REST
Node.js/ExpressExcellentBackends JavaScript, microservices
Java/SpringExcellentApplications d'entreprise, Spring Boot
GoExcellentServices haute performance, CLI
RustTrès bonProgrammation système, code critique en performance
C/C++Très bonSystèmes, embarqué, moteurs de jeu
C# / .NETExcellentApplications Windows, services web, Unity
Ruby/RailsTrès bonApplications web, développement rapide
PHPBonWordPress, Laravel, applications héritées
Langage/FrameworkNiveau de prise en chargeCas d'usage courants
SwiftExcellentApplications natives iOS/macOS
KotlinExcellentApplications natives Android
Dart/FlutterExcellentApplications mobiles multiplateformes
React NativeExcellentApplications mobiles basées sur JavaScript
Objective-CBonApplications iOS/macOS héritées
LangageNiveau de prise en chargeCas d'usage courants
PythonExcellentNumPy, Pandas, scikit-learn, TensorFlow
RTrès bonAnalyse statistique, visualisation de données
SQLExcellentRequêtes de base de données, conception de schémas
JuliaBonCalcul scientifique, analyse numérique
LangageNiveau de prise en chargeCas d'usage courants
CTrès bonProgrammation système, embarqué
C++Très bonApplications critiques en performance
RustTrès bonProgrammation système sûre en mémoire
GoExcellentSystèmes concurrents, services cloud
AssembleurBonOptimisation bas niveau, débogage

Qualité de la prise en charge : Les langages courants (JavaScript, Python, TypeScript) bénéficient d'une prise en charge renforcée grâce à un volume important de données d'entraînement. Les langages moins courants ou spécifiques à un domaine peuvent offrir une qualité de prise en charge réduite tout en restant fonctionnels.


Limites d'utilisation et bonnes pratiques

Efficacité de file_read

Bonnes pratiques :

  • Utilisez des plages de lignes pour les fichiers de plus de 500 lignes afin d'éviter une surcharge du contexte
  • Ne lisez que les sections pertinentes nécessaires à la tâche
  • Pour les gros fichiers, utilisez d'abord grep_content pour identifier les numéros de lignes pertinents
# Good: Read specific section
file_read("large-config.json", start_line=100, max_lines=50)

# Less efficient: Read entire large file
file_read("large-config.json")  # May consume excessive context

Précision de file_edit

Bonnes pratiques :

  • Assurez des correspondances exactes de chaîne pour éviter les échecs de modification
  • Pour des changements multiples similaires, utilisez l'indicateur multiple=true
  • Vérifiez les chemins de fichiers avant de les modifier

Sécurité de file_write

Bonnes pratiques :

  • Vérifiez soigneusement les chemins pour éviter des remplacements accidentels
  • À utiliser uniquement pour de nouveaux fichiers ou des réécritures complètes
  • Pour des modifications, privilégiez file_edit par sécurité

Bonnes pratiques pour bash

Exécution sécurisée des commandes :

  • Fournissez des résumés clairs pour décrire les commandes
  • Définissez des délais d'expiration appropriés pour les opérations longues
  • Enchaînez les commandes dépendantes avec &&
  • Examinez attentivement les commandes destructrices (rm, drop, truncate)
# Good: Clear summary, reasonable timeout
bash("npm run build", timeout=120000, summary="Build production bundle")

# Good: Chained dependencies
bash("npm install && npm run test", timeout=180000)

Considérations de sécurité

Règles de sécurité critiques :

  • Les commandes s'exécutent avec les permissions de l'utilisateur
  • Ne jamais exécuter de commandes non fiables
  • Utilisez Manual Accept Mode pour la revue dans des bases de code partagées
  • Évitez les commandes qui exposent des identifiants ou des données sensibles

Vérifiez toujours les commandes bash dans Manual Accept Mode lorsque vous travaillez dans des bases de code partagées ou des environnements de production.

Efficacité de la délégation aux sous-agents

Quand utiliser des sous-agents :

  • Explorer : Recherches dans la base de code, questions d'architecture (préserve le contexte principal)
  • Verifier : Vérifications rapides (validation isolée)
  • Code-reviewer : Revues de sécurité et de qualité (analyse détaillée)
  • General : Tâches complexes multi-étapes (exécution parallèle)

Bonne pratique : Déléguez les tâches exploratoires et de recherche à des sous-agents pour préserver le contexte de la conversation principale pour le travail de développement actif.


Gestion du contexte

Utilisation stratégique des outils :

  • Lisez les fichiers de manière stratégique - uniquement ce qui est nécessaire
  • Utilisez des sous-agents pour la recherche en arrière-plan
  • Surveillez la consommation de contexte lors de sessions longues
  • Décomposez les opérations complexes en étapes avec todo_update

Flux de travail efficaces :

  1. Planification : Utilisez glob/grep pour identifier la portée
  2. Lecture : Lisez uniquement les fichiers/sections pertinents
  3. Exécution : Déléguez à des sous-agents lorsque c'est pertinent
  4. Vérification : Vérifications rapides avec le sous-agent Verifier

Limites de taille de fichier

Gestion des gros fichiers : Les fichiers très volumineux (>10 000 lignes) doivent être lus par sections pour éviter :

  • L'épuisement de la fenêtre de contexte
  • Des temps de réponse lents
  • Des problèmes de mémoire

Pour les fichiers de plus de 500 lignes, utilisez toujours des plages de lignes avec file_read pour maintenir des performances optimales.


Délais d'expiration par défaut des outils

Limites des outils :

  • Délai d'expiration de Bash : 120 secondes (2 minutes) maximum
  • Opérations sur les fichiers : Aucune limite de taille (les gros fichiers sont automatiquement lus par lots)
  • Gestion des gros fichiers : Les fichiers >256 Ko ne renvoient que les 256 premiers Ko de contenu
  • Résultats de recherche : Aucune limite sur les résultats de glob ou grep_content
  • Sous-agents concurrents : Aucune limite sur l'exécution parallèle

Configuration des délais d'expiration :

  • Définissez des délais d'expiration explicites pour les opérations longues
  • Surveillez les processus bloqués
  • Les commandes dépassant le délai de 2 minutes seront interrompues

Opérations concurrentes

Exécution parallèle : Plusieurs sous-agents peuvent s'exécuter en parallèle pour accélérer les opérations complexes. L'agent principal gère automatiquement la coordination.

Avantages en performance :

  • Réduction du temps d'exécution total pour les tâches multi-étapes
  • Utilisation efficace des ressources
  • Orchestration automatique des tâches
  • Aucune limite sur le nombre de sous-agents concurrents

Voir aussi