Referenz zum Werkzeugsystem
Vollständige Referenz für das Werkzeugsystem von Verdent
Was Sie lernen werden
Umfassende Referenz für das integrierte Werkzeugsystem von Verdent, einschließlich Dateioperationen, Suchfunktionen, Befehlsausführung und Integrationswerkzeugen.
Übersicht der verfügbaren Werkzeuge
Verdent for VS Code bietet ein umfassendes Toolkit für Codebearbeitung, Navigation und externe Interaktion.
| Werkzeug | Zweck | Wichtige Fähigkeiten |
|---|---|---|
file_read | Dateiinhalte lesen | Unterstützt Zeilenbereiche für große Dateien, funktioniert mit allen Textformaten |
file_edit | Gezielte Änderungen | Ersetzt exakte Textübereinstimmungen, mehrere Ersetzungen, erhält die Formatierung |
file_write | Dateien erstellen oder überschreiben | Vollständige Dateierstellung/-ersetzung, verarbeitet Textinhalte |
| Werkzeug | Zweck | Wichtige Fähigkeiten |
|---|---|---|
bash | Ausführung von Shell-Befehlen | Timeout-Konfiguration, zusammenfassende Beschreibungen, Befehlsverkettung |
spawn_subagent | Delegation an Spezialisten | Startet allgemeine, Explorer-, Verifier- oder Code-Reviewer-Subagenten |
todo_update | Aufgabenfortschritt verfolgen | Verwaltet Aufgabenlisten, aktualisiert den Status, Fortschrittsverfolgung |
| Werkzeug | Zweck | Wichtige Fähigkeiten |
|---|---|---|
web_search | Internetsuche | Ausführung von Abfragen, Steuerung der Ergebnisanzahl, Filterung nach Aktualität |
web_fetch | Seiten abrufen und analysieren | Ruft Inhalte ab, extrahiert Informationen anhand von Abfragen |
Werkzeugfähigkeiten und Anwendungsfälle
file_read
Fähigkeiten:
- Liest vollständige Dateiinhalte oder bestimmte Zeilenbereiche
- Unverzichtbar, um Code vor Änderungen zu verstehen
- Effiziente Verarbeitung großer Dateien durch Bereichsangabe
Anwendungsfälle:
- Lesen von Konfigurationsdateien vor der Bearbeitung
- Verstehen bestehender Implementierungsmuster
- Überprüfen von Testdateien, um die Testabdeckung zu verstehen
Beispiel:
# 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
Fähigkeiten:
- Präzise Textersetzung mittels exakter Zeichenkettenübereinstimmung
- Mehrere Ersetzungsvorgänge mit dem Flag
multiple - Erhält die Dateistruktur und Formatierung
Anwendungsfälle:
- Aktualisieren von Funktionsimplementierungen
- Ändern von Konfigurationswerten
- Umbenennen von Variablen über mehrere Dateien hinweg
Best Practice: Für gezielte Änderungen verwenden. Für vollständige Neuschreibungen file_write stattdessen einsetzen.
file_write
Fähigkeiten:
- Erstellt neue Dateien von Grund auf
- Ersetzt bestehende Dateiinhalte vollständig
- Verarbeitet jedes textbasierte Format
Anwendungsfälle:
- Generieren neuer Komponenten oder Module
- Erstellen von Konfigurationsdateien
- Schreiben von Testdateien
Warnung: Überschreibt bestehende Dateien vollständig. Für teilweise Änderungen file_edit verwenden.
bash
Fähigkeiten:
- Führt Shell-Befehle aus
- Maximales Timeout: 120 Sekunden (2 Minuten, feste Obergrenze)
- Verkettung von Befehlen mit
&&bei Abhängigkeiten - Liefert beschreibende Zusammenfassungen zur Klarheit
Anwendungsfälle:
- Ausführen von Tests
- Erstellen von Projekten (Build)
- Installieren von Abhängigkeiten
- Git-Operationen
- Datenbankmigrationen
Beispiel:
# Run tests
bash("npm test", timeout=60000, summary="Run Jest test suite")
# Chain dependent commands
bash("npm install && npm run build", timeout=120000)Sicherheit: Befehle werden mit den Berechtigungen des Nutzers ausgeführt. Überprüfen Sie Befehle in Manual Accept Mode.
spawn_subagent
Fähigkeiten:
- Startet spezialisierte Subagenten mit isolierten Kontexten
- Typen:
explorer,verifier,code-reviewer - Delegiert komplexe Aufgaben, ohne den Hauptkontext zu belasten
- Parallele Subagenten-Ausführung für mehr Effizienz
Anwendungsfälle:
- Explorer: Durchsuchen großer Codebasen nach Mustern
- Verifier: Validierung der Implementierungslogik
- Code-reviewer: Sicherheits- und Qualitätsbewertung
Best Practice: Delegieren Sie explorative Recherchen an den Explorer-Subagenten, um den Kontext des Hauptgesprächs zu schonen.
todo_update
Fähigkeiten:
- Erstellt und verwaltet Aufgabenlisten
- Aktualisiert den Aufgabenstatus (ausstehend, in Bearbeitung, abgeschlossen)
- Verfolgt den Fortschritt komplexer Implementierungen
Anwendungsfälle:
- Aufteilen mehrstufiger Funktionen
- Nachverfolgen des Fortschritts bei Refactorings
- Verwalten von Migrationsaufgaben
web_search
Fähigkeiten:
- Abfrage von Internetsuchmaschinen
- Steuerung der Ergebnisanzahl
- Filterung nach Aktualität (letzte Tage)
Anwendungsfälle:
- Auffinden von Dokumentation für unbekannte APIs
- Recherchieren von Fehlermeldungen
- Prüfen aktueller Best Practices
web_fetch
Fähigkeiten:
- Ruft Webseiteninhalte ab
- Analysiert Inhalte anhand bestimmter Abfragen
- Extrahiert strukturierte Informationen
Anwendungsfälle:
- Lesen von Dokumentationsseiten
- Analysieren von API-Dokumentation
- Extrahieren von Beispielen aus Tutorials
Unterstützung von Dateiformaten
Verdent funktioniert mit allen textbasierten Dateiformaten über seine Dateioperations-Werkzeuge.
| Kategorie | Sprachen/Erweiterungen |
|---|---|
| Web | JavaScript, TypeScript, HTML, CSS, SCSS, LESS |
| Backend | Python, Java, Go, Rust, C, C++, C#, Ruby, PHP, Perl |
| Mobile | Swift, Kotlin, Dart (Flutter), Objective-C |
| Funktional | Haskell, Scala, Elixir, Clojure, F# |
| Skripting | Bash, PowerShell, Zsh, Fish |
| Daten | SQL, R, Julia, MATLAB |
| Format | Häufige Beispiele |
|---|---|
| JSON | package.json, tsconfig.json, settings.json |
| YAML | docker-compose.yml, GitHub Actions, Kubernetes-Konfigurationen |
| TOML | Cargo.toml, pyproject.toml |
| XML | pom.xml, web.xml, Konfigurationsdateien |
| INI | .gitconfig, .editorconfig |
| ENV | .env-Dateien, Umgebungskonfiguration |
| HCL | Terraform-Konfiguration |
| Format | Anwendungsfälle |
|---|---|
| Markdown | README.md, Dokumentationsdateien |
| HTML | Vorlagen, Webseiten |
| LaTeX | Wissenschaftliche Dokumente, akademische Arbeiten |
| reStructuredText | Python-Dokumentation |
| AsciiDoc | Technische Dokumentation |
Datenformate
| Format | Beschreibung |
|---|---|
| CSV/TSV | Tabellarische Datendateien |
| Textbasierte Daten | Logdateien, Datenauszüge |
| JSON/YAML | Strukturierter Datenaustausch |
Build- und Paketdateien
| Datei | Zweck |
|---|---|
| Makefile | Build-Automatisierung |
| package.json | Node.js-Abhängigkeiten |
| requirements.txt | Python-Pakete |
| Gemfile | Ruby-Gems |
| Cargo.toml | Rust-Pakete |
| build.gradle | Gradle-Builds |
| Formattyp | Beispiele | Bearbeitbarkeit |
|---|---|---|
| Bilder | PNG, JPG, GIF, SVG (binär) | Nicht direkt bearbeitbar |
| Videos | MP4, AVI, MOV | Nicht direkt bearbeitbar |
| Kompilierte Binärdateien | EXE, DLL, SO | Nicht direkt bearbeitbar |
| Archive | ZIP, TAR, GZ | Nicht direkt bearbeitbar |
| Office-Dokumente | DOCX, XLSX, PPTX | Nicht direkt bearbeitbar |
| PDFs | PDF-Dateien | Nicht direkt bearbeitbar |
Binärdateien können im Code referenziert werden, lassen sich aber nicht über die Datei-Werkzeuge ändern.
Unterstützung von Programmiersprachen
Verdent bietet umfassende Unterstützung für alle textbasierten Programmiersprachen und Frameworks.
| Sprache/Framework | Unterstützungsniveau | Häufige Anwendungsfälle |
|---|---|---|
| JavaScript | Ausgezeichnet | Frontend-Logik, Node.js-Backends, Tooling |
| TypeScript | Ausgezeichnet | Typsichere Webanwendungen, große Projekte |
| React | Ausgezeichnet | Komponentenbasierte UIs, Hooks, State-Management |
| Vue | Ausgezeichnet | Progressive Web-Apps, Single-File-Komponenten |
| Angular | Ausgezeichnet | Unternehmensanwendungen, TypeScript-Integration |
| Svelte | Sehr gut | Kompilierte Komponenten, reaktive Programmierung |
| HTML/CSS | Ausgezeichnet | Markup, Styling, responsives Design |
| SCSS/LESS | Ausgezeichnet | Fortgeschrittenes Styling, Variablen, Mixins |
| Sprache/Framework | Unterstützungsniveau | Häufige Anwendungsfälle |
|---|---|---|
| Python | Ausgezeichnet | APIs, Datenverarbeitung, Automatisierung |
| Django/Flask/FastAPI | Ausgezeichnet | Webframeworks, REST-APIs |
| Node.js/Express | Ausgezeichnet | JavaScript-Backends, Microservices |
| Java/Spring | Ausgezeichnet | Unternehmensanwendungen, Spring Boot |
| Go | Ausgezeichnet | Hochleistungsdienste, CLIs |
| Rust | Sehr gut | Systemprogrammierung, performancekritischer Code |
| C/C++ | Sehr gut | Systeme, Embedded, Game-Engines |
| C# / .NET | Ausgezeichnet | Windows-Anwendungen, Webdienste, Unity |
| Ruby/Rails | Sehr gut | Webanwendungen, schnelle Entwicklung |
| PHP | Gut | WordPress, Laravel, Legacy-Anwendungen |
| Sprache/Framework | Unterstützungsniveau | Häufige Anwendungsfälle |
|---|---|---|
| Swift | Ausgezeichnet | Native iOS/macOS-Apps |
| Kotlin | Ausgezeichnet | Native Android-Apps |
| Dart/Flutter | Ausgezeichnet | Plattformübergreifende mobile Apps |
| React Native | Ausgezeichnet | JavaScript-basierte mobile Apps |
| Objective-C | Gut | Legacy-iOS/macOS-Apps |
| Sprache | Unterstützungsniveau | Häufige Anwendungsfälle |
|---|---|---|
| Python | Ausgezeichnet | NumPy, Pandas, scikit-learn, TensorFlow |
| R | Sehr gut | Statistische Analyse, Datenvisualisierung |
| SQL | Ausgezeichnet | Datenbankabfragen, Schemadesign |
| Julia | Gut | Wissenschaftliches Rechnen, numerische Analyse |
| Sprache | Unterstützungsniveau | Häufige Anwendungsfälle |
|---|---|---|
| C | Sehr gut | Systemprogrammierung, Embedded |
| C++ | Sehr gut | Performancekritische Anwendungen |
| Rust | Sehr gut | Speichersichere Systemprogrammierung |
| Go | Ausgezeichnet | Nebenläufige Systeme, Clouddienste |
| Assembler | Gut | Low-Level-Optimierung, Debugging |
Qualität der Unterstützung: Gängige Sprachen (JavaScript, Python, TypeScript) verfügen aufgrund umfangreicher Trainingsdaten über eine stärkere Unterstützung. Weniger verbreitete oder domänenspezifische Sprachen können eine geringere Unterstützungsqualität aufweisen, bleiben aber funktionsfähig.
Nutzungsgrenzen und Best Practices
Effizienz von file_read
Best Practices:
- Verwenden Sie Zeilenbereiche für Dateien mit mehr als 500 Zeilen, um eine Überlastung des Kontexts zu vermeiden
- Lesen Sie nur die für die Aufgabe relevanten Abschnitte
- Bei großen Dateien zunächst
grep_contentverwenden, um relevante Zeilennummern zu identifizieren
# 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 contextPräzision von file_edit
Best Practices:
- Stellen Sie exakte Zeichenkettenübereinstimmungen sicher, um fehlgeschlagene Bearbeitungen zu vermeiden
- Für mehrere ähnliche Änderungen das Flag
multiple=trueverwenden - Dateipfade vor der Bearbeitung überprüfen
Sicherheit von file_write
Best Practices:
- Pfade doppelt prüfen, um versehentliches Überschreiben zu verhindern
- Nur für neue Dateien oder vollständige Neuschreibungen verwenden
- Für Änderungen aus Sicherheitsgründen
file_editbevorzugen
Best Practices für bash
Sichere Befehlsausführung:
- Klare Zusammenfassungen für Befehlsbeschreibungen liefern
- Angemessene Timeouts für lang laufende Operationen festlegen
- Abhängige Befehle mit
&&verketten - Destruktive Befehle sorgfältig prüfen (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)Sicherheitsüberlegungen
Kritische Sicherheitsregeln:
- Befehle werden mit den Berechtigungen des Nutzers ausgeführt
- Niemals nicht vertrauenswürdige Befehle ausführen
- Manual Accept Mode für die Überprüfung in gemeinsam genutzten Codebasen verwenden
- Befehle vermeiden, die Zugangsdaten oder sensible Daten offenlegen
Überprüfen Sie bash-Befehle in Manual Accept Mode immer, wenn Sie in gemeinsam genutzten Codebasen oder Produktionsumgebungen arbeiten.
Effizienz der Subagenten-Delegation
Wann Subagenten verwendet werden sollten:
- Explorer: Codebasis-Suchen, Architekturfragen (schont den Hauptkontext)
- Verifier: Schnelle Validierungsprüfungen (isolierte Verifikation)
- Code-reviewer: Sicherheits- und Qualitätsprüfungen (detaillierte Analyse)
- General: Komplexe mehrstufige Aufgaben (parallele Ausführung)
Best Practice: Delegieren Sie explorative und recherchierende Aufgaben an Subagenten, um den Kontext des Hauptgesprächs für die aktive Entwicklungsarbeit zu schonen.
Kontextverwaltung
Strategische Werkzeugnutzung:
- Dateien strategisch lesen – nur das, was benötigt wird
- Subagenten für Hintergrundrecherchen verwenden
- Kontextverbrauch während langer Sitzungen überwachen
- Komplexe Vorgänge mit todo_update in Schritte aufteilen
Effiziente Arbeitsabläufe:
- Planung: glob/grep verwenden, um den Umfang zu bestimmen
- Lesen: Nur relevante Dateien/Abschnitte lesen
- Ausführung: Bei Bedarf an Subagenten delegieren
- Verifikation: Schnelle Prüfungen mit dem Verifier-Subagenten
Dateigrößenbeschränkungen
Umgang mit großen Dateien: Sehr große Dateien (>10.000 Zeilen) sollten abschnittsweise gelesen werden, um Folgendes zu vermeiden:
- Erschöpfung des Kontextfensters
- Langsame Antwortzeiten
- Speicherprobleme
Verwenden Sie für Dateien mit mehr als 500 Zeilen stets Zeilenbereiche mit file_read, um eine optimale Leistung zu erhalten.
Standard-Timeouts der Werkzeuge
Werkzeuggrenzen:
- Bash-Timeout: maximal 120 Sekunden (2 Minuten)
- Dateioperationen: keine Größenbeschränkungen (große Dateien werden automatisch in Batches gelesen)
- Umgang mit großen Dateien: Dateien >256 KB liefern nur die ersten 256 KB des Inhalts zurück
- Suchergebnisse: keine Begrenzungen bei den Ergebnissen von
globodergrep_content - Gleichzeitige Subagenten: keine Begrenzung bei der parallelen Ausführung
Timeout-Konfiguration:
- Explizite Timeouts für lang laufende Operationen festlegen
- Auf hängende Prozesse achten
- Befehle, die das 2-Minuten-Timeout überschreiten, werden beendet
Gleichzeitige Operationen
Parallele Ausführung: Mehrere Subagenten können parallel ausgeführt werden, um komplexe Vorgänge zu beschleunigen. Der Hauptagent übernimmt die Koordination automatisch.
Leistungsvorteile:
- Verkürzte Gesamtausführungszeit bei mehrstufigen Aufgaben
- Effiziente Ressourcennutzung
- Automatische Aufgabenorchestrierung
- Keine Begrenzung bei der Anzahl gleichzeitiger Subagenten