Agenten-Skills
Definieren Sie wiederverwendbares Verhalten uber SKILL.md-Definitionen
Agenten-Skills lassen OpenCode wiederverwendbare Anweisungen aus Ihrem Repo oder Home-Verzeichnis entdecken.
Skills werden bei Bedarf uber das native skill-Tool geladen — Agenten sehen verfugbare Skills und konnen bei Bedarf den vollstandigen Inhalt laden.
Dateien platzieren
Erstellen Sie einen Ordner pro Skill-Namen und legen Sie eine SKILL.md darin ab.
OpenCode durchsucht diese Speicherorte:
- Projektkonfiguration:
.opencode/skill/<name>/SKILL.md - Globale Konfiguration:
~/.config/opencode/skill/<name>/SKILL.md - Projekt-Claude-kompatibel:
.claude/skills/<name>/SKILL.md - Global Claude-kompatibel:
~/.claude/skills/<name>/SKILL.md
Entdeckung verstehen
Für projektspezifische Pfade geht OpenCode vom aktuellen Arbeitsverzeichnis nach oben bis zum git worktree.
Es ladt alle ubereinstimmenden skill/*/SKILL.md in .opencode/ und alle ubereinstimmenden .claude/skills/*/SKILL.md auf dem Weg.
Globale Definitionen werden auch von ~/.config/opencode/skill/*/SKILL.md und ~/.claude/skills/*/SKILL.md geladen.
Frontmatter schreiben
Jede SKILL.md muss mit YAML-Frontmatter beginnen.
Nur diese Felder werden erkannt:
name(erforderlich)description(erforderlich)license(optional)compatibility(optional)metadata(optional, String-zu-String-Map)
Unbekannte Frontmatter-Felder werden ignoriert.
Namen validieren
name muss:
- 1–64 Zeichen lang sein
- Kleinbuchstaben alphanumerisch mit einfachen Bindestrich-Trennzeichen sein
- Nicht mit
-beginnen oder enden - Keine aufeinanderfolgenden
--enthalten - Mit dem Verzeichnisnamen ubereinstimmen, der
SKILL.mdenthalt
Aquivalente Regex:
^[a-z0-9]+(-[a-z0-9]+)*$Langenregeln befolgen
description muss 1-1024 Zeichen lang sein.
Halten Sie sie spezifisch genug, damit der Agent korrekt wahlen kann.
Ein Beispiel verwenden
Erstellen Sie .opencode/skill/git-release/SKILL.md wie folgt:
---name: git-releasedescription: Erstellen Sie konsistente Releases und Changelogslicense: MITcompatibility: opencodemetadata: audience: maintainers workflow: github---
## Was ich tue
- Veroffentlichungsnotizen aus zusammengefuhrten PRs entwerfen- Versions-Erhohung vorschlagen- Ein kopierbares `gh release create`-Kommando bereitstellen
## Wann man mich verwendet
Verwenden Sie dies, wenn Sie ein getaggtes Release vorbereiten.Stellen Sie Klarungsfragen, wenn das Ziel-Versionierungsschema unklar ist.Tool-Beschreibung erkennen
OpenCode listet verfugbare Skills in der skill-Tool-Beschreibung auf.
Jeder Eintrag enthalt den Skill-Namen und die Beschreibung:
<available_skills> <skill> <name>git-release</name> <description>Erstellen Sie konsistente Releases und Changelogs</description> </skill></available_skills>Der Agent ladt einen Skill durch Aufrufen des Tools:
skill({ name: "git-release" })Berechtigungen konfigurieren
Steuern Sie, auf welche Skills Agenten zugreifen konnen, mit musterbasierten Berechtigungen in opencode.json:
{ "permission": { "skill": { "pr-review": "allow", "internal-*": "deny", "experimental-*": "ask", "*": "allow" } }}| Permission | Verhalten |
|---|---|
allow | Skill wird sofort geladen |
deny | Skill vor Agenten versteckt, Zugriff abgelehnt |
ask | Benutzer vor dem Laden zur Genehmigung aufgefordert |
Muster unterstutzen Platzhalter: internal-* passt auf internal-docs, internal-tools, etc.
Pro Agent auBer Kraft setzen
Geben Sie bestimmten Agenten andere Berechtigungen als die globalen Standardwerte.
Fur benutzerdefinierte Agenten (im Agent-Frontmatter):
---permission: skill: "documents-*": "allow"---Fur integrierte Agenten (in opencode.json):
{ "agent": { "plan": { "permission": { "skill": { "internal-*": "allow" } } } }}Skill-Tool deaktivieren
Deaktivieren Sie Skills komplett fur Agenten, die sie nicht verwenden sollten:
Fur benutzerdefinierte Agenten:
---tools: skill: false---Fur integrierte Agenten:
{ "agent": { "plan": { "tools": { "skill": false } } }}Wenn deaktiviert, wird der Abschnitt <available_skills> vollstandig weggelassen.
Laden fehlersuchen
Wenn ein Skill nicht angezeigt wird:
- Uberprufen Sie, dass
SKILL.mdin GroBbuchstaben geschrieben ist - Prufen Sie, ob Frontmatter
nameunddescriptionenthalt - Stellen Sie sicher, dass Skill-Namen uber alle Speicherorte hinweg eindeutig sind
- Prufen Sie die Berechtigungen — Skills mit
denysind vor Agenten verborgen