Skills
Skills
Skills zijn Markdown-instructiebestanden die de agent leren hoe en wanneer
tools moeten worden gebruikt. Elke skill bevindt zich in een map met een SKILL.md-bestand met YAML-
frontmatter en een Markdown-body. OpenClaw laadt gebundelde skills plus eventuele lokale
overschrijvingen en filtert deze tijdens het laden op basis van de omgeving, configuratie en
aanwezigheid van binaire bestanden.
Bouw en test een aangepaste skill vanaf nul.
Beoordeel en keur door de agent opgestelde skillvoorstellen goed.
Volledig skills.*-configuratieschema en agenttoelatingslijsten.
Bekijk en installeer skills van de community.
Laadvolgorde
OpenClaw laadt uit deze bronnen, met de hoogste prioriteit eerst. Wanneer dezelfde skillnaam op meerdere plaatsen voorkomt, wint de bron met de hoogste prioriteit.
| Prioriteit | Bron | Pad |
|---|---|---|
| 1 — hoogste | Werkruimteskills | <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 + pluginskills |
Skillhoofdmappen ondersteunen gegroepeerde indelingen. OpenClaw ontdekt een skill wanneer
SKILL.md ergens onder een geconfigureerde hoofdmap voorkomt (tot 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 slashopdracht van de skill
komen uit het frontmatterveld name (of uit de mapnaam wanneer name
ontbreekt). Agenttoelatingslijsten (hieronder) vergelijken ook met deze name.
Door Node gehoste skills
Een verbonden headless Node kan skills publiceren die in de actieve
OpenClaw-skillsmap zijn geïnstalleerd (standaard ~/.openclaw/skills; overschrijvingen via
de profielomgeving zijn van toepassing). Ze verschijnen in de normale skillslijst van de agent zolang de Node
verbonden is en verdwijnen wanneer de verbinding wordt verbroken. Bij een naamconflict behoudt een lokale
of Gateway-skill zijn naam; de Node-skill krijgt een deterministische naam met een Node-voorvoegsel.
Voor door Node gehoste v1-skills moet de mapnaam overeenkomen met het frontmatterveld
name van de skill.
De skillvermelding bevat de Node-locator. 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 skillbestanden 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 |
Agenttoelatingslijsten
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 waaruit ze worden geladen.
{ agents: { defaults: { skills: ["github", "weather"], // gedeelde basisset }, list: [ { id: "writer" }, // neemt github, 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.entries.*.skillsweg omagents.defaults.skillsover te nemen. - Stel
agents.entries.*.skills: []in om voor die agent geen skills beschikbaar te maken. - Een niet-lege lijst
agents.entries.*.skillsis de definitieve set — deze wordt niet samengevoegd met de standaardwaarden. - De effectieve toelatingslijst geldt voor het opbouwen van prompts, het ontdekken van slashopdrachten, sandboxsynchronisatie en skillsnapshots.
- Dit is geen autorisatiegrens voor de hostshell. Als dezelfde agent
execkan gebruiken, beperk die shell dan afzonderlijk met sandboxing, isolatie per OS-gebruiker, uitvoeringsblokkeer-/toelatingslijsten en referenties 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). Pluginskills worden geladen
wanneer de plugin is ingeschakeld — de browserplugin levert bijvoorbeeld een
browser-automation-skill voor browserbesturing in meerdere stappen.
Mappen met pluginskills worden samengevoegd op hetzelfde lage prioriteitsniveau als
skills.load.extraDirs, waardoor een gelijknamige gebundelde, beheerde, agent- of werkruimteskill
deze overschrijft. Bepaal de geschiktheid van een pluginskill zelf 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 voor voorstellen tussen de agent
en je actieve skillbestanden. Wanneer de agent herbruikbaar werk herkent, stelt deze een
voorstel op in plaats van rechtstreeks naar SKILL.md te schrijven. Je beoordeelt het en keurt het 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 CLI clawhub 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 skillmap installeren | openclaw skills install ./path/to/skill --as my-tool |
| Voor alle lokale agents installeren | openclaw skills install @owner/<slug> --global |
| Alle werkruimteskills 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 |
| De vertrouwensgrenzen van een skill verifiëren | openclaw skills verify @owner/<slug> |
| De gegenereerde Skill Card afdrukken | 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 in de gedeelde map
~/.openclaw/skills te installeren, die zichtbaar is voor alle lokale agents tenzij
agenttoelatingslijsten dit beperken.
Bij Git- en lokale installaties wordt SKILL.md in de hoofdmap van de bron verwacht. De slug komt,
indien geldig, uit name in de SKILL.md-frontmatter en valt vervolgens terug op de
map- of repositorynaam. 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 de
clawhub.skill.verify.v1-vertrouwensgrenzen 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-skillpagina's tonen vóór de installatie de status van de nieuwste beveiligingsscan,
met detailpagina's voor VirusTotal, ClawScan en statische analyse. De
opdracht sluit af met een niet-nulstatus 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. Normale ClawHub-installaties hebben die instelling nooit nodig.
Beveiliging
Padbegrenzing
Bij het ontdekken van werkruimte-, projectagent- en extra-mapskills worden alleen
skillhoofdmappen geaccepteerd waarvan het opgeloste realpath binnen de geconfigureerde hoofdmap blijft, tenzij
skills.load.allowSymlinkTargets een doelhoofdmap expliciet vertrouwt.
Skill Workshop schrijft alleen via deze vertrouwde doelen wanneer
skills.workshop.allowSymlinkTargetWrites is ingeschakeld.
Beheerde ~/.openclaw/skills en persoonlijke ~/.agents/skills mogen
skillmappen met symbolische koppelingen bevatten, maar elk realpath van SKILL.md moet nog steeds
binnen de opgeloste skillmap blijven.
Installatiebeleid voor operators
Configureer security.installPolicy om een vertrouwde lokale beleidsopdracht uit te voeren
voordat skillinstallaties doorgaan. Het beleid ontvangt metagegevens en het klaargezette
bronpad, is van toepassing op ClawHub-, upload-, Git-, lokale, update- en
afhankelijkheidsinstallatiepaden, en sluit uit veiligheidsoverwegingen af 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 uit prompts en logboeken.
Zie Beveiliging voor het bredere dreigingsmodel en beveiligingschecklists.
SKILL.md-indeling
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 frontmattersleutels
homepagestringURL die als "Website" wordt weergegeven in de macOS-gebruikersinterface voor Skills. Wordt ook ondersteund via
metadata.openclaw.homepage.
user-invocablebooleandefault: trueWanneer true, wordt de skill beschikbaar gesteld als een door de gebruiker aanroepbare slash-opdracht.
disable-model-invocationbooleandefault: falseWanneer true, 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 doorgestuurd.
command-toolstringNaam van de tool die moet worden aangeroepen wanneer command-dispatch: tool is ingesteld.
command-arg-mode"raw"default: rawVoor toolroutering wordt de onbewerkte argumenttekenreeks zonder
kernverwerking naar de tool doorgestuurd. De tool ontvangt
{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Toegangsvoorwaarden
OpenClaw filtert skills tijdens het laden met metadata.openclaw (een JSON5-object
dat in de frontmatter is ingesloten; zie de opmerking over parsering hierboven). Een skill zonder
metadata.openclaw-blok komt altijd in aanmerking, tenzij deze expliciet is uitgeschakeld.
---name: image-labdescription: Afbeeldingen genereren of bewerken via een door een provider ondersteunde afbeeldingsworkflowmetadata: { "openclaw": { "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] }, "primaryEnv": "GEMINI_API_KEY", }, }---alwaysbooleanWanneer true, wordt de skill altijd opgenomen en worden alle andere voorwaarden overgeslagen.
emojistringOptionele emoji die in de macOS-interface voor Skills wordt weergegeven.
homepagestringOptionele URL die als "Website" in de macOS-interface voor Skills wordt weergegeven.
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 bestaan op PATH.
requires.anyBinsstring[]Ten minste één binair bestand moet bestaan op PATH.
requires.envstring[]Elke omgevingsvariabele moet in het proces bestaan of via de configuratie worden opgegeven.
requires.configstring[]Elk openclaw.json-pad moet waarheidsgetrouw zijn.
primaryEnvstringNaam van de omgevingsvariabele die aan skills.entries.<name>.apiKey is gekoppeld.
installobject[]Optionele installatiespecificaties die worden gebruikt door de macOS-interface voor Skills (brew / node / go / uv / download).
Installatiespecificaties
Installatiespecificaties vertellen de macOS-interface voor Skills hoe een afhankelijkheid moet worden geïnstalleerd:
---name: geminidescription: Gebruik Gemini CLI voor hulp bij programmeren en zoekopdrachten via Google.metadata: { "openclaw": { "emoji": "♊️", "requires": { "bins": ["gemini"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "gemini-cli", "bins": ["gemini"], "label": "Gemini CLI installeren (brew)", }, ], }, }---Regels voor installatieselectie
- Wanneer meerdere installatieprogramma's worden vermeld, kiest de Gateway één voorkeursoptie (brew indien beschikbaar, anders node).
- Als alle installatieprogramma's
downloadzijn, vermeldt OpenClaw elk item zodat je 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 skillinstallaties; de Gateway-runtime 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 pakketopdrachten van het systeem. 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 skillinstallaties.
Als
goontbreekt en Homebrew beschikbaar is, installeert OpenClaw eerst Go via Homebrew; op Linux zonder Homebrew kan het in plaats daarvanapt-getals root of via wachtwoordlozesudogebruiken wanneer de vernieuwdegolang-go- kandidaat aan de minimumversie voldoet. De daadwerkelijkego installvoor de afhankelijkheid is altijd gericht op een speciale, door OpenClaw beheerde map voor binaire bestanden (binvan Homebrew bij een nieuwe installatie, anders~/.local/bin) en niet op je geconfigureerdeGOBIN— je eigen omgevingsvariabelenGOBIN,GOPATHenGOTOOLCHAINworden gelezen, maar nooit overschreven. - Download:
url(vereist),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 bestaan.
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 gebundelde 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 gebundeld of geïnstalleerd. De gebundelde skill
coding-agent is opt-in — stel skills.entries.coding-agent.enabled: true in
en zorg dat een van 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.
envRecord<string, string��-�Ӧ���/j��m�^�؞��+u�z{n���z���
+u��zx�rמ�ը�קjY^zx�7���w���u�ڮ&�zW�� �zا��i���+configobjectOptionele verzameling aangepaste configuratievelden per skill.
allowBundledstring[]Optionele toelatingslijst, uitsluitend voor gebundelde skills. Wanneer deze is ingesteld, komen alleen gebundelde skills in de lijst in aanmerking. Beheerde skills en werkruimteskills worden niet beïnvloed.
Omgevingsinjectie
Wanneer een agentuitvoering start, voert OpenClaw het volgende uit:
Leest skillmetadata
OpenClaw bepaalt de effectieve skilllijst voor de agent en past daarbij toegangsvoorwaarden, toelatingslijsten en configuratieoverschrijvingen toe.
Injecteert omgevingsvariabelen en API-sleutels
skills.entries.<key>.env en skills.entries.<key>.apiKey worden gedurende
de uitvoering toegepast op process.env.
Bouwt de systeemprompt
In aanmerking komende skills worden gecompileerd 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 gebundelde claude-cli-backend maakt OpenClaw dezelfde
momentopname van in aanmerking komende skills ook beschikbaar 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 wanneer een sessie start een momentopname van in aanmerking komende skills en hergebruikt die lijst voor alle volgende beurten in de sessie. Wijzigingen aan skills of configuratie worden van kracht bij de volgende nieuwe sessie.
Skills worden tijdens een sessie in twee gevallen vernieuwd:
- De skillwatcher detecteert een wijziging in
SKILL.md. - Een nieuwe in aanmerking komende externe node maakt verbinding.
De vernieuwde lijst wordt bij de volgende agentbeurt opgehaald. Als de effectieve toelatingslijst van de agent verandert, vernieuwt OpenClaw de momentopname om de zichtbare skills daarmee in overeenstemming te houden.
Skillwatcher
Standaard bewaakt OpenClaw skillmappen en werkt het 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, // standaard }, },}Watchergebeurtenissen gebruiken een ingebouwde debounce van 250 ms. Gebruik allowSymlinkTargets
voor opzettelijke indelingen met symbolische koppelingen waarbij een symbolische koppeling van een skillhoofdmap buiten de geconfigureerde hoofdmap wijst, 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 wordt uitgevoerd, maar een macOS-node is verbonden waarop
system.run is toegestaan, kan OpenClaw uitsluitend voor macOS bestemde skills 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 uitsluitend externe skills niet zichtbaar. Als een node niet meer reageert op controles naar binaire bestanden, wist OpenClaw de overeenkomsten met binaire bestanden uit de cache.
Tokenimpact
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 inleidende
tekst plus de
<available_skills>-wrapper. - Per skill: ~97 tekens + de veldlengtes van je
name,descriptionenlocation. - XML-escaping zet
& < > " 'om in entiteiten, waardoor per voorkomen enkele tekens worden toegevoegd. - Bij ~4 tekens/token zijn 97 tekens ≈ 24 tokens per skill, vóór de veldlengtes.
Als het gerenderde blok het geconfigureerde promptbudget
(skills.limits.maxSkillsPromptChars) zou overschrijden, behoudt OpenClaw eerst zoveel mogelijk
skillidentiteiten (naam, locatie en versie) als in de compacte indeling zonder
beschrijvingen passen. Vervolgens wordt het resterende budget gebruikt 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 inkorting van de lijst
nodig is.
Houd beschrijvingen kort en duidelijk om de promptoverhead te beperken.
Gerelateerd
Stapsgewijze handleiding voor het maken van een aangepaste skill.
Wachtrij met voorstellen voor door agents opgestelde skills.
Volledig configuratieschema voor skills.* en toelatingslijsten voor agents.
Hoe slashcommando's voor skills worden geregistreerd en gerouteerd.
Bekijk en publiceer skills in het openbare register.
Plugins kunnen skills meeleveren naast de tools die ze documenteren.