Skills
Skills-Konfiguration
Die meiste Skills-Konfiguration befindet sich unter skills in
~/.openclaw/openclaw.json. Die agentenspezifische Sichtbarkeit befindet sich unter
agents.defaults.skills und agents.entries.*.skills.
{ skills: { allowBundled: ["gemini", "peekaboo"], load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, }, install: { preferBrew: true, nodeManager: "npm", allowUploadedArchives: false, }, workshop: { autonomous: { enabled: false }, allowSymlinkTargetWrites: false, approvalPolicy: "auto", maxPending: 50, maxSkillBytes: 40000, }, entries: { "image-lab": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, }, peekaboo: { enabled: true }, sag: { enabled: false }, }, },}Laden (skills.load)
skills.load.extraDirsstring[]Zusätzliche zu durchsuchende Skill-Verzeichnisse mit der niedrigsten Priorität (unterhalb
gebündelter Skills und Plugin-Skills). Pfade werden mit Unterstützung für ~ erweitert.
skills.load.allowSymlinkTargetsstring[]Vertrauenswürdige tatsächliche Zielverzeichnisse, in die über Symlinks eingebundene Skill-Ordner
aufgelöst werden dürfen, selbst wenn sich der Symlink außerhalb des konfigurierten Stammverzeichnisses
befindet. Verwenden Sie dies für beabsichtigte Layouts mit benachbarten Repositorys wie
<workspace>/skills/manager -> ~/Projects/manager/skills. Halten Sie diese Liste
eng begrenzt — verweisen Sie nicht auf weit gefasste Stammverzeichnisse wie ~ oder ~/Projects.
skills.load.watchbooleandefault: trueÜberwacht Skill-Ordner und aktualisiert den Skills-Snapshot, wenn sich SKILL.md-Dateien
ändern. Dies umfasst verschachtelte Dateien unter gruppierten Skill-Stammverzeichnissen.
Installation (skills.install)
skills.install.preferBrewbooleandefault: trueBevorzugt Homebrew-Installationsprogramme, wenn brew verfügbar ist.
skills.install.nodeManager"npm" | "pnpm" | "yarn" | "bun"default: "npm"Bevorzugter Node-Paketmanager für Skill-Installationen. Dies betrifft ausschließlich
Skill-Installationen – die OpenClaw-CLI und die Gateway-Laufzeit benötigen Node, da der
kanonische Zustandsspeicher node:sqlite verwendet. openclaw setup --node-manager und
openclaw onboard --node-manager akzeptieren npm, pnpm oder bun; legen Sie
"yarn" für Yarn-basierte Skill-Installationen direkt in der Konfiguration fest.
skills.install.allowUploadedArchivesbooleandefault: falseErlaubt vertrauenswürdigen operator.admin-Gateway-Clients, private ZIP-Archive zu installieren,
die über skills.upload.* bereitgestellt wurden. Normale ClawHub-Installationen benötigen
diese Einstellung nicht.
Installationsrichtlinie für Betreiber (security.installPolicy)
Verwenden Sie security.installPolicy, wenn Betreiber einen vertrauenswürdigen lokalen Befehl benötigen,
um Skill- und Plugin-Installationen anhand hostspezifischer Richtlinien zu genehmigen oder zu blockieren. Die
Richtlinie wird ausgeführt, nachdem OpenClaw das Quellmaterial bereitgestellt hat und bevor die Installation
oder Aktualisierung fortgesetzt wird. Sie gilt für ClawHub-Skills, hochgeladene Skills, Git-/lokale
Skills, Installationsprogramme für Skill-Abhängigkeiten sowie Quellen für Plugin-Installationen und -Aktualisierungen.
{ security: { installPolicy: { enabled: true, // Omit targets to cover every supported target. targets: ["skill", "plugin"], exec: { source: "exec", command: "/usr/local/bin/openclaw-install-policy", args: ["--json"], timeoutMs: 10000, noOutputTimeoutMs: 10000, maxOutputBytes: 1048576, passEnv: ["OPENCLAW_STATE_DIR", "PATH"], env: { POLICY_MODE: "strict" }, trustedDirs: ["/usr/local/bin"], }, }, },}security.installPolicy.enabledbooleandefault: falseAktiviert die betreibereigene Installationsrichtlinie. Wenn sie ohne gültigen exec-Befehl
aktiviert wird, werden Installationen standardmäßig blockiert.
security.installPolicy.targets("skill" | "plugin")[]Optionaler Zielfilter. Wenn er weggelassen wird, gilt die Richtlinie für jedes unterstützte Ziel, damit neue Installationen nicht unerwartet standardmäßig zugelassen werden.
security.installPolicy.exec.commandstringAbsoluter Pfad zur vertrauenswürdigen ausführbaren Richtliniendatei. OpenClaw führt sie ohne Shell aus und validiert den Pfad vor der Verwendung.
security.installPolicy.exec.argsstring[]Statische Argumente, die nach command übergeben werden.
security.installPolicy.exec.timeoutMsnumberdefault: 10000Maximale Gesamtlaufzeit für eine Richtlinienentscheidung.
security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMsMaximale Zeit ohne Ausgabe auf stdout oder stderr, bevor die Richtlinie standardmäßig blockiert.
security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576Maximale kombinierte Anzahl an stdout- und stderr-Bytes, die vom Richtlinienprozess akzeptiert wird.
security.installPolicy.exec.env"Record<string,security.installPolicy.exec.passEnvstring[]Namen von Umgebungsvariablen, die aus dem OpenClaw-Prozess in den Richtlinienprozess kopiert werden. Nur benannte Variablen werden übergeben.
security.installPolicy.exec.trustedDirsstring[]Optionale Positivliste von Verzeichnissen, die die ausführbare Richtliniendatei enthalten dürfen.
security.installPolicy.exec.allowInsecurePathbooleandefault: falseUmgeht Prüfungen der Eigentümerschaft und Berechtigungen des Befehlspfads. Verwenden Sie dies nur, wenn der Pfad durch einen anderen Mechanismus geschützt ist.
security.installPolicy.exec.allowSymlinkCommandbooleandefault: falseErlaubt, dass der konfigurierte Befehlspfad ein Symlink ist. Das aufgelöste Ziel muss weiterhin die übrigen Pfadprüfungen erfüllen. Argumente für Interpreter-Skripte müssen direkte reguläre Dateien und dürfen keine Symlinks sein.
Die Richtlinie empfängt über stdin ein JSON-Objekt mit protocolVersion: 1,
openclawVersion, targetType, targetName, sourcePath, sourcePathKind,
optionalem strukturiertem source, strukturiertem origin und request. Sie muss
über stdout ein JSON-Objekt ausgeben: { "protocolVersion": 1, "decision": "allow" }
oder { "protocolVersion": 1, "decision": "block", "reason": "..." }. Ein von null verschiedener
Exit-Code, eine Zeitüberschreitung, fehlerhaftes JSON, fehlende Felder oder nicht unterstützte Protokollversionen
führen zur standardmäßigen Blockierung.
OpenClaw führt die Installationsrichtlinie beim normalen Start des Gateways nicht aus.
Installationen und Aktualisierungen werden standardmäßig blockiert, wenn die Richtlinie aktiviert, aber nicht verfügbar ist.
openclaw doctor führt eine statische Validierung durch; openclaw doctor --deep
führt eine synthetische Installationsprüfung für den konfigurierten Befehl aus.
Bei Massenaktualisierungen wird die Richtlinie auf jedes Ziel einzeln angewendet: Eine blockierte Aktualisierung eines Skills oder Plugins lässt dieses Ziel fehlschlagen, ohne die Richtlinie zu deaktivieren oder spätere Ziele im Stapel zu überspringen.
Beispiel für stdin:
{ "protocolVersion": 1, "openclawVersion": "2026.6.1", "targetType": "skill", "targetName": "weather", "sourcePath": "/var/folders/.../openclaw-skill-clawhub/root", "sourcePathKind": "directory", "source": { "kind": "clawhub", "authority": "openclaw", "mutable": false, "network": true }, "origin": { "type": "clawhub", "registry": "https://clawhub.openclaw.ai", "slug": "weather", "version": "1.0.0" }, "request": { "kind": "skill-install", "mode": "install", "requestedSpecifier": "clawhub:weather@1.0.0" }, "skill": { "installId": "clawhub" }}Minimaler Richtlinienbefehl:
#!/usr/bin/env node let input = "";process.stdin.setEncoding("utf8");process.stdin.on("data", (chunk) => { input += chunk;});process.stdin.on("end", () => { const request = JSON.parse(input); if (request.targetType === "plugin" && request.source?.kind === "local-path") { process.stdout.write( JSON.stringify({ protocolVersion: 1, decision: "block", reason: "local plugin paths are not approved on this host", }), ); return; } process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));});Positivliste gebündelter Skills
skills.allowBundledstring[]Optionale Positivliste ausschließlich für gebündelte Skills. Wenn sie festgelegt ist, kommen nur die gebündelten Skills in der Liste infrage. Verwaltete Skills sowie Skills auf Agenten- und Workspace-Ebene sind davon nicht betroffen.
Einträge pro Skill (skills.entries)
Schlüssel unter entries entsprechen standardmäßig der name des Skills. Wenn ein Skill
metadata.openclaw.skillKey definiert, verwenden Sie stattdessen diesen Schlüssel. Setzen Sie Namen mit Bindestrichen
in Anführungszeichen (JSON5 erlaubt Schlüssel in Anführungszeichen).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk
.enabled" type="boolean">
false deaktiviert den Skill, selbst wenn er gebündelt oder installiert ist. Der
gebündelte Skill coding-agent muss explizit aktiviert werden — setzen Sie ihn auf true und stellen Sie sicher, dass
claude, codex, opencode oder eine andere unterstützte CLI installiert und
authentifiziert ist.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk
.apiKey" type='string | { source, provider, id }'>
Komfortfeld für Skills, die metadata.openclaw.primaryEnv deklarieren.
Unterstützt eine Klartextzeichenfolge oder eine SecretRef: { source: "env", provider: "default", id: "VAR_NAME" }.
"skills.entries.<key�����r�"skills.entries.<key�w₫��ܩAgenten-Positivlisten (agents)
Verwenden Sie die Agentenkonfiguration, wenn dieselben Skill-Stammverzeichnisse für Maschine und Workspace, aber für jeden Agenten eine andere sichtbare Skill-Menge verwendet werden soll.
{ 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 ], },}agents.defaults.skillsstring[]Gemeinsame Basis-Positivliste, die von Agenten übernommen wird, bei denen
agents.entries.*.skills fehlt. Lassen Sie sie vollständig weg, damit Skills standardmäßig
nicht eingeschränkt werden.
agents.entries.*.skillsstring[]Explizite endgültige Skill-Menge für diesen Agenten. Explizite Listen ersetzen
übernommene Standardwerte — sie werden nicht zusammengeführt. Setzen Sie sie auf [], um für
diesen Agenten keine Skills bereitzustellen.
Workshop (skills.workshop)
skills.workshop.autonomous.enabledbooleandefault: falseWenn true festgelegt ist, kann OpenClaw aus dauerhaften Korrekturen ausstehende Vorschläge erstellen
und erfolgreiche, umfangreiche abgeschlossene Arbeiten prüfen, nachdem das System
inaktiv geworden ist. Dadurch kann nach geeigneten Durchläufen ein Modellauslauf im Hintergrund
hinzukommen. Die vom Benutzer veranlasste Erstellung von Skills und /learn funktionieren weiterhin, wenn die Einstellung false ist.
Unter Selbstlernen finden Sie Informationen zu Eignung, Datenschutz, Kosten, Berechtigungen nur für Vorschläge und Fehlerbehebung.
skills.workshop.approvalPolicy"pending" | "auto"default: "auto"auto ermöglicht das vom Agenten initiierte Anwenden, Ablehnen oder unter Quarantäne stellen ohne eine
zusätzliche Genehmigungsaufforderung. pending erfordert die Genehmigung durch den Betreiber.
skills.workshop.allowSymlinkTargetWritesbooleandefault: falseErmöglicht Skill Workshop beim Anwenden, über Symlinks von Workspace-Skills zu schreiben, deren
tatsächliches Ziel bereits durch skills.load.allowSymlinkTargets als vertrauenswürdig eingestuft ist. Lassen Sie
diese Option deaktiviert, sofern das Anwenden generierter Vorschläge nicht diesen gemeinsam genutzten
Skill-Stammordner verändern soll.
skills.workshop.maxPendingnumberdefault: 50Maximale Anzahl ausstehender und unter Quarantäne gestellter Vorschläge, die pro Workspace aufbewahrt werden (zulässiger Bereich: 1-200).
skills.workshop.maxSkillBytesnumberdefault: 40000Maximale Größe des Vorschlagstexts in Byte (zulässiger Bereich: 1024-200000). Vorschlagsbeschreibungen sind separat fest auf 160 Byte begrenzt, da sie in der Erkennungs- und Listenausgabe erscheinen.
Unter Skill Workshop finden Sie Informationen zum Lebenszyklus von Vorschlägen, zu CLI- Befehlen, Parametern der Agentenwerkzeuge und Gateway-Methoden, die von dieser Konfiguration gesteuert werden.
Über Symlinks eingebundene Skill-Stammordner
Standardmäßig sind Workspace-, Projektagenten-, Zusatzverzeichnis- und gebündelte Skill-Stammordner
Begrenzungsgrenzen. Ein über Symlink eingebundener Skill-Ordner unter <workspace>/skills,
der auf ein Ziel außerhalb des Stammordners verweist, wird mit einer Protokollmeldung übersprungen.
Um ein beabsichtigtes Symlink-Layout zuzulassen, deklarieren Sie das vertrauenswürdige Ziel:
{ skills: { load: { extraDirs: ["~/Projects/manager/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], }, },}Mit dieser Konfiguration wird <workspace>/skills/manager -> ~/Projects/manager/skills
nach der Realpath-Auflösung akzeptiert. extraDirs durchsucht das benachbarte Repository
direkt; allowSymlinkTargets behält den über Symlink eingebundenen Pfad für bestehende
Layouts bei.
Beim Anwenden schreibt Skill Workshop standardmäßig nicht über diese Symlinks. Damit Workshop beim Anwenden Skills unter bereits vertrauenswürdigen Symlink-Zielen verändern kann, aktivieren Sie dies separat:
{ skills: { load: { allowSymlinkTargets: ["~/Projects/manager/skills"], }, workshop: { allowSymlinkTargetWrites: true, }, },}Verwaltete ~/.openclaw/skills- und persönliche ~/.agents/skills-Verzeichnisse
akzeptieren Symlinks auf Skill-Verzeichnisse bereits uneingeschränkt (die Begrenzung von
SKILL.md pro Skill gilt weiterhin) — allowSymlinkTargets wird nur
für Workspace-, Zusatzverzeichnis- und Projektagenten-Stammordner (<workspace>/.agents/skills)
benötigt.
Skills in Sandboxes und Umgebungsvariablen
Übergeben Sie Geheimnisse wie folgt an eine Docker-Sandbox:
{ agents: { defaults: { sandbox: { docker: { env: { GEMINI_API_KEY: "your-key-here" }, }, }, }, },}Erinnerung an die Ladereihenfolge
workspace/skills (höchste Priorität)workspace/.agents/skills~/.agents/skills~/.openclaw/skillsgebündelte Skillsskills.load.extraDirs (niedrigste Priorität)Änderungen an Skills und Konfiguration werden in der nächsten neuen Sitzung wirksam, wenn die Überwachung aktiviert ist, oder beim nächsten Agentendurchlauf, wenn die Überwachung eine Änderung erkennt.
Verwandte Themen
Was Skills sind, Ladereihenfolge, Zugriffssteuerung und SKILL.md-Format.
Erstellung benutzerdefinierter Workspace-Skills.
Vorschlagswarteschlange für vom Agenten entworfene Skills.
Konservative, freiwillig aktivierte Vorschläge aus abgeschlossenen Arbeiten.
Nativer Katalog von Slash-Befehlen und Chat-Direktiven.