Deutsch
Dokumentation
Agent Skills

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.md enthä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"
    }
  }
}
BerechtigungVerhalten
allowSkill wird sofort geladen
denySkill vor Agent verborgen, Zugriff abgelehnt
askBenutzer 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.md in Großbuchstaben geschrieben ist
  • Prüfen Sie, ob Frontmatter name und description enthält
  • Stellen Sie sicher, dass Skill-Namen über alle Orte hinweg eindeutig sind
  • Prüfen Sie Berechtigungen - Skills mit deny sind vor Agenten verborgen