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
Andere Erweiterungen