Skip to content

API Tool-Referenz

Was Sie lernen werden

Nach dieser API-Referenz werden Sie:

  • Die Parameter und Rückgabewerte der 4 Kern-Tools verstehen
  • Die korrekte Verwendung der Tools beherrschen
  • Häufige Fehlersituationen behandeln können

Tool-Übersicht

Das OpenCode Agent Skills Plugin bietet folgende 4 Tools:

Tool-NameFunktionsbeschreibungAnwendungsfall
get_available_skillsVerfügbare Skills abrufenAlle verfügbaren Skills anzeigen, mit Suchfilter
read_skill_fileSkill-Datei lesenAuf Dokumentation, Konfiguration und andere Unterstützungsdateien eines Skills zugreifen
run_skill_scriptSkill-Skript ausführenAutomatisierungsskripte im Skill-Verzeichnis ausführen
use_skillSkill ladenDen SKILL.md-Inhalt in den Sitzungskontext injizieren

get_available_skills

Ruft die Liste der verfügbaren Skills ab, mit optionaler Suchfilterung.

Parameter

ParameternameTypErforderlichBeschreibung
querystringNeinSuchzeichenfolge, die mit Skill-Namen und -Beschreibungen abgeglichen wird (unterstützt * Wildcard)

Rückgabewert

Gibt eine formatierte Skill-Liste zurück, wobei jeder Eintrag enthält:

  • Skill-Name und Quell-Label (z.B. skill-name (project))
  • Skill-Beschreibung
  • Liste verfügbarer Skripte (falls vorhanden)

Beispielrückgabe:

git-helper (project)
  Git operations and workflow automation tools
  [scripts: tools/commit.sh, tools/branch.sh]

code-review (user)
  Code review checklist and quality standards

Fehlerbehandlung

  • Bei keinen Treffern wird eine Hinweismeldung zurückgegeben
  • Bei Tippfehlern im Suchparameter werden ähnliche Skills vorgeschlagen

Anwendungsbeispiele

Alle Skills auflisten:

Benutzereingabe:
Liste alle verfügbaren Skills auf

KI-Aufruf:
get_available_skills()

Nach Skills mit "git" suchen:

Benutzereingabe:
Finde Skills, die mit git zusammenhängen

KI-Aufruf:
get_available_skills({
  "query": "git"
})

Suche mit Wildcard:

KI-Aufruf:
get_available_skills({
  "query": "code*"
})

Rückgabe:
code-review (user)
  Code review checklist and quality standards

read_skill_file

Liest Unterstützungsdateien (Dokumentation, Konfiguration, Beispiele usw.) aus dem Skill-Verzeichnis.

Parameter

ParameternameTypErforderlichBeschreibung
skillstringJaSkill-Name
filenamestringJaDateipfad (relativ zum Skill-Verzeichnis, z.B. docs/guide.md, scripts/helper.sh)

Rückgabewert

Gibt eine Bestätigungsmeldung über das erfolgreiche Laden der Datei zurück.

Beispielrückgabe:

File "docs/guide.md" from skill "code-review" loaded.

Der Dateiinhalt wird im XML-Format in den Sitzungskontext injiziert:

xml
<skill-file skill="code-review" file="docs/guide.md">
  <metadata>
    <directory>/path/to/skills/code-review</directory>
  </metadata>
  
  <content>
[Tatsächlicher Dateiinhalt]
  </content>
</skill-file>

Fehlerbehandlung

FehlertypRückgabemeldung
Skill nicht gefundenSkill "xxx" not found. Use get_available_skills to list available skills.
Unsicherer PfadInvalid path: cannot access files outside skill directory.
Datei nicht gefundenFile "xxx" not found. Available files: file1, file2, ...

Sicherheitsmechanismen

  • Pfadsicherheitsprüfung: Verhindert Directory-Traversal-Angriffe (z.B. ../../../etc/passwd)
  • Zugriff nur auf Dateien innerhalb des Skill-Verzeichnisses

Anwendungsbeispiele

Skill-Dokumentation lesen:

Benutzereingabe:
Zeige die Anleitung für den code-review Skill

KI-Aufruf:
read_skill_file({
  "skill": "code-review",
  "filename": "docs/guide.md"
})

Konfigurationsdatei lesen:

KI-Aufruf:
read_skill_file({
  "skill": "git-helper",
  "filename": "config.json"
})

run_skill_script

Führt ausführbare Skripte im Skill-Verzeichnis aus.

Parameter

ParameternameTypErforderlichBeschreibung
skillstringJaSkill-Name
scriptstringJaRelativer Skriptpfad (z.B. build.sh, tools/deploy.sh)
argumentsstring[]NeinArray von Kommandozeilenargumenten für das Skript

Rückgabewert

Gibt die Ausgabe des Skripts zurück.

Beispielrückgabe:

Building project...
✓ Dependencies installed
✓ Tests passed
Build complete.

Fehlerbehandlung

FehlertypRückgabemeldung
Skill nicht gefundenSkill "xxx" not found. Use get_available_skills to list available skills.
Skript nicht gefundenScript "xxx" not found in skill "yyy". Available scripts: script1, script2, ...
Ausführung fehlgeschlagenScript failed (exit 1): error message

Skript-Erkennungsregeln

Das Plugin scannt automatisch ausführbare Dateien im Skill-Verzeichnis:

  • Maximale Rekursionstiefe: 10 Ebenen
  • Überspringt versteckte Verzeichnisse (beginnend mit .)
  • Überspringt gängige Abhängigkeitsverzeichnisse (node_modules, __pycache__, .git usw.)
  • Enthält nur Dateien mit Ausführungsbit (mode & 0o111)

Ausführungsumgebung

  • Arbeitsverzeichnis (CWD) wird auf das Skill-Verzeichnis gewechselt
  • Skript wird im Kontext des Skill-Verzeichnisses ausgeführt
  • Ausgabe wird direkt an die KI zurückgegeben

Anwendungsbeispiele

Build-Skript ausführen:

Benutzereingabe:
Führe das Build-Skript des Projekts aus

KI-Aufruf:
run_skill_script({
  "skill": "git-helper",
  "script": "tools/build.sh"
})

Mit Argumenten ausführen:

KI-Aufruf:
run_skill_script({
  "skill": "deployment",
  "script": "deploy.sh",
  "arguments": ["--env", "production", "--force"]
})

use_skill

Lädt den SKILL.md-Inhalt eines Skills in den Sitzungskontext.

Parameter

ParameternameTypErforderlichBeschreibung
skillstringJaSkill-Name (unterstützt Namespace-Präfix, z.B. project:my-skill, user:my-skill)

Rückgabewert

Gibt eine Bestätigungsmeldung über das erfolgreiche Laden des Skills zurück, einschließlich der Liste verfügbarer Skripte und Dateien.

Beispielrückgabe:

Skill "code-review" loaded.
Available scripts: tools/check.sh, tools/format.sh
Available files: docs/guide.md, examples/bad.js

Der Skill-Inhalt wird im XML-Format in den Sitzungskontext injiziert:

xml
<skill name="code-review">
  <metadata>
    <source>user</source>
    <directory>/path/to/skills/code-review</directory>
    <scripts>
      <script>tools/check.sh</script>
      <script>tools/format.sh</script>
    </scripts>
    <files>
      <file>docs/guide.md</file>
      <file>examples/bad.js</file>
    </files>
  </metadata>

  [Claude Code Tool-Mapping...]
  
  <content>
[Tatsächlicher SKILL.md-Inhalt]
  </content>
</skill>

Namespace-Unterstützung

Verwenden Sie Namespace-Präfixe, um die Skill-Quelle präzise anzugeben:

NamespaceBeschreibungBeispiel
project:OpenCode-Skill auf Projektebeneproject:my-skill
user:OpenCode-Skill auf Benutzerebeneuser:my-skill
claude-project:Claude-Skill auf Projektebeneclaude-project:my-skill
claude-user:Claude-Skill auf Benutzerebeneclaude-user:my-skill
Kein PräfixVerwendet Standardprioritätmy-skill

Fehlerbehandlung

FehlertypRückgabemeldung
Skill nicht gefundenSkill "xxx" not found. Use get_available_skills to list available skills.

Automatische Injektionsfunktion

Beim Laden eines Skills führt das Plugin automatisch folgende Aktionen aus:

  1. Listet alle Dateien im Skill-Verzeichnis auf (außer SKILL.md)
  2. Listet alle ausführbaren Skripte auf
  3. Injiziert Claude Code Tool-Mapping (falls der Skill es benötigt)

Anwendungsbeispiele

Skill laden:

Benutzereingabe:
Hilf mir bei der Code-Review

KI-Aufruf:
use_skill({
  "skill": "code-review"
})

Quelle mit Namespace angeben:

KI-Aufruf:
use_skill({
  "skill": "user:git-helper"
})

Anhang: Quellcode-Referenz

Klicken Sie hier, um die Quellcode-Positionen anzuzeigen

Aktualisiert: 2026-01-24

ToolDateipfadZeilennummern
GetAvailableSkills Toolsrc/tools.ts29-72
ReadSkillFile Toolsrc/tools.ts74-135
RunSkillScript Toolsrc/tools.ts137-198
UseSkill Toolsrc/tools.ts200-267
Tool-Registrierungsrc/plugin.ts160-167
Skill-Typdefinitionsrc/skills.ts43-52
Script-Typdefinitionsrc/skills.ts35-38
SkillLabel-Typdefinitionsrc/skills.ts30
resolveSkill-Funktionsrc/skills.ts269-283

Wichtige Typen:

  • Skill: Vollständige Skill-Metadaten (name, description, path, scripts, template usw.)
  • Script: Skript-Metadaten (relativePath, absolutePath)
  • SkillLabel: Skill-Quellkennung (project, user, claude-project usw.)

Wichtige Funktionen:

  • resolveSkill(): Löst Skill-Namen auf, unterstützt Namespace-Präfixe
  • isPathSafe(): Validiert Pfadsicherheit, verhindert Directory-Traversal
  • findClosestMatch(): Fuzzy-Matching-Vorschläge

Vorschau auf die nächste Lektion

Diese Lektion hat die API-Tool-Referenzdokumentation für OpenCode Agent Skills abgeschlossen.

Für weitere Informationen konsultieren Sie bitte: