Skills
Skills-configuratie
De meeste Skills-configuratie staat onder skills in
~/.openclaw/openclaw.json. Agentspecifieke zichtbaarheid staat onder
agents.defaults.skills en 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[]Aanvullende Skill-mappen om te scannen, met de laagste prioriteit (onder
gebundelde Skills en Plugin-Skills). Paden worden uitgebreid met ondersteuning voor ~.
skills.load.allowSymlinkTargetsstring[]Vertrouwde werkelijke doelmappen waarnaar Skill-mappen met symbolische koppelingen mogen
verwijzen, zelfs wanneer de symbolische koppeling buiten de geconfigureerde hoofdmap staat. Gebruik dit voor
opzettelijke indelingen met naastgelegen repository's, zoals
<workspace>/skills/manager -> ~/Projects/manager/skills. Houd deze lijst
beperkt — verwijs niet naar brede hoofdmappen zoals ~ of ~/Projects.
skills.load.watchbooleandefault: trueBewaak Skill-mappen en vernieuw de Skills-momentopname wanneer SKILL.md-bestanden
veranderen. Dit omvat geneste bestanden onder gegroepeerde Skill-hoofdmappen.
Installatie (skills.install)
skills.install.preferBrewbooleandefault: trueGeef de voorkeur aan Homebrew-installatieprogramma's wanneer brew beschikbaar is.
skills.install.nodeManager"npm" | "pnpm" | "yarn" | "bun"default: "npm"Voorkeur voor de Node-pakketbeheerder bij Skill-installaties. Dit is alleen van invloed op Skill-
installaties; de OpenClaw-CLI en Gateway-runtime vereisen Node omdat de
canonieke statusopslag node:sqlite gebruikt. openclaw setup --node-manager en
openclaw onboard --node-manager accepteren npm, pnpm of bun; stel
"yarn" rechtstreeks in de configuratie in voor Skill-installaties met Yarn.
skills.install.allowUploadedArchivesbooleandefault: falseSta vertrouwde operator.admin-Gateway-clients toe om privé-ziparchieven te installeren
die via skills.upload.* zijn klaargezet. Voor normale ClawHub-installaties is
deze instelling niet nodig.
Installatiebeleid voor operators (security.installPolicy)
Gebruik security.installPolicy wanneer operators een vertrouwde lokale opdracht nodig hebben om
installaties van Skills en Plugins goed te keuren of te blokkeren met hostspecifiek beleid. Het
beleid wordt uitgevoerd nadat OpenClaw bronmateriaal heeft klaargezet en voordat de installatie
of update doorgaat. Het is van toepassing op ClawHub-Skills, geüploade Skills, Git-/lokale
Skills, installatieprogramma's voor Skill-afhankelijkheden en installatie-/updatebronnen van Plugins.
{ security: { installPolicy: { enabled: true, // Laat targets weg om elk ondersteund doel te omvatten. 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: falseSchakelt installatiebeleid in dat door de operator wordt beheerd. Wanneer dit is ingeschakeld zonder een geldige
exec-opdracht, worden installaties standaard geblokkeerd.
security.installPolicy.targets("skill" | "plugin")[]Optioneel doelfilter. Wanneer dit wordt weggelaten, geldt het beleid voor elk ondersteund doel, zodat nieuwe installaties niet onverwacht standaard worden toegestaan.
security.installPolicy.exec.commandstringAbsoluut pad naar het vertrouwde uitvoerbare beleidsbestand. OpenClaw voert dit zonder een shell uit en valideert het pad vóór gebruik.
security.installPolicy.exec.argsstring[]Statische argumenten die na command worden doorgegeven.
security.installPolicy.exec.timeoutMsnumberdefault: 10000Maximale totale uitvoeringstijd voor één beleidsbeslissing.
security.installPolicy.exec.noOutputTimeoutMsnumberdefault: timeoutMsMaximale tijd zonder uitvoer naar stdout of stderr voordat het beleid standaard blokkeert.
security.installPolicy.exec.maxOutputBytesnumberdefault: 1048576Maximaal gecombineerd aantal bytes van stdout en stderr dat van het beleidsproces wordt geaccepteerd.
security.installPolicy.exec.env"Record<string,security.installPolicy.exec.passEnvstring[]Namen van omgevingsvariabelen die vanuit het OpenClaw-proces naar het beleidsproces worden gekopieerd. Alleen benoemde variabelen worden doorgegeven.
security.installPolicy.exec.trustedDirsstring[]Optionele toelatingslijst van mappen die het uitvoerbare beleidsbestand mogen bevatten.
security.installPolicy.exec.allowInsecurePathbooleandefault: falseOmzeilt controles op eigendom en machtigingen van het opdrachtpad. Gebruik dit alleen wanneer het pad door een ander mechanisme wordt beschermd.
security.installPolicy.exec.allowSymlinkCommandbooleandefault: falseStaat toe dat het geconfigureerde opdrachtpad een symbolische koppeling is. Het herleide doel moet nog steeds aan de overige padcontroles voldoen. Scriptargumenten voor interpreters moeten directe reguliere bestanden zijn, geen symbolische koppelingen.
Het beleid ontvangt één JSON-object op stdin met protocolVersion: 1,
openclawVersion, targetType, targetName, sourcePath, sourcePathKind,
optionele gestructureerde source, gestructureerde origin en request. Het moet
één JSON-object naar stdout schrijven: { "protocolVersion": 1, "decision": "allow" }
of { "protocolVersion": 1, "decision": "block", "reason": "..." }. Een afsluitcode die niet nul is,
een time-out, ongeldige JSON, ontbrekende velden of niet-ondersteunde protocolversies
leiden standaard tot blokkering.
OpenClaw voert tijdens de normale opstart van de Gateway geen installatiebeleid uit.
Installaties en updates worden standaard geblokkeerd wanneer het beleid is ingeschakeld maar niet beschikbaar is.
openclaw doctor voert statische validatie uit; openclaw doctor --deep
voert een synthetische installatieproef uit met de geconfigureerde opdracht.
Bij bulksgewijze updates wordt het beleid per doel toegepast: een geblokkeerde update van een Skill of Plugin mislukt voor dat doel zonder het beleid uit te schakelen of latere doelen in de batch over te slaan.
Voorbeeld van 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" }}Minimale beleidsopdracht:
#!/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: "lokale Plugin-paden zijn niet goedgekeurd op deze host", }), ); return; } process.stdout.write(JSON.stringify({ protocolVersion: 1, decision: "allow" }));});Toelatingslijst voor gebundelde Skills
skills.allowBundledstring[]Optionele toelatingslijst, uitsluitend voor gebundelde Skills. Wanneer deze is ingesteld, komen alleen gebundelde Skills in de lijst in aanmerking. Beheerde Skills, Skills op agentniveau en Skills in de werkruimte worden niet beïnvloed.
Vermeldingen per Skill (skills.entries)
Sleutels onder entries komen standaard overeen met de Skill-name. Als een Skill
metadata.openclaw.skillKey definieert, gebruik je in plaats daarvan die sleutel. Zet namen met koppeltekens
tussen aanhalingstekens (JSON5 staat sleutels tussen aanhalingstekens toe).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk
.enabled" type="boolean">
false schakelt de Skill uit, zelfs wanneer deze gebundeld of geïnstalleerd is. De
gebundelde Skill coding-agent vereist expliciete inschakeling — stel deze in op true en zorg dat een van
claude, codex, opencode of een andere ondersteunde CLI is geïnstalleerd en
geverifieerd.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InNraWxscy5lbnRyaWVzLjxrZXk
.apiKey" type='string | { source, provider, id }'>
Gemaksveld voor Skills die metadata.openclaw.primaryEnv declareren.
Ondersteunt een tekenreeks met platte tekst of een SecretRef: { source: "env", provider: "default", id: "VAR_NAME" }.
"skills.entries.<key�����r�"skills.entries.<key�w₫��ܩToelatingslijsten voor agents (agents)
Gebruik agentconfiguratie wanneer je dezelfde hoofdlocaties voor Skills op de machine/in de werkruimte wilt gebruiken, maar per agent een andere zichtbare verzameling Skills wilt instellen.
{ agents: { defaults: { skills: ["github", "weather"], // gedeelde basis }, list: [ { id: "writer" }, // neemt github, weather over { id: "docs", skills: ["docs-search"] }, // vervangt de standaardwaarden volledig { id: "locked-down", skills: [] }, // geen Skills ], },}agents.defaults.skillsstring[]Gedeelde basistoelatingslijst die wordt overgenomen door agents die
agents.entries.*.skills weglaten. Laat deze volledig weg om Skills standaard
onbeperkt te laten.
agents.entries.*.skillsstring[]Expliciete definitieve verzameling Skills voor die agent. Expliciete lijsten vervangen
overgenomen standaardwaarden — ze worden niet samengevoegd. Stel dit in op [] om voor
die agent geen Skills beschikbaar te maken.
Workshop (skills.workshop)
skills.workshop.autonomous.enabledbooleandefault: falseWanneer true, kan OpenClaw openstaande voorstellen maken op basis van duurzame correcties
en kan het geslaagd, substantieel voltooid werk beoordelen nadat het systeem
inactief is geworden. Dit kan na geschikte beurten een modeluitvoering op de achtergrond toevoegen. Door de gebruiker gestarte
aanmaak van skills en /learn blijven werken wanneer de instelling false is.
Zie Zelflerend vermogen voor geschiktheid, privacy, kosten, uitsluitend-voorstellenmachtigingen en probleemoplossing.
skills.workshop.approvalPolicy"pending" | "auto"default: "auto"auto staat door de agent geïnitieerd toepassen, afwijzen of in quarantaine plaatsen toe zonder een
extra goedkeuringsprompt. pending vereist goedkeuring van de operator.
skills.workshop.allowSymlinkTargetWritesbooleandefault: falseSta toe dat toepassen via Skill Workshop via symlinks naar workspace-skills schrijft waarvan
het echte doel al wordt vertrouwd door skills.load.allowSymlinkTargets. Laat
dit uitgeschakeld, tenzij het toepassen van gegenereerde voorstellen die gedeelde
skill-root moet wijzigen.
skills.workshop.maxPendingnumberdefault: 50Maximumaantal openstaande en in quarantaine geplaatste voorstellen dat per workspace wordt bewaard (toegestaan bereik: 1-200).
skills.workshop.maxSkillBytesnumberdefault: 40000Maximale grootte van de voorsteltekst in bytes (toegestaan bereik: 1024-200000). Beschrijvingen van voorstellen hebben afzonderlijk een harde limiet van 160 bytes, omdat ze worden weergegeven in detectie- en lijstuitvoer.
Zie Skill Workshop voor de levenscyclus van voorstellen, CLI- opdrachten, parameters van agenttools en Gateway-methoden die door deze configuratie worden beheerd.
Skill-roots met symlinks
Standaard vormen de skill-roots voor workspace, projectagent, extra directory en gebundelde skills
insluitingsgrenzen. Een skillmap met een symlink onder <workspace>/skills
die naar buiten de root verwijst, wordt overgeslagen met een logbericht.
Declareer het vertrouwde doel om een opzettelijke symlinkindeling toe te staan:
{ skills: { load: { extraDirs: ["~/Projects/manager/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], }, },}Met deze configuratie wordt <workspace>/skills/manager -> ~/Projects/manager/skills
geaccepteerd na realpath-resolutie. extraDirs scant de aangrenzende repository
rechtstreeks; allowSymlinkTargets behoudt het pad met de symlink voor bestaande
indelingen.
Bij toepassen schrijft Skill Workshop standaard niet via deze symlinks. Om Workshop bij toepassen skills onder reeds vertrouwde symlinkdoelen te laten wijzigen, moet je dit afzonderlijk inschakelen:
{ skills: { load: { allowSymlinkTargets: ["~/Projects/manager/skills"], }, workshop: { allowSymlinkTargetWrites: true, }, },}Beheerde ~/.openclaw/skills- en persoonlijke ~/.agents/skills-directory's
accepteren symlinks naar skilldirectory's al onvoorwaardelijk (insluiting per skill via
SKILL.md blijft van toepassing) — allowSymlinkTargets is alleen nodig
voor roots van workspace, extra directory en projectagent (<workspace>/.agents/skills).
Skills in een sandbox en omgevingsvariabelen
Geef geheimen als volgt door aan een Docker-sandbox:
{ agents: { defaults: { sandbox: { docker: { env: { GEMINI_API_KEY: "your-key-here" }, }, }, }, },}Herinnering aan de laadvolgorde
workspace/skills (hoogste)workspace/.agents/skills~/.agents/skills~/.openclaw/skillsgebundelde skillsskills.load.extraDirs (laagste)Wijzigingen aan skills en configuratie worden van kracht in de volgende nieuwe sessie wanneer de watcher is ingeschakeld, of tijdens de volgende agentbeurt wanneer de watcher een wijziging detecteert.
Gerelateerd
Wat skills zijn, de laadvolgorde, toegangscontrole en de SKILL.md-indeling.
Aangepaste workspace-skills schrijven.
Voorstelwachtrij voor door agents opgestelde skills.
Voorzichtige, expliciet ingeschakelde voorstellen op basis van voltooid werk.
Catalogus met systeemeigen slash-opdrachten en chatdirectieven.