Agent Skills
Agent Skills ermöglichen OpenCode, wiederverwendbare Anweisungen aus Ihrem Repository oder Home-Verzeichnis zu entdecken. Skills werden bei Bedarf über das native skill-Werkzeug geladen - Agenten sehen verfügbare Skills und können den vollständigen Inhalt bei Bedarf laden.
Dateien platzieren
Erstellen Sie einen Ordner pro Skill-Name und legen Sie eine SKILL.md darin ab. OpenCode durchsucht diese Orte:
- Projektkonfiguration:
.opencode/skills/<name>/SKILL.md - Globale Konfiguration:
~/.config/opencode/skills/<name>/SKILL.md - Projekt Claude-kompatibel:
.claude/skills/<name>/SKILL.md - Global Claude-kompatibel:
~/.claude/skills/<name>/SKILL.md - Projekt Agent-kompatibel:
.agents/skills/<name>/SKILL.md - Global Agent-kompatibel:
~/.agents/skills/<name>/SKILL.md
Entdeckung verstehen
Für projektlokale Pfade durchläuft OpenCode vom aktuellen Arbeitsverzeichnis aufwärts bis zum Git-Worktree-Root. Es lädt alle passenden skills/*/SKILL.md in .opencode/ sowie passende .claude/skills/*/SKILL.md oder .agents/skills/*/SKILL.md auf dem Weg.
Globale Definitionen werden auch aus ~/.config/opencode/skills/*/SKILL.md, ~/.claude/skills/*/SKILL.md und ~/.agents/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 einzelnen Bindestrich-Trennzeichen
- Nicht mit
-beginnen oder enden - Keine aufeinanderfolgenden
--enthalten - Mit dem Verzeichnisnamen übereinstimmen, der
SKILL.mdenthält
Äquivalenter Regex:
^[a-z0-9]+(-[a-z0-9]+)*$Längenregeln befolgen
description muss 1-1024 Zeichen lang sein. Halten Sie es spezifisch genug, damit der Agent richtig wählen kann.
Beispiel verwenden
Erstellen Sie .opencode/skills/git-release/SKILL.md wie folgt:
---
name: git-release
description: Create consistent releases and changelogs
license: MIT
compatibility: opencode
metadata:
audience: maintainers
workflow: github
---
## What I do
- Draft release notes from merged PRs
- Propose a version bump
- Provide a copy-pasteable `gh release create` command
## When to use me
Use this when you are preparing a tagged release.
Ask clarifying questions if the target versioning scheme is unclear.Werkzeugbeschreibung erkennen
OpenCode listet verfügbare Skills in der skill-Werkzeugbeschreibung auf. Jeder Eintrag enthält den Skill-Namen und die Beschreibung:
<available_skills>
<skill>
<name>git-release</name>
<description>Create consistent releases and changelogs</description>
</skill>
</available_skills>Der Agent lädt einen Skill durch Aufruf des Werkzeugs:
skill({ name: "git-release" })Berechtigungen konfigurieren
Steuern Sie, auf welche Skills Agenten zugreifen können, mit musterbasierter Berechtigung in opencode.json:
{
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
}
}| Berechtigung | Verhalten |
|---|---|
allow | Skill wird sofort geladen |
deny | Skill vor Agent verborgen, Zugriff abgelehnt |
ask | Benutzer wird vor dem Laden um Genehmigung gebeten |
Muster unterstützen Wildcards: internal-* passt auf internal-docs, internal-tools usw.
Pro Agent überschreiben
Geben Sie bestimmten Agenten andere Berechtigungen als die globalen Standardwerte.
Für benutzerdefinierte Agenten (im Agent-Frontmatter):
---
permission:
skill:
"documents-*": "allow"
---Für integrierte Agenten (in opencode.json):
{
"agent": {
"plan": {
"permission": {
"skill": {
"internal-*": "allow"
}
}
}
}
}Skill-Werkzeug deaktivieren
Deaktivieren Sie Skills vollständig für Agenten, die sie nicht verwenden sollten:
Für benutzerdefinierte Agenten:
---
tools:
skill: false
---Für integrierte Agenten:
{
"agent": {
"plan": {
"tools": {
"skill": false
}
}
}
}Bei Deaktivierung wird der <available_skills>-Abschnitt vollständig weggelassen.
Laden troubleshooten
Wenn ein Skill nicht angezeigt wird:
- Überprüfen Sie, dass
SKILL.mdin Großbuchstaben geschrieben ist - Prüfen Sie, ob Frontmatter
nameunddescriptionenthält - Stellen Sie sicher, dass Skill-Namen über alle Orte hinweg eindeutig sind
- Prüfen Sie Berechtigungen - Skills mit
denysind vor Agenten verborgen