Skills (OpenClaw)
OpenClaw verwendet AgentSkills-kompatible Skill-Ordner, um dem Agent beizubringen, wie er Tools verwendet. Jeder Skill ist ein Verzeichnis mit einer SKILL.md mit YAML-Frontmatter und Anweisungen. OpenClaw lädt gebündelte Skills plus optionale lokale Overrides und filtert sie beim Laden basierend auf Umgebung, Konfiguration und Vorhandensein von Binaries.
Speicherorte und Rangfolge
Skills werden von drei Orten geladen:
- Gebündelte Skills: mit der Installation ausgeliefert (npm-Paket oder OpenClaw.app)
- Verwaltete/lokale Skills:
~/.openclaw/skills - Workspace-Skills:
<workspace>/skills
Bei Namenskonflikten gilt die Rangfolge:
<workspace>/skills (höchste) → ~/.openclaw/skills → gebündelte Skills (niedrigste)
Zusätzlich kannst du extra Skill-Ordner (niedrigste Priorität) über
skills.load.extraDirs in ~/.openclaw/openclaw.json konfigurieren.
Pro-Agent vs. geteilte Skills
In Multi-Agent-Setups hat jeder Agent seinen eigenen Workspace. Das bedeutet:
- Pro-Agent-Skills liegen in
<workspace>/skillsnur für diesen Agent. - Geteilte Skills liegen in
~/.openclaw/skills(verwaltet/lokal) und sind für alle Agents auf demselben Rechner sichtbar. - Geteilte Ordner können auch über
skills.load.extraDirs(niedrigste Priorität) hinzugefügt werden, wenn du ein gemeinsames Skill-Paket für mehrere Agents willst.
Wenn derselbe Skill-Name an mehr als einem Ort existiert, gilt die übliche Rangfolge: Workspace gewinnt, dann verwaltet/lokal, dann gebündelt.
Plugins + Skills
Plugins können eigene Skills mitliefern, indem sie skills-Verzeichnisse in
openclaw.plugin.json auflisten (Pfade relativ zum Plugin-Root). Plugin-Skills werden
geladen, wenn das Plugin aktiviert ist, und nehmen an den normalen Skill-Rangfolgeregeln teil.
Du kannst sie über metadata.openclaw.requires.config am Config-Eintrag des Plugins steuern.
Siehe Plugins für Discovery/Konfiguration und Tools für die
Tool-Oberfläche, die diese Skills lehren.
ClawHub (installieren + synchronisieren)
ClawHub ist die öffentliche Skills-Registry für OpenClaw. Stöbere auf https://clawhub.com. Verwende sie, um Skills zu entdecken, zu installieren, zu aktualisieren und zu sichern. Vollständige Anleitung: ClawHub.
Häufige Abläufe:
- Einen Skill in deinen Workspace installieren:
clawhub install <skill-slug>
- Alle installierten Skills aktualisieren:
clawhub update --all
- Synchronisieren (scannen + Updates veröffentlichen):
clawhub sync --all
Standardmäßig installiert clawhub in ./skills unter deinem aktuellen
Arbeitsverzeichnis (oder fällt auf den konfigurierten OpenClaw-Workspace zurück). OpenClaw
erkennt das als <workspace>/skills in der nächsten Session.
Sicherheitshinweise
- Behandle Drittanbieter-Skills als nicht vertrauenswürdigen Code. Lies sie vor dem Aktivieren.
- Bevorzuge gesandboxte Runs für nicht vertrauenswürdige Eingaben und riskante Tools. Siehe Sandboxing.
- Workspace- und Extra-Dir-Skill-Erkennung akzeptiert nur Skill-Roots und
SKILL.md-Dateien, deren aufgelöster Realpfad innerhalb des konfigurierten Roots bleibt. skills.entries.*.envundskills.entries.*.apiKeyinjizieren Secrets in den Host-Prozess für diesen Agent-Turn (nicht in die Sandbox). Halte Secrets aus Prompts und Logs fern.- Für ein umfassenderes Bedrohungsmodell und Checklisten siehe Sicherheit.
Format (AgentSkills + Pi-kompatibel)
SKILL.md muss mindestens enthalten:
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
---
Hinweise:
- Wir folgen der AgentSkills-Spezifikation für Layout/Intention.
- Der vom eingebetteten Agent verwendete Parser unterstützt nur einzeilige Frontmatter-Keys.
metadatasollte ein einzeiliges JSON-Objekt sein.- Verwende
{baseDir}in den Anweisungen, um auf den Skill-Ordnerpfad zu verweisen. - Optionale Frontmatter-Keys:
-
homepage— URL, die als “Website” in der macOS Skills-UI angezeigt wird (auch unterstützt übermetadata.openclaw.homepage). -
user-invocable—true|false(Standard:true). Wenntrue, wird der Skill als User-Slash-Command exponiert. -
disable-model-invocation—true|false(Standard:false). Wenntrue, wird der Skill vom Model-Prompt ausgeschlossen (aber weiterhin per User-Invocation verfügbar). -
command-dispatch—tool(optional). Wenn auftoolgesetzt, umgeht der Slash-Command das Modell und dispatcht direkt an ein Tool. -
command-tool— Tool-Name zum Aufrufen, wenncommand-dispatch: toolgesetzt ist. -
command-arg-mode—raw(Standard). Für Tool-Dispatch werden die rohen Argumente als String an das Tool weitergeleitet (kein Core-Parsing).Das Tool wird mit Parametern aufgerufen:
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
-
Gating (Lade-Filter)
OpenClaw filtert Skills beim Laden mit metadata (einzeiliges JSON):
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
metadata:
{
"openclaw":
{
"requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
"primaryEnv": "GEMINI_API_KEY",
},
}
---
Felder unter metadata.openclaw:
always: true— Skill immer einbinden (andere Gates überspringen).emoji— optionales Emoji, das von der macOS Skills-UI verwendet wird.homepage— optionale URL, die als “Website” in der macOS Skills-UI angezeigt wird.os— optionale Liste von Plattformen (darwin,linux,win32). Wenn gesetzt, ist der Skill nur auf diesen Betriebssystemen berechtigt.requires.bins— Liste; jedes muss imPATHexistieren.requires.anyBins— Liste; mindestens eines muss imPATHexistieren.requires.env— Liste; Env-Variable muss existieren oder in der Config bereitgestellt sein.requires.config— Liste vonopenclaw.json-Pfaden, die truthy sein müssen.primaryEnv— Env-Variablenname, der mitskills.entries.<name>.apiKeyverknüpft ist.install— optionales Array von Installer-Specs, das von der macOS Skills-UI verwendet wird (brew/node/go/uv/download).
Hinweis zum Sandboxing:
requires.binswird auf dem Host beim Laden des Skills geprüft.- Wenn ein Agent gesandboxt ist, muss das Binary auch innerhalb des Containers existieren.
Installiere es über
agents.defaults.sandbox.docker.setupCommand(oder ein eigenes Image).setupCommandwird einmalig nach der Container-Erstellung ausgeführt. Paketinstallationen erfordern auch Netzwerk-Egress, ein beschreibbares Root-FS und einen Root-User in der Sandbox. Beispiel: Dersummarize-Skill (skills/summarize/SKILL.md) braucht dassummarize-CLI im Sandbox-Container, um dort zu laufen.
Installer-Beispiel:
---
name: gemini
description: Use Gemini CLI for coding assistance and Google search lookups.
metadata:
{
"openclaw":
{
"emoji": "♊️",
"requires": { "bins": ["gemini"] },
"install":
[
{
"id": "brew",
"kind": "brew",
"formula": "gemini-cli",
"bins": ["gemini"],
"label": "Install Gemini CLI (brew)",
},
],
},
}
---
Hinweise:
- Wenn mehrere Installer aufgelistet sind, wählt das Gateway eine einzelne bevorzugte Option (Brew wenn verfügbar, sonst Node).
- Wenn alle Installer
downloadsind, listet OpenClaw jeden Eintrag auf, damit du die verfügbaren Artefakte sehen kannst. - Installer-Specs können
os: ["darwin"|"linux"|"win32"]enthalten, um Optionen nach Plattform zu filtern. - Node-Installationen berücksichtigen
skills.install.nodeManagerinopenclaw.json(Standard: npm; Optionen: npm/pnpm/yarn/bun). Das betrifft nur Skill-Installationen; die Gateway-Runtime sollte weiterhin Node sein (Bun wird nicht für WhatsApp/Telegram empfohlen). - Go-Installationen: Wenn
gofehlt undbrewverfügbar ist, installiert das Gateway Go zuerst via Homebrew und setztGOBINauf Homebrewsbin, wenn möglich. - Download-Installationen:
url(erforderlich),archive(tar.gz|tar.bz2|zip),extract(Standard: automatisch bei erkanntem Archiv),stripComponents,targetDir(Standard:~/.openclaw/tools/<skillKey>).
Wenn kein metadata.openclaw vorhanden ist, ist der Skill immer berechtigt (es sei denn,
er ist in der Config deaktiviert oder durch skills.allowBundled für gebündelte Skills blockiert).
Config-Overrides (~/.openclaw/openclaw.json)
Gebündelte/verwaltete Skills können umgeschaltet und mit Env-Werten versorgt werden:
{
skills: {
entries: {
"nano-banana-pro": {
enabled: true,
apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // oder Plaintext-String
env: {
GEMINI_API_KEY: "GEMINI_KEY_HERE",
},
config: {
endpoint: "https://example.invalid",
model: "nano-pro",
},
},
peekaboo: { enabled: true },
sag: { enabled: false },
},
},
}
Hinweis: Wenn der Skill-Name Bindestriche enthält, quotiere den Key (JSON5 erlaubt quotierte Keys).
Config-Keys entsprechen standardmäßig dem Skill-Namen. Wenn ein Skill
metadata.openclaw.skillKey definiert, verwende diesen Key unter skills.entries.
Regeln:
enabled: falsedeaktiviert den Skill, auch wenn er gebündelt/installiert ist.env: wird nur injiziert, wenn die Variable nicht bereits im Prozess gesetzt ist.apiKey: Bequemlichkeit für Skills, diemetadata.openclaw.primaryEnvdeklarieren. Unterstützt Plaintext-String oder SecretRef-Objekt ({ source, provider, id }).config: optionaler Container für benutzerdefinierte Pro-Skill-Felder; eigene Keys müssen hier liegen.allowBundled: optionale Allowlist nur für gebündelte Skills. Wenn gesetzt, sind nur gebündelte Skills in der Liste berechtigt (verwaltete/Workspace-Skills unberührt).
Umgebungs-Injection (pro Agent-Run)
Wenn ein Agent-Run startet, führt OpenClaw folgendes durch:
- Skill-Metadaten lesen.
skills.entries.<key>.envoderskills.entries.<key>.apiKeyaufprocess.envanwenden.- Den System-Prompt mit berechtigten Skills erstellen.
- Die ursprüngliche Umgebung nach Ende des Runs wiederherstellen.
Das ist auf den Agent-Run beschränkt, nicht eine globale Shell-Umgebung.
Session-Snapshot (Performance)
OpenClaw erstellt einen Snapshot der berechtigten Skills, wenn eine Session startet, und verwendet diese Liste für nachfolgende Turns in derselben Session. Änderungen an Skills oder Config werden in der nächsten neuen Session wirksam.
Skills können auch während der Session aktualisiert werden, wenn der Skills-Watcher aktiviert ist oder ein neuer berechtigter Remote-Node erscheint (siehe unten). Das ist wie ein Hot Reload: Die aktualisierte Liste wird beim nächsten Agent-Turn aufgegriffen.
Remote macOS-Nodes (Linux-Gateway)
Wenn das Gateway auf Linux läuft, aber ein macOS-Node verbunden ist mit erlaubtem system.run (Exec-Approvals-Security nicht auf deny gesetzt), kann OpenClaw macOS-only Skills als berechtigt behandeln, wenn die erforderlichen Binaries auf diesem Node vorhanden sind. Der Agent sollte diese Skills über das nodes-Tool (typischerweise nodes.run) ausführen.
Das hängt davon ab, dass der Node seine Command-Unterstützung meldet und eine Bin-Probe über system.run durchgeführt wird. Wenn der macOS-Node später offline geht, bleiben die Skills sichtbar; Aufrufe können fehlschlagen, bis der Node sich wieder verbindet.
Skills-Watcher (Auto-Refresh)
Standardmäßig überwacht OpenClaw Skill-Ordner und aktualisiert den Skills-Snapshot, wenn sich SKILL.md-Dateien ändern. Konfiguriere das unter skills.load:
{
skills: {
load: {
watch: true,
watchDebounceMs: 250,
},
},
}
Token-Auswirkung (Skills-Liste)
Wenn Skills berechtigt sind, injiziert OpenClaw eine kompakte XML-Liste der verfügbaren Skills in den System-Prompt (über formatSkillsForPrompt in pi-coding-agent). Die Kosten sind deterministisch:
- Basis-Overhead (nur wenn mindestens 1 Skill): 195 Zeichen.
- Pro Skill: 97 Zeichen + die Länge der XML-escaped
<name>-,<description>- und<location>-Werte.
Formel (Zeichen):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
Hinweise:
- XML-Escaping expandiert
& < > " 'in Entities (&,<, etc.), was die Länge erhöht. - Token-Counts variieren je nach Model-Tokenizer. Eine grobe Schätzung im OpenAI-Stil ist ~4 Zeichen/Token, also 97 Zeichen ≈ 24 Tokens pro Skill plus deine tatsächlichen Feldlängen.
Lebenszyklus verwalteter Skills
OpenClaw liefert eine Basis-Menge an Skills als gebündelte Skills als Teil der
Installation (npm-Paket oder OpenClaw.app). ~/.openclaw/skills existiert für lokale
Overrides (zum Beispiel einen Skill pinnen/patchen, ohne die gebündelte Kopie zu ändern).
Workspace-Skills gehören dem Benutzer und überschreiben beide bei Namenskonflikten.
Config-Referenz
Siehe Skills-Konfiguration für das vollständige Konfigurationsschema.
Weitere Skills gesucht?
Stöbere auf https://clawhub.com.