OpenCode-Werkzeuge
Die Kernfähigkeiten von OpenCode stammen nicht nur aus dem großen Modell selbst, sondern auch aus denTools, die es aufrufen kann。
Die Essenz von Tools: LLM vom Reden zum Handeln bringen.
Tools = Ausführungsfähigkeit von OpenCode, während Berechtigungen = Sicherheitsgrenzen.
1. Was sind Tools?
Tools sind die Fähigkeitsschnittstellen für LLM, um Operationen in einem Projekt auszuführen, zum Beispiel:
- Code lesen
- Dateien ändern
- Befehle ausführen
- Code durchsuchen
- Auf das Netzwerk zugreifen
Ohne Tools: kann nur Code generieren
Mit Tools: kanndas Projekt direkt bearbeiten
2. Tool-Berechtigungssteuerung (Am wichtigsten)
Standardmäßig:
- Alle Tools sind aktiviert
- Und können ohne Bestätigung ausgeführt werden
Produktionsumgebungen müssen Berechtigungen konfigurieren!
1. Grundlegende Berechtigungskonfiguration
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
| Berechtigungswert | Beschreibung |
|---|---|
| erlauben | Direkte Ausführung erlauben |
| verweigern | Vollständig verboten |
| ask | Erfordert manuelle Bestätigung vor der Ausführung |
2. Wildcard-Steuerung
Sie können Tools stapelweise steuern:
{
"permission": {
"mymcp_*": "ask"
}
}
Alle Tools von MCP erfordern eine Genehmigung
3. Integrierte Werkzeuge erklärt
OpenCode bietet einen vollständigen Satz ingenieurmäßiger Werkzeuge:
1. bash (Befehlsausführung)
{
"permission": {
"bash": "allow"
}
}
Zweck:
- Shell-Befehle ausführen
- Zum Beispiel npm install, git status
Risiko:Hoch (empfohlen, auf ask zu setzen)
2. edit (Kernwerkzeug)
{
"permission": {
"edit": "allow"
}
}
Zweck:
- Bestehende Dateien ändern
- Basiert auf präzisem Textersatz
Hinweis:Dies ist die Kernfähigkeit der KI zum Ändern von Code
3. write (Dateierstellung)
Zweck:
- Neue Dateien erstellen
- Bestehende Dateien überschreiben
Hinweis:
write wird durch die Bearbeitungsberechtigung gesteuert
4. read (Datei lesen)
{
"permission": {
"read": "allow"
}
}
Zweck:
- Codedateien lesen
- Unterstützt zeilenweises Lesen
Risiko:Niedrig (empfohlen, immer zuzulassen)
5. grep (Inhaltssuche)
{
"permission": {
"grep": "allow"
}
}
Zweck:
- Code mit regulären Ausdrücken durchsuchen
6. glob (Dateimusterabgleich)
Zweck:
- Dateipfade finden (z. B. src/**/*.ts)
7. list (Verzeichnisdurchsicht)
Zweck:
- Verzeichnisstruktur auflisten
8. patch (Patch-Anwendung)
Zweck:
- Diff-Patches anwenden
Hinweis:Wird durch die Bearbeitungsberechtigung gesteuert
9. lsp (experimentell)
Zweck:
- Intelligente Codeanalyse (zur Definition springen, Referenzen finden)
So aktivierst du:
OPENCODE_EXPERIMENTAL_LSP_TOOL=true
10. skill (Laden von Skills)
Zweck:
- SKILL.md laden
- KI-Verhalten verbessern
11. todowrite (Aufgabenverwaltung)
Zweck:
- Aufgabenlisten pflegen
- Komplexe Workflows verfolgen
12. webfetch (Lesen von Webseiten)
Zweck:
- Inhalt von einer Webseite abrufen
13. websearch (Online-Suche)
So aktivierst du:
OPENCODE_ENABLE_EXA=1 opencode
Zweck:
- Informationen im Internet suchen
Unterschied:
- websearch: Informationen finden (Entdeckung)
- webfetch: Inhalte lesen (Abrufen)
14. question (Interaktive Befragung)
Zweck:
- Dem Benutzer Fragen stellen
- Anforderungen sammeln
Geeignet für:
- Unklare Anforderungen
- Wenn Benutzerentscheidungen erforderlich sind
4. Benutzerdefinierte Tools
Du kannst eigene Tools definieren, damit die KI benutzerdefinierte Logik ausführt.
Zum Beispiel:
- Aufrufen interner APIs
- Datenbanken betreiben
- Geschäftslogik ausführen
Kernaussage:Das LLM Funktionen aufrufen lassen
5. MCP-Server (erweiterte Fähigkeiten)
MCP (Model Context Protocol) ermöglicht es Ihnen, externe Systeme anzubinden:
- Datenbanken
- APIs von Drittanbietern
- Interne Dienste
Dies entspricht dem Anbinden von "externen Fähigkeiten" an KI
6. Zugrunde liegender Mechanismus (wichtig)
OpenCode verwendet ripgrep als Suchmaschine:
- Befolgt .gitignore
- Ignoriert Verzeichnisse wie node_modules standardmäßig
So überschreiben Sie Ignorierregeln
Erstellen Sie eine Datei:
.ignore
Beispiel:
!node_modules/ !dist/ !build/
Diese Verzeichnisse zwangsweise einbeziehen
7. Bewährte Methoden (sehr empfohlen)
- read / grep / glob → erlauben
- edit → fragen (Entwicklungsphase)
- bash → fragen (Produktionsumgebung)
- webfetch → erlauben
Kernprinzipien:
- Lesen kann offen sein
- Änderungen müssen kontrolliert werden
- Seien Sie vorsichtig bei der Ausführung von Befehlen