Skills
Skills
Skills zijn Markdown-instructiebestanden die de agent leren hoe en wanneer deze
tools moet gebruiken. Elke Skill bevindt zich in een map met een SKILL.md-bestand met YAML-
frontmatter en een Markdown-hoofdtekst. OpenClaw laadt gebundelde Skills plus eventuele lokale
overschrijvingen en filtert ze tijdens het laden op basis van de omgeving, configuratie en
aanwezige binaire bestanden.
Bouw en test een aangepaste Skill vanaf nul.
Beoordeel en keur door de agent opgestelde Skill-voorstellen goed.
Volledig configuratieschema voor skills.* en toelatingslijsten voor agents.
Bekijk en installeer Skills uit de community.
Laadvolgorde
OpenClaw laadt uit deze bronnen, met de hoogste prioriteit eerst. Wanneer dezelfde Skill-naam op meerdere plaatsen voorkomt, heeft de bron met de hoogste prioriteit voorrang.
| Prioriteit | Bron | Pad |
|---|---|---|
| 1 — hoogste | Skills in de werkruimte | <workspace>/skills |
| 2 | Projectagentskills | <workspace>/.agents/skills |
| 3 | Persoonlijke agentskills | ~/.agents/skills |
| 4 | Beheerde / lokale Skills | ~/.openclaw/skills |
| 5 | Gebundelde Skills | meegeleverd met de installatie |
| 6 — laagste | Extra mappen | skills.load.extraDirs + Plugin-Skills |
Hoofdmappen voor Skills ondersteunen gegroepeerde indelingen. OpenClaw ontdekt een Skill wanneer
SKILL.md ergens onder een geconfigureerde hoofdmap staat (tot maximaal 6 niveaus diep):
<workspace>/skills/research/SKILL.md ✓ gevonden als "research"<workspace>/skills/personal/research/SKILL.md ✓ ook gevonden als "research"Het mappad dient alleen voor ordening. De naam en slash-opdracht van de Skill
komen uit het frontmatterveld name (of uit de mapnaam wanneer name
ontbreekt). Toelatingslijsten voor agents (hieronder) komen eveneens overeen op basis van deze name.
Door een Node gehoste Skills
Een verbonden headless Node kan Skills publiceren die in de actieve OpenClaw-
Skills-map zijn geïnstalleerd (standaard ~/.openclaw/skills; overschrijvingen via de profielomgeving
zijn van toepassing). Ze verschijnen in de normale lijst met agentskills zolang de Node verbonden is
en verdwijnen wanneer de verbinding wordt verbroken. Bij een naamconflict behoudt een lokale Skill of Gateway-Skill
zijn naam; de Node-Skill krijgt een deterministische naam met een Node-voorvoegsel.
Voor door een Node gehoste v1-Skills moet de mapnaam overeenkomen met het frontmatterveld name
van de Skill.
De Skill-vermelding bevat de locator van de Node. De bestanden, relatieve verwijzingen en
binaire bestanden bevinden zich op de Node; laad de Skill daarom en voer deze uit met
exec host=node node=<node-id>. Start de Node-host opnieuw nadat je de Skill-
bestanden hebt gewijzigd. Zie Nodes voor koppeling en uitschakelopties.
Skills per agent versus gedeelde Skills
In configuraties met meerdere agents heeft elke agent een eigen werkruimte. Gebruik het pad dat overeenkomt met de gewenste zichtbaarheid:
| Bereik | Pad | Zichtbaar voor |
|---|---|---|
| Per agent | <workspace>/skills |
Alleen die agent |
| Projectagent | <workspace>/.agents/skills |
Alleen de agent van die werkruimte |
| Persoonlijke agent | ~/.agents/skills |
Alle agents op deze machine |
| Gedeeld beheerd | ~/.openclaw/skills |
Alle agents op deze machine |
| Extra mappen | skills.load.extraDirs |
Alle agents op deze machine |
Toelatingslijsten voor agents
De locatie van een Skill (prioriteit) en de zichtbaarheid van een Skill (welke agent deze kan gebruiken) zijn afzonderlijke instellingen. Gebruik toelatingslijsten om te beperken welke Skills een agent ziet, ongeacht waar ze vandaan worden geladen.
{ agents: { defaults: { skills: ["github", "weather"], // gedeelde basisset }, list: [ { id: "writer" }, // neemt github en weather over { id: "docs", skills: ["docs-search"] }, // vervangt de standaardwaarden volledig { id: "locked-down", skills: [] }, // geen Skills ], },}Regels voor toelatingslijsten
- Laat
agents.defaults.skillsweg om standaard geen beperkingen voor Skills toe te passen. - Laat
agents.list[].skillsweg omagents.defaults.skillsover te nemen. - Stel
agents.list[].skills: []in om geen Skills beschikbaar te maken voor die agent. - Een niet-lege lijst
agents.list[].skillsis de definitieve verzameling — deze wordt niet samengevoegd met de standaardwaarden. - De effectieve toelatingslijst geldt voor het opbouwen van prompts, het ontdekken van slash-opdrachten, sandbox-synchronisatie en snapshots van Skills.
- Dit is geen autorisatiegrens voor de hostshell. Als dezelfde agent
execkan gebruiken, beperk die shell dan afzonderlijk met sandboxing, isolatie per OS-gebruiker, weigerings-/toelatingslijsten voor uitvoering en inloggegevens per resource.
Plugins en Skills
Plugins kunnen hun eigen Skills meeleveren door skills-mappen op te nemen in
openclaw.plugin.json (paden relatief ten opzichte van de hoofdmap van de Plugin). Plugin-Skills worden geladen
wanneer de Plugin is ingeschakeld — de browser-Plugin levert bijvoorbeeld een
Skill browser-automation voor browserbesturing in meerdere stappen.
Mappen met Plugin-Skills worden samengevoegd op hetzelfde lage prioriteitsniveau als
skills.load.extraDirs, zodat een gebundelde, beheerde, agent- of werkruimte-Skill
met dezelfde naam voorrang krijgt. Bepaal of een Plugin-Skill zelf in aanmerking komt via
metadata.openclaw.requires in de frontmatter, net als bij elke andere Skill.
Zie Plugins en Tools voor het volledige Pluginsysteem.
Skill Workshop
Skill Workshop is een wachtrij met voorstellen tussen de agent
en je actieve Skill-bestanden. Wanneer de agent herbruikbaar werk herkent, stelt deze een
voorstel op in plaats van rechtstreeks naar SKILL.md te schrijven. Je beoordeelt en keurt
het voorstel goed voordat er iets verandert.
openclaw skills workshop listopenclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>Zie Skill Workshop voor de volledige levenscyclus, CLI- referentie en configuratie.
Installeren vanuit ClawHub
ClawHub is het openbare register voor Skills. Gebruik
openclaw skills-opdrachten voor installatie en updates, of de clawhub-CLI voor
publicatie en synchronisatie.
| Actie | Opdracht |
|---|---|
| Een Skill in de werkruimte installeren | openclaw skills install @owner/<slug> |
| Vanuit een Git-repository installeren | openclaw skills install git:owner/repo@ref |
| Een lokale Skill-map installeren | openclaw skills install ./path/to/skill --as my-tool |
| Voor alle lokale agents installeren | openclaw skills install @owner/<slug> --global |
| Alle Skills in de werkruimte bijwerken | openclaw skills update --all |
| Een gedeelde beheerde Skill bijwerken | openclaw skills update @owner/<slug> --global |
| Alle gedeelde beheerde Skills bijwerken | openclaw skills update --all --global |
| Het vertrouwensprofiel van een Skill verifiëren | openclaw skills verify @owner/<slug> |
| De gegenereerde Skill Card weergeven | openclaw skills verify @owner/<slug> --card |
| Publiceren / synchroniseren via ClawHub-CLI | clawhub sync --all |
Installatiedetails
openclaw skills install installeert standaard in de map skills/ van de actieve werkruimte.
Voeg --global toe om te installeren in de gedeelde map
~/.openclaw/skills, die zichtbaar is voor alle lokale agents tenzij toelatingslijsten voor agents
dit beperken.
Bij installaties vanuit Git en lokale bronnen wordt SKILL.md in de hoofdmap van de bron verwacht. De slug wordt
overgenomen uit name in de frontmatter van SKILL.md wanneer deze geldig is en valt anders terug op de
naam van de map of repository. Gebruik --as <slug> om dit te overschrijven.
openclaw skills update houdt alleen ClawHub-installaties bij — installeer Git- of
lokale bronnen opnieuw om ze te vernieuwen.
Verificatie en beveiligingsscans
openclaw skills verify @owner/<slug> vraagt ClawHub om het
vertrouwensprofiel clawhub.skill.verify.v1 van de Skill. Geïnstalleerde ClawHub-Skills worden geverifieerd
aan de hand van de versie en het register die in .clawhub/origin.json zijn vastgelegd.
Kale slugs blijven geaccepteerd voor bestaande geïnstalleerde of eenduidige Skills, maar
verwijzingen met een eigenaar voorkomen onduidelijkheid over de uitgever.
ClawHub-pagina's voor Skills tonen vóór installatie de status van de meest recente beveiligingsscan,
met detailpagina's voor VirusTotal, ClawScan en statische analyse. De
opdracht eindigt met een niet-nulcode wanneer ClawHub de verificatie als mislukt markeert. Uitgevers
kunnen fout-positieve resultaten herstellen via het ClawHub-dashboard of
clawhub skill rescan @owner/<slug>.
Installaties uit privéarchieven
Gateway-clients die levering buiten ClawHub nodig hebben, kunnen een ziparchief met een Skill klaarzetten
met skills.upload.begin, skills.upload.chunk en skills.upload.commit,
en dit vervolgens installeren met skills.install({ source: "upload", ... }). Dit pad is
standaard uitgeschakeld en vereist skills.install.allowUploadedArchives: true in
openclaw.json. Voor normale ClawHub-installaties is die instelling nooit nodig.
Beveiliging
Padbeperking
Bij het ontdekken van Skills in werkruimten, projectagents en extra mappen worden alleen hoofd-
mappen voor Skills geaccepteerd waarvan het opgeloste realpath binnen de geconfigureerde hoofdmap blijft, tenzij
skills.load.allowSymlinkTargets een doelhoofdmap expliciet vertrouwt.
Skill Workshop schrijft alleen via die vertrouwde doelen wanneer
skills.workshop.allowSymlinkTargetWrites is ingeschakeld.
Beheerde ~/.openclaw/skills en persoonlijke ~/.agents/skills mogen
via symbolische koppelingen verbonden Skill-mappen bevatten, maar het realpath van elk SKILL.md moet nog steeds
binnen de opgeloste Skill-map blijven.
Installatiebeleid voor operators
Configureer security.installPolicy om een vertrouwde lokale beleidsopdracht uit te voeren
voordat installaties van Skills doorgaan. Het beleid ontvangt metadata en het klaargezette
bronpad, is van toepassing op ClawHub-, upload-, Git-, lokale, update- en
afhankelijkheidsinstallatiepaden en weigert standaard wanneer de opdracht geen
geldige beslissing kan retourneren.
Bereik van geheiminjectie
skills.entries.*.env en skills.entries.*.apiKey injecteren geheimen alleen voor die agentbeurt in het
hostproces — niet in de sandbox. Houd
geheimen buiten prompts en logboeken.
Zie Beveiliging voor het bredere dreigingsmodel en beveiligingschecklists.
Indeling van SKILL.md
Elke Skill heeft minimaal een name en description in de frontmatter nodig:
---name: image-labdescription: Afbeeldingen genereren of bewerken via een door een provider ondersteunde afbeeldingsworkflow--- Wanneer de gebruiker vraagt om een afbeelding te genereren, gebruik je de tool `image_generate`...Optionele frontmatter-sleutels
homepagestringURL die als "Website" wordt weergegeven in de macOS-interface voor Skills. Wordt ook
ondersteund via metadata.openclaw.homepage.
user-invocablebooleandefault: trueAls dit true is, wordt de skill beschikbaar gesteld als een door de gebruiker
aanroepbare slash-opdracht.
disable-model-invocationbooleandefault: falseAls dit true is, houdt OpenClaw de instructies van de skill buiten de normale
prompt van de agent. De skill blijft beschikbaar als slash-opdracht wanneer
user-invocable ook true is.
command-dispatch"tool"Wanneer dit is ingesteld op tool, omzeilt de slash-opdracht het model en
wordt deze rechtstreeks naar een geregistreerde tool gestuurd.
command-toolstringNaam van de tool die moet worden aangeroepen wanneer command-dispatch: tool
is ingesteld.
command-arg-mode"raw"default: rawVoor verzending naar een tool wordt de onbewerkte argumenttekenreeks zonder
verwerking door de kern doorgestuurd naar de tool. De tool ontvangt
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Toelatingscriteria
OpenClaw filtert skills tijdens het laden met metadata.openclaw (een
JSON5-object dat in de frontmatter is opgenomen; zie de opmerking over parseren
hierboven). Een skill zonder metadata.openclaw-blok komt altijd in aanmerking,
tenzij deze expliciet is uitgeschakeld.
---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", }, }---alwaysbooleanAls dit true is, wordt de skill altijd opgenomen en worden alle andere
toelatingscriteria overgeslagen.
emojistringOptionele emoji die wordt weergegeven in de macOS-interface voor Skills.
homepagestringOptionele URL die als "Website" wordt weergegeven in de macOS-interface voor Skills.
os("darwin" | "linux" | "win32")[]Platformfilter. Wanneer dit is ingesteld, komt de skill alleen in aanmerking op een vermeld besturingssysteem.
requires.binsstring[]Elk binair bestand moet aanwezig zijn in PATH.
requires.anyBinsstring[]Ten minste één binair bestand moet aanwezig zijn in PATH.
requires.envstring[]Elke omgevingsvariabele moet in het proces aanwezig zijn of via de configuratie worden aangeleverd.
requires.configstring[]Elk openclaw.json-pad moet een waarheidswaarde hebben.
primaryEnvstringNaam van de omgevingsvariabele die is gekoppeld aan
skills.entries.<name>.apiKey.
installobject[]Optionele installatiespecificaties die door de macOS-interface voor Skills worden gebruikt (brew / node / go / uv / download).
Installatiespecificaties
Installatiespecificaties vertellen de macOS-interface voor Skills hoe een afhankelijkheid moet worden geïnstalleerd:
---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)", }, ], }, }---Regels voor installatieselectie
- Wanneer meerdere installatieprogramma's zijn vermeld, kiest de Gateway één voorkeursoptie (brew indien beschikbaar, anders node).
- Als alle installatieprogramma's
downloadzijn, vermeldt OpenClaw elk item, zodat u alle beschikbare artefacten kunt zien. - Specificaties kunnen
os: ["darwin"|"linux"|"win32"]bevatten om op platform te filteren. - Node-installaties respecteren
skills.install.nodeManagerinopenclaw.json(standaard: npm; opties: npm / pnpm / yarn / bun). Dit is alleen van invloed op de installatie van skills; de runtime van de Gateway moet nog steeds Node zijn. - Installatievoorkeur van de Gateway: Homebrew → uv → geconfigureerde nodebeheerder → go → download.
Details per installatieprogramma
- Homebrew: OpenClaw installeert Homebrew niet automatisch en vertaalt
brew-formules niet naar opdrachten voor systeempakketten. In
Linux-containers zonder
brewworden installatieprogramma's die alleen brew ondersteunen verborgen; gebruik een aangepaste image of installeer de afhankelijkheid handmatig. - Go: OpenClaw vereist Go 1.21 of nieuwer voor automatische installatie
van skills. Als
goontbreekt en Homebrew beschikbaar is, installeert OpenClaw eerst Go via Homebrew; op Linux zonder Homebrew kan het in plaats daarvanapt-getals root of viasudozonder wachtwoord gebruiken wanneer de vernieuwde kandidaatgolang-goaan de minimumversie voldoet. De daadwerkelijkego installvoor de afhankelijkheid gebruikt altijd een speciale door OpenClaw beheerde map voor binaire bestanden (debin-map van Homebrew bij een nieuwe installatie, anders~/.local/bin) in plaats van uw geconfigureerdeGOBIN— uw eigen omgevingsvariabelenGOBIN,GOPATHenGOTOOLCHAINworden gelezen, maar nooit overschreven. - Download:
url(verplicht),archive(tar.gz|tar.bz2|zip),extract(standaard: automatisch wanneer een archief wordt gedetecteerd),stripComponents,targetDir(standaard:~/.openclaw/tools/<skillKey>).
Opmerkingen over sandboxing
requires.bins wordt tijdens het laden van de skill op de host
gecontroleerd. Als een agent in een sandbox wordt uitgevoerd, moet het
binaire bestand ook in de container aanwezig zijn. Installeer het via
agents.defaults.sandbox.docker.setupCommand of een aangepaste image.
setupCommand wordt eenmaal na het maken van de container uitgevoerd en
vereist uitgaand netwerkverkeer, een beschrijfbaar rootbestandssysteem en
een rootgebruiker in de sandbox.
Configuratieoverschrijvingen
Schakel meegeleverde of beheerde skills in of uit en configureer ze onder
skills.entries in ~/.openclaw/openclaw.json:
{ 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 schakelt de skill uit, zelfs wanneer deze is meegeleverd of
geïnstalleerd. De meegeleverde skill coding-agent is optioneel — stel
skills.entries.coding-agent.enabled: true in en zorg ervoor dat claude,
codex, opencode of een andere ondersteunde CLI is geïnstalleerd en
geauthenticeerd.
apiKeystring | { source, provider, id }Gemaksveld voor skills die metadata.openclaw.primaryEnv declareren.
Ondersteunt een tekenreeks met platte tekst of een SecretRef-object.
env"Record<string,configobjectOptionele verzameling voor aangepaste configuratievelden per skill.
allowBundledstring[]Optionele toelatingslijst, uitsluitend voor meegeleverde skills. Wanneer deze is ingesteld, komen alleen meegeleverde skills in de lijst in aanmerking. Beheerde skills en skills uit de werkruimte worden niet beïnvloed.
Injectie van omgevingsvariabelen
Wanneer een agentuitvoering begint, voert OpenClaw het volgende uit:
Leest metadata van skills
OpenClaw bepaalt de effectieve lijst met skills voor de agent en past toelatingscriteria, toelatingslijsten en configuratieoverschrijvingen toe.
Injecteert omgevingsvariabelen en API-sleutels
skills.entries.<key>.env en skills.entries.<key>.apiKey worden voor de
duur van de uitvoering toegepast op process.env.
Bouwt de systeemprompt
In aanmerking komende skills worden samengevoegd tot een compact XML-blok en in de systeemprompt geïnjecteerd.
Herstelt de omgeving
Nadat de uitvoering is beëindigd, wordt de oorspronkelijke omgeving hersteld.
Voor de meegeleverde claude-cli-backend materialiseert OpenClaw dezelfde
momentopname van in aanmerking komende skills ook als een tijdelijke Claude
Code-plugin en geeft deze door via --plugin-dir. Andere CLI-backends gebruiken
alleen de promptcatalogus.
Momentopnamen en vernieuwen
OpenClaw maakt een momentopname van in aanmerking komende skills wanneer een sessie begint en hergebruikt die lijst voor alle volgende beurten in de sessie. Wijzigingen in skills of configuratie worden van kracht in de volgende nieuwe sessie.
Skills worden tijdens een sessie in twee gevallen vernieuwd:
- De bewaking van skills detecteert een wijziging in
SKILL.md. - Er maakt verbinding met een nieuwe in aanmerking komende externe node.
De vernieuwde lijst wordt bij de volgende agentbeurt gebruikt. Als de effectieve toelatingslijst van de agent verandert, vernieuwt OpenClaw de momentopname om de zichtbare skills daarmee in overeenstemming te houden.
Bewaking van Skills
OpenClaw bewaakt standaard de mappen met skills en werkt de momentopname bij
wanneer SKILL.md-bestanden veranderen. Configureer dit onder skills.load:
{ skills: { load: { extraDirs: ["~/Projects/agent-scripts/skills"], allowSymlinkTargets: ["~/Projects/manager/skills"], watch: true, // default watchDebounceMs: 250, // default }, },}Gebruik allowSymlinkTargets voor opzettelijke indelingen met symbolische
koppelingen waarbij een symbolische koppeling naar de hoofdmap van een skill
buiten de geconfigureerde hoofdmap verwijst, bijvoorbeeld
<workspace>/skills/manager -> ~/Projects/manager/skills.
Schakel skills.workshop.allowSymlinkTargetWrites alleen in wanneer Skill
Workshop voorstellen ook via die vertrouwde paden met symbolische
koppelingen moet toepassen.
Externe macOS-nodes (Linux-Gateway)
Als de Gateway op Linux draait, maar er een macOS-node is verbonden
waarop system.run is toegestaan, kan OpenClaw skills die alleen voor macOS
zijn bedoeld als geschikt beschouwen wanneer de vereiste binaire bestanden
op die node aanwezig zijn. De agent moet die skills uitvoeren via de tool
exec met host=node.
Offline nodes maken skills die alleen extern beschikbaar zijn niet zichtbaar. Als een node niet meer reageert op controles van binaire bestanden, wist OpenClaw de overeenkomsten uit de cache.
Impact op tokens
Wanneer skills in aanmerking komen, injecteert OpenClaw een compact XML-blok in de systeemprompt. De kosten zijn deterministisch en nemen lineair toe per skill:
- Basisoverhead (alleen wanneer 1 of meer skills in aanmerking komen): een
vast blok met inleidende tekst plus de wrapper
<available_skills>. - Per skill: circa 97 tekens + de lengtes van uw velden
name,descriptionenlocation. - XML-escaping zet
& < > " 'om in entiteiten, waardoor per voorkomen enkele tekens worden toegevoegd. - Bij circa 4 tekens per token geldt: 97 tekens ≈ 24 tokens per skill, vóór de lengtes van de velden.
Als het gerenderde blok het geconfigureerde promptbudget zou overschrijden
(skills.limits.maxSkillsPromptChars), behoudt OpenClaw eerst zoveel mogelijk
Skills-identiteiten (naam, locatie en versie) als in de compacte indeling zonder
beschrijvingen passen. Vervolgens gebruikt het het resterende budget voor
ingekorte beschrijvingen. Als er geen budget voor beschrijvingen overblijft,
worden beschrijvingen weggelaten. De prompt bevat een opmerking die verwijst
naar openclaw skills check wanneer compacte opmaak of het inkorten van de lijst
vereist is.
Houd beschrijvingen kort en informatief om de promptoverhead te minimaliseren.
Gerelateerd
Stapsgewijze handleiding voor het opstellen van een aangepaste Skill.
Wachtrij met voorstellen voor door agents opgestelde Skills.
Volledig skills.*-configuratieschema en toelatingslijsten voor agents.
Hoe slash-opdrachten voor Skills worden geregistreerd en gerouteerd.
Blader door Skills en publiceer ze in het openbare register.
Plugins kunnen Skills meeleveren naast de hulpmiddelen die ze documenteren.