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.

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:

text
<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.

json5
{  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.skills weg, damit standardmäßig alle Skills uneingeschränkt bleiben.
  • Lassen Sie agents.list[].skills weg, um agents.defaults.skills zu 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 exec verwenden 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.

bash
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:

markdown
---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

homepagestring

URL, die in der macOS-Skills-UI als "Website" angezeigt wird. Auch über metadata.openclaw.homepage unterstützt.

user-invocablebooleandefault: true

Wenn true, wird der Skill als vom Benutzer aufrufbarer Slash-Befehl verfügbar gemacht.

disable-model-invocationbooleandefault: false

Wenn 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-toolstring

Tool-Name, der aufgerufen wird, wenn command-dispatch: tool gesetzt ist.

command-arg-mode"raw"default: raw

Fü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.

markdown
---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",      },  }---
alwaysboolean

Wenn true, wird der Skill immer einbezogen und alle anderen Gates werden übersprungen.

emojistring

Optionales Emoji, das in der macOS Skills UI angezeigt wird.

homepagestring

Optionale 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.

primaryEnvstring

Name 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:

markdown
---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 download sind, 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.nodeManager in openclaw.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 brew werden 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, GOPATH und GOTOOLCHAIN. 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. Wenn go fehlt und Homebrew verfügbar ist, installiert OpenClaw zuerst Go über Homebrew und setzt GOBIN auf das bin von Homebrew. Unter Linux kann OpenClaw stattdessen apt-get als root oder über passwortloses sudo verwenden, wenn der aktualisierte golang-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:

json5
{  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 },    },  },}
enabledboolean

false 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,
configobject

Optionale 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:

    json5
    {  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:

    text
    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, description und location
    • 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

    Was this useful?
    On this page

    On this page