Skills
Skills
Skills sind Markdown-Anweisungsdateien, die dem Agenten beibringen, wie und wann er
Tools verwendet. Jeder Skill liegt in einem Verzeichnis, das eine SKILL.md-Datei
mit YAML-Frontmatter und einem Markdown-Body enthält. OpenClaw lädt gebündelte
Skills sowie lokale Überschreibungen und filtert sie beim Laden basierend auf
Umgebung, Konfiguration und vorhandenen Binärdateien.
Erstellen und testen Sie einen benutzerdefinierten Skill von Grund auf.
Prüfen und genehmigen Sie vom Agenten entworfene Skill-Vorschläge.
Vollständiges skills.*-Konfigurationsschema und Agent-Allowlists.
Community-Skills durchsuchen und installieren.
Ladereihenfolge
OpenClaw lädt aus diesen Quellen, höchste Priorität zuerst. Wenn derselbe Skill-Name an mehreren Stellen erscheint, gewinnt die Quelle mit der höchsten Priorität.
| Priorität | Quelle | Pfad |
|---|---|---|
| 1 — höchste | Workspace-Skills | <workspace>/skills |
| 2 | Projekt-Agent-Skills | <workspace>/.agents/skills |
| 3 | Persönliche Agent-Skills | ~/.agents/skills |
| 4 | Verwaltete / lokale Skills | ~/.openclaw/skills |
| 5 | Gebündelte Skills | mit der Installation ausgeliefert |
| 6 — niedrigste | Zusätzliche Verzeichnisse | skills.load.extraDirs + Plugin-Skills |
Skill-Wurzeln unterstützen gruppierte Layouts. OpenClaw entdeckt einen Skill,
sobald SKILL.md irgendwo unter einer konfigurierten Wurzel erscheint:
<workspace>/skills/research/SKILL.md ✓ found as "research"<workspace>/skills/personal/research/SKILL.md ✓ also found as "research"Der Ordnerpfad dient nur der Organisation. Der Name des Skills, der
Slash-Befehl und der Allowlist-Schlüssel stammen alle aus dem Frontmatter-Feld
name (oder aus dem Verzeichnisnamen, wenn name fehlt).
Agent-spezifische vs. gemeinsame Skills
In Multi-Agent-Setups hat jeder Agent seinen eigenen Workspace. Verwenden Sie den Pfad, der Ihrer gewünschten Sichtbarkeit entspricht:
| Geltungsbereich | Pfad | Sichtbar für |
|---|---|---|
| Agent-spezifisch | <workspace>/skills |
Nur diesen Agenten |
| Projekt-Agent | <workspace>/.agents/skills |
Nur den Agenten dieses Workspace |
| Persönlicher Agent | ~/.agents/skills |
Alle Agenten auf diesem Computer |
| Gemeinsam verwaltet | ~/.openclaw/skills |
Alle Agenten auf diesem Computer |
| Zusätzliche Verzeichnisse | skills.load.extraDirs |
Alle Agenten auf diesem Computer |
Agent-Allowlists
Skill-Speicherort (Priorität) und Skill-Sichtbarkeit (welcher Agent ihn verwenden kann) sind getrennte Steuerungen. Verwenden Sie Allowlists, um einzuschränken, welche Skills ein Agent sieht, unabhängig davon, von wo sie geladen werden.
{ agents: { defaults: { skills: ["github", "weather"], // shared baseline }, list: [ { id: "writer" }, // inherits github, weather { id: "docs", skills: ["docs-search"] }, // replaces defaults entirely { id: "locked-down", skills: [] }, // no skills ], },}Allowlist-Regeln
- Lassen Sie
agents.defaults.skillsweg, damit standardmäßig alle Skills uneingeschränkt bleiben. - Lassen Sie
agents.list[].skillsweg, umagents.defaults.skillszu erben. - Setzen Sie
agents.list[].skills: [], um für diesen Agenten keine Skills bereitzustellen. - Eine nicht leere
agents.list[].skills-Liste ist die endgültige Menge — sie wird nicht mit den Defaults zusammengeführt. - Die effektive Allowlist gilt für Prompt-Erstellung, Slash-Befehls-Erkennung, Sandbox-Synchronisierung und Skill-Snapshots.
- Dies ist keine Autorisierungsgrenze für die Host-Shell. Wenn derselbe Agent
execverwenden kann, beschränken Sie diese Shell separat mit Sandboxing, OS-Benutzer-Isolation, Exec-Deny-/Allowlists und ressourcenspezifischen Anmeldedaten.
Plugins und Skills
Plugins können eigene Skills ausliefern, indem sie skills-Verzeichnisse in
openclaw.plugin.json auflisten (Pfade relativ zur Plugin-Wurzel). Plugin-Skills
werden geladen, wenn das Plugin aktiviert ist — zum Beispiel liefert das
Browser-Plugin einen browser-automation-Skill für mehrstufige Browser-Steuerung aus.
Plugin-Skill-Verzeichnisse werden auf derselben niedrig priorisierten Ebene wie
skills.load.extraDirs zusammengeführt, sodass ein gleichnamiger gebündelter,
verwalteter, Agent- oder Workspace-Skill sie überschreibt. Begrenzen Sie sie über
metadata.openclaw.requires.config im Konfigurationseintrag des Plugins.
Siehe Plugins und Tools für das vollständige Plugin-System.
Skill-Workshop
Skill-Workshop ist eine Vorschlagswarteschlange zwischen
dem Agenten und Ihren aktiven Skill-Dateien. Wenn der Agent wiederverwendbare
Arbeit erkennt, erstellt er einen Vorschlag, statt direkt in SKILL.md zu
schreiben. Sie prüfen und genehmigen ihn, bevor sich etwas ändert.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Siehe Skill-Workshop für den vollständigen Lebenszyklus, die CLI-Referenz und die Konfiguration.
Installation aus ClawHub
ClawHub ist die öffentliche Skills-Registry. Verwenden Sie
openclaw skills-Befehle für Installation und Aktualisierung oder die clawhub
CLI für Veröffentlichung und Synchronisierung.
| Aktion | Befehl |
|---|---|
| Einen Skill im Workspace installieren | openclaw skills install @owner/<slug> |
| Aus einem Git-Repository installieren | openclaw skills install git:owner/repo@ref |
| Ein lokales Skill-Verzeichnis installieren | openclaw skills install ./path/to/skill --as my-tool |
| Für alle lokalen Agenten installieren | openclaw skills install @owner/<slug> --global |
| Alle Workspace-Skills aktualisieren | openclaw skills update --all |
| Einen gemeinsam verwalteten Skill aktualisieren | openclaw skills update @owner/<slug> --global |
| Alle gemeinsam verwalteten Skills aktualisieren | openclaw skills update --all --global |
| Trust Envelope eines Skills prüfen | openclaw skills verify @owner/<slug> |
| Die generierte Skill Card ausgeben | openclaw skills verify @owner/<slug> --card |
| Über ClawHub CLI veröffentlichen / synchronisieren | clawhub sync --all |
Installationsdetails
openclaw skills install installiert standardmäßig in das skills/-Verzeichnis
des aktiven Workspace. Fügen Sie --global hinzu, um in das gemeinsam genutzte
Verzeichnis ~/.openclaw/skills zu installieren, das für alle lokalen Agenten
sichtbar ist, sofern Agent-Allowlists es nicht einschränken.
Git- und lokale Installationen erwarten SKILL.md an der Quellwurzel. Der Slug
stammt aus dem name-Frontmatter von SKILL.md, wenn gültig, und fällt sonst
auf den Verzeichnis- oder Repository-Namen zurück. Verwenden Sie --as <slug>,
um ihn zu überschreiben. openclaw skills update verfolgt nur ClawHub-Installationen —
installieren Sie Git- oder lokale Quellen erneut, um sie zu aktualisieren.
Verifizierung und Sicherheitsscans
openclaw skills verify @owner/<slug> fragt ClawHub nach dem
clawhub.skill.verify.v1 Trust Envelope des Skills. Installierte ClawHub-Skills
werden gegen die Version und Registry geprüft, die in .clawhub/origin.json
aufgezeichnet sind. Bloße Slugs bleiben für bestehende installierte oder
eindeutige Skills akzeptiert, aber owner-qualifizierte Refs vermeiden
Publisher-Mehrdeutigkeit.
ClawHub-Skill-Seiten zeigen vor der Installation den neuesten Sicherheits-Scanstatus
mit Detailseiten für VirusTotal, ClawScan und statische Analyse. Der Befehl beendet
sich mit einem Wert ungleich null, wenn ClawHub die Verifizierung als fehlgeschlagen
markiert. Publisher beheben False Positives über das ClawHub-Dashboard oder
clawhub skill rescan @owner/<slug>.
Installationen aus privaten Archiven
Gateway-Clients, die eine Bereitstellung außerhalb von ClawHub benötigen, können
ein ZIP-Skill-Archiv mit skills.upload.begin, skills.upload.chunk und
skills.upload.commit bereitstellen und anschließend mit
skills.install({ source: "upload", ... }) installieren. Dieser Pfad ist
standardmäßig deaktiviert und erfordert skills.install.allowUploadedArchives: true
in openclaw.json. Normale ClawHub-Installationen benötigen diese Einstellung nie.
Sicherheit
Pfadbegrenzung
Die Skill-Erkennung für Workspace-, Projekt-Agent- und Zusatzverzeichnis-Skills
akzeptiert nur Skill-Wurzeln, deren aufgelöster Realpath innerhalb der
konfigurierten Wurzel bleibt, es sei denn, skills.load.allowSymlinkTargets
vertraut explizit einer Zielwurzel. Skill-Workshop schreibt nur dann über
diese vertrauenswürdigen Ziele, wenn skills.workshop.allowSymlinkTargetWrites
aktiviert ist. Verwaltete ~/.openclaw/skills und persönliche
~/.agents/skills dürfen symlinkte Skill-Ordner enthalten, aber jeder
SKILL.md-Realpath muss weiterhin innerhalb seines aufgelösten
Skill-Verzeichnisses bleiben.
Installationsrichtlinie des Operators
Konfigurieren Sie security.installPolicy, um einen vertrauenswürdigen lokalen
Richtlinienbefehl auszuführen, bevor Skill-Installationen fortgesetzt werden.
Die Richtlinie erhält Metadaten und den bereitgestellten Quellpfad, gilt für
ClawHub-, Upload-, Git-, lokale, Update- und Dependency-Installer-Pfade und
schlägt geschlossen fehl, wenn der Befehl keine gültige Entscheidung zurückgeben kann.
Geltungsbereich der Secret-Injektion
skills.entries.*.env und skills.entries.*.apiKey injizieren Secrets nur
für diesen Agent-Turn in den Host-Prozess — nicht in die Sandbox. Halten
Sie Secrets aus Prompts und Logs heraus.
Für das umfassendere Bedrohungsmodell und Sicherheits-Checklisten siehe Security.
SKILL.md-Format
Jeder Skill benötigt mindestens name und description im Frontmatter:
---name: image-labdescription: Generate or edit images via a provider-backed image workflow--- When the user asks to generate an image, use the `image_generate` tool...Optionale Frontmatter-Schlüssel
homepagestringURL, die in der macOS-Skills-UI als "Website" angezeigt wird. Auch über
metadata.openclaw.homepage unterstützt.
user-invocablebooleandefault: trueWenn true, wird der Skill als vom Benutzer aufrufbarer Slash-Befehl verfügbar gemacht.
disable-model-invocationbooleandefault: falseWenn true, hält OpenClaw die Anweisungen des Skills aus dem normalen Prompt
des Agenten heraus. Der Skill ist weiterhin als Slash-Befehl verfügbar, wenn
user-invocable ebenfalls true ist.
command-dispatch"tool"Wenn auf tool gesetzt, umgeht der Slash-Befehl das Modell und dispatcht
direkt an ein registriertes Tool.
command-toolstringTool-Name, der aufgerufen wird, wenn command-dispatch: tool gesetzt ist.
command-arg-mode"raw"default: rawFür Tool-Dispatch wird die rohe Argumentzeichenfolge ohne Core-Parsing an das Tool
weitergeleitet. Das Tool erhält
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Gating
OpenClaw filtert Skills beim Laden mit metadata.openclaw (einzeiliges
JSON im Frontmatter). Ein Skill ohne metadata.openclaw-Block ist immer
zulässig, sofern er nicht ausdrücklich deaktiviert wurde.
---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanWenn true, wird der Skill immer einbezogen und alle anderen Gates werden übersprungen.
emojistringOptionales Emoji, das in der macOS Skills UI angezeigt wird.
homepagestringOptionale URL, die als „Website“ in der macOS Skills UI angezeigt wird.
os"darwin" | "linux" | "win32"Plattformfilter. Wenn gesetzt, ist der Skill nur auf den aufgeführten Betriebssystemen zulässig.
requires.binsstring[]Jede Binärdatei muss auf PATH vorhanden sein.
requires.anyBinsstring[]Mindestens eine Binärdatei muss auf PATH vorhanden sein.
requires.envstring[]Jede Umgebungsvariable muss im Prozess vorhanden sein oder über die Konfiguration bereitgestellt werden.
requires.configstring[]Jeder openclaw.json-Pfad muss truthy sein.
primaryEnvstringName der Umgebungsvariable, die skills.entries.<name>.apiKey zugeordnet ist.
installobject[]Optionale Installationsspezifikationen, die von der macOS Skills UI verwendet werden (brew / node / go / uv / download).
Installationsspezifikationen
Installationsspezifikationen teilen der macOS Skills UI mit, wie eine Abhängigkeit installiert wird:
---name: geminidescription: 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)", }, ], }, }---Installer selection rules
- Wenn mehrere Installationsprogramme aufgeführt sind, wählt der Gateway eine bevorzugte Option (brew, wenn verfügbar, andernfalls node).
- Wenn alle Installationsprogramme
downloadsind, listet OpenClaw jeden Eintrag auf, damit Sie alle verfügbaren Artefakte sehen können. - Spezifikationen können
os: ["darwin"|"linux"|"win32"]enthalten, um nach Plattform zu filtern. - Node-Installationen berücksichtigen
skills.install.nodeManagerinopenclaw.json(Standard: npm; Optionen: npm / pnpm / yarn / bun). Dies wirkt sich nur auf Skill-Installationen aus; die Gateway-Laufzeit sollte weiterhin Node sein. - Gateway-Präferenz für Installationsprogramme: Homebrew → uv → konfigurierter Node-Manager → go → download.
Per-installer details
- Homebrew: OpenClaw installiert Homebrew nicht automatisch und übersetzt brew-Formeln
nicht in Systempaketbefehle. In Linux-Containern ohne
brewwerden nur-brew-Installationsprogramme ausgeblendet; verwenden Sie ein eigenes Image oder installieren Sie die Abhängigkeit manuell. - Go: OpenClaw erfordert Go 1.21 oder neuer für automatische Skill-Installationen und
bewahrt die vorhandenen Einstellungen
GOBIN,GOPATHundGOTOOLCHAIN. Wenn die konfigurierte Toolchain die erforderliche Go-Version eines Moduls nicht erfüllen kann, gruppiert das Onboarding den Skill nach dem Installationsversuch mit manuellen Go-Voraussetzungen. Wenngofehlt und Homebrew verfügbar ist, installiert OpenClaw zuerst Go über Homebrew und setztGOBINauf dasbinvon Homebrew. Unter Linux kann OpenClaw stattdessenapt-getals root oder über passwortlosessudoverwenden, wenn der aktualisiertegolang-go-Kandidat die Mindestversion erfüllt. - Download:
url(erforderlich),archive(tar.gz|tar.bz2|zip),extract(Standard: auto, wenn Archiv erkannt),stripComponents,targetDir(Standard:~/.openclaw/tools/<skillKey>).
Sandboxing notes
requires.bins wird beim Laden des Skills auf dem Host geprüft. Wenn ein Agent
in einer Sandbox läuft, muss die Binärdatei auch innerhalb des Containers vorhanden sein.
Installieren Sie sie über agents.defaults.sandbox.docker.setupCommand oder ein eigenes
Image. setupCommand läuft einmal nach der Containererstellung und erfordert
ausgehenden Netzwerkzugriff, ein beschreibbares Root-Dateisystem und einen root-Benutzer in der Sandbox.
Konfigurationsüberschreibungen
Schalten Sie gebündelte oder verwaltete Skills unter skills.entries in
~/.openclaw/openclaw.json ein und konfigurieren Sie sie:
{ skills: { entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, config: { endpoint: "https://example.invalid", model: "nano-pro", }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, },}enabledbooleanfalse deaktiviert den Skill, selbst wenn er gebündelt oder installiert ist. Der gebündelte
Skill coding-agent ist opt-in — setzen Sie skills.entries.coding-agent.enabled: true
und stellen Sie sicher, dass eines von claude, codex, opencode oder eine andere unterstützte CLI
installiert und authentifiziert ist.
apiKeystring | { source, provider, id }Komfortfeld für Skills, die metadata.openclaw.primaryEnv deklarieren.
Unterstützt eine Klartextzeichenfolge oder ein SecretRef-Objekt.
env"Record<string,configobjectOptionale Sammlung für benutzerdefinierte Konfigurationsfelder pro Skill.
allowBundledstring[]Optionale Allowlist nur für gebündelte Skills. Wenn gesetzt, sind nur gebündelte Skills in der Liste zulässig. Verwaltete und Workspace-Skills sind nicht betroffen.
Umgebungsinjektion
Wenn ein Agent-Lauf startet, führt OpenClaw Folgendes aus:
Reads skill metadata
OpenClaw löst die effektive Skill-Liste für den Agent auf und wendet dabei Gating-Regeln, Allowlists und Konfigurationsüberschreibungen an.
Injects env and API keys
skills.entries.<key>.env und skills.entries.<key>.apiKey werden für die Dauer des Laufs auf
process.env angewendet.
Builds the system prompt
Zulässige Skills werden in einen kompakten XML-Block kompiliert und in den System-Prompt injiziert.
Restores the environment
Nach Ende des Laufs wird die ursprüngliche Umgebung wiederhergestellt.
Für das gebündelte Backend claude-cli materialisiert OpenClaw denselben
zulässigen Skill-Snapshot außerdem als temporäres Claude Code Plugin und übergibt ihn über
--plugin-dir. Andere CLI-Backends verwenden nur den Prompt-Katalog.
Snapshots und Aktualisierung
OpenClaw erstellt Snapshots zulässiger Skills beim Start einer Sitzung und verwendet diese Liste für alle nachfolgenden Turns in der Sitzung wieder. Änderungen an Skills oder Konfiguration werden bei der nächsten neuen Sitzung wirksam.
Skills werden mitten in der Sitzung in zwei Fällen aktualisiert:
- Der Skills-Watcher erkennt eine Änderung an
SKILL.md. - Ein neuer zulässiger Remote-Knoten verbindet sich.
Die aktualisierte Liste wird beim nächsten Agent-Turn übernommen. Wenn sich die effektive Agent-Allowlist ändert, aktualisiert OpenClaw den Snapshot, damit sichtbare Skills ausgerichtet bleiben.
Skills watcher
Standardmäßig überwacht OpenClaw Skill-Ordner und erhöht den Snapshot, wenn sich
SKILL.md-Dateien ändern. Konfigurieren Sie dies unter skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, watchDebounceMs: 250, }, },}Verwenden Sie allowSymlinkTargets für absichtlich per Symlink verknüpfte Layouts, bei denen ein Skill-Root-Symlink
außerhalb des konfigurierten Roots zeigt, zum Beispiel
<workspace>/skills/manager -> ~/Projects/manager/skills.
Aktivieren Sie skills.workshop.allowSymlinkTargetWrites nur, wenn Skill Workshop
Vorschläge auch über diese vertrauenswürdigen Symlink-Pfade anwenden soll.
Remote macOS nodes (Linux gateway)
Wenn der Gateway unter Linux läuft, aber ein macOS-Knoten mit erlaubtem
system.run verbunden ist, kann OpenClaw macOS-only Skills als zulässig behandeln, wenn
die erforderlichen Binärdateien auf diesem Knoten vorhanden sind. Der Agent sollte diese
Skills über das Tool exec mit host=node ausführen.
Offline-Knoten machen remote-only Skills nicht sichtbar. Wenn ein Knoten nicht mehr auf Binärdatei-Probes antwortet, löscht OpenClaw seine gecachten Binärdatei-Treffer.
Token-Auswirkung
Wenn Skills zulässig sind, injiziert OpenClaw einen kompakten XML-Block in den System- Prompt. Die Kosten sind deterministisch:
total = 195 + Σ (97 + len(name) + len(description) + len(filepath))- Basis-Overhead (nur bei ≥ 1 Skill): ~195 Zeichen
- Pro Skill: ~97 Zeichen + die Längen Ihrer Felder
name,descriptionundlocation - XML-Escaping erweitert
& < > " 'zu Entitäten und fügt pro Vorkommen einige Zeichen hinzu - Bei ~4 Zeichen/Token entsprechen 97 Zeichen ≈ 24 Tokens pro Skill vor den Feldlängen
Halten Sie Beschreibungen kurz und aussagekräftig, um den Prompt-Overhead zu minimieren.
Verwandte Themen
Schritt-für-Schritt-Anleitung zum Erstellen eines benutzerdefinierten Skills.
Vorschlagswarteschlange für von Agenten entworfene Skills.
Vollständiges skills.*-Konfigurationsschema und Agent-Allowlists.
Wie Skill-Slash-Commands registriert und geroutet werden.
Skills in der öffentlichen Registry durchsuchen und veröffentlichen.
Plugins können Skills zusammen mit den Tools ausliefern, die sie dokumentieren.