Skills
Skills
OpenClaw gebruikt AgentSkills-compatibele skillmappen om de agent te leren hoe tools moeten worden gebruikt. Elke skill is een directory met een SKILL.md met YAML-frontmatter en instructies. OpenClaw laadt gebundelde skills plus optionele lokale overschrijvingen, en filtert ze tijdens het laden op basis van omgeving, configuratie en aanwezigheid van binaries.
Locaties en voorrang
OpenClaw laadt skills uit deze bronnen, hoogste voorrang eerst:
| # | Bron | Pad |
|---|---|---|
| 1 | Workspace-skills | <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 | Extra skillmappen | skills.load.extraDirs (configuratie) |
Als een skillnaam conflicteert, wint de hoogste bron.
De native $CODEX_HOME/skills-directory van Codex CLI is geen van deze OpenClaw-skillroots. In Codex-harnasmodus gebruiken lokale appserverstarts geïsoleerde Codex-homes per agent, zodat persoonlijke Codex CLI-skills niet impliciet worden geladen. Gebruik openclaw migrate codex --dry-run om ze te inventariseren en openclaw migrate codex om skilldirectories te kiezen met een interactieve checkboxprompt voordat ze naar de huidige OpenClaw-agentworkspace worden gekopieerd. Herhaal voor niet-interactieve runs --skill <name> voor de exacte skills die moeten worden gekopieerd.
Skills per agent versus gedeelde skills
In multi-agent-setups heeft elke agent zijn eigen workspace:
| Bereik | Pad | Zichtbaar voor |
|---|---|---|
| Per agent | <workspace>/skills |
Alleen die agent |
| Projectagent | <workspace>/.agents/skills |
Alleen de agent van die workspace |
| Persoonlijke agent | ~/.agents/skills |
Alle agents op die machine |
| Gedeeld beheerd/lokaal | ~/.openclaw/skills |
Alle agents op die machine |
| Gedeelde extra dirs | skills.load.extraDirs (laagste voorrang) |
Alle agents op die machine |
Dezelfde naam op meerdere plaatsen → hoogste bron wint. Workspace wint van projectagent, wint van persoonlijke agent, wint van beheerd/lokaal, wint van gebundeld, wint van extra dirs.
Allowlists voor agentskills
Skilllocatie en skillzichtbaarheid zijn aparte controles. Locatie/voorrang bepaalt welke kopie van een skill met dezelfde naam wint; agentallowlists bepalen welke skills een agent daadwerkelijk kan gebruiken.
{
agents: {
defaults: {
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // inherits github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
],
},
}
Allowlist-regels
- Laat
agents.defaults.skillsweg voor standaard onbeperkte skills. - Laat
agents.list[].skillsweg omagents.defaults.skillste erven. - Stel
agents.list[].skills: []in voor geen skills. - Een niet-lege lijst
agents.list[].skillsis de definitieve set voor die agent - deze wordt niet samengevoegd met standaardwaarden. - De effectieve allowlist wordt toegepast op promptopbouw, ontdekking van slash-commando's voor skills, sandbox-synchronisatie en skillsnapshots.
Plugins en skills
Plugins kunnen hun eigen skills meeleveren door skills-directories op te nemen in openclaw.plugin.json (paden relatief aan de pluginroot). Pluginskills worden geladen wanneer de Plugin is ingeschakeld. Dit is de juiste plek voor toolspecifieke bedieningsgidsen die te lang zijn voor de toolbeschrijving, maar beschikbaar moeten zijn wanneer de Plugin is geïnstalleerd - de browser-Plugin levert bijvoorbeeld een browser-automation-skill voor browserbesturing in meerdere stappen.
Pluginskilldirectories worden samengevoegd in hetzelfde pad met lage voorrang als skills.load.extraDirs, dus een gebundelde, beheerde, agent- of workspace-skill met dezelfde naam overschrijft ze. Je kunt ze afschermen via metadata.openclaw.requires.config op de configuratie-entry van de Plugin.
Zie Plugins voor ontdekking/configuratie en Tools voor het tooloppervlak dat die skills aanleren.
Skill Workshop
De optionele, experimentele Skill Workshop-Plugin kan workspaceskills maken of bijwerken vanuit herbruikbare procedures die tijdens agentwerk zijn waargenomen. Deze is standaard uitgeschakeld en moet expliciet worden ingeschakeld via plugins.entries.skill-workshop.
Skill Workshop schrijft alleen naar <workspace>/skills, scant gegenereerde inhoud, ondersteunt wachtende goedkeuring of automatische veilige schrijfacties, plaatst onveilige voorstellen in quarantaine en vernieuwt de skillsnapshot na succesvolle schrijfacties zodat nieuwe skills beschikbaar worden zonder een Gateway-herstart.
Gebruik dit voor correcties zoals "controleer de volgende keer GIF-toeschrijving" of moeizaam verworven workflows zoals QA-checklists voor media. Begin met wachtende goedkeuring; gebruik automatische schrijfacties alleen in vertrouwde workspaces nadat de voorstellen zijn beoordeeld. Volledige gids: Skill Workshop-Plugin.
ClawHub (installeren en synchroniseren)
ClawHub is het openbare skillsregister voor OpenClaw. Gebruik native openclaw skills-commando's voor ontdekken/installeren/bijwerken, of de aparte clawhub CLI voor publicatie-/synchronisatieworkflows. Volledige gids: ClawHub.
| Actie | Commando |
|---|---|
| Een skill in de workspace installeren | openclaw skills install <skill-slug> |
| Alle geïnstalleerde skills bijwerken | openclaw skills update --all |
| Synchroniseren (scannen + updates publiceren) | clawhub sync --all |
Native openclaw skills install installeert in de actieve workspace-skills/-directory. De aparte clawhub CLI installeert ook in ./skills onder je huidige werkdirectory (of valt terug op de geconfigureerde OpenClaw-workspace). OpenClaw pikt dat in de volgende sessie op als <workspace>/skills.
Geconfigureerde skillroots ondersteunen ook één groeperingsniveau, zoals skills/<group>/<skill>/SKILL.md, zodat gerelateerde skills van derden onder een gedeelde map kunnen worden bewaard zonder brede recursieve scanning.
ClawHub-skillpagina's tonen de nieuwste status van de beveiligingsscan vóór installatie, met detailpagina's van scanners voor VirusTotal, ClawScan en statische analyse. openclaw skills install <slug> blijft alleen het installatiepad; uitgevers herstellen vals-positieven via het ClawHub-dashboard of clawhub skill rescan <slug>.
Beveiliging
- Ontdekking van workspace- en extra-dir-skills accepteert alleen skillroots en
SKILL.md-bestanden waarvan het opgeloste realpath binnen de geconfigureerde root blijft. - Gateway-ondersteunde installaties van skillafhankelijkheden (
skills.install, onboarding en de Skills-instellingen-UI) voeren de ingebouwde gevaarlijke-codescanner uit voordat installermetadata wordt uitgevoerd.critical-bevindingen blokkeren standaard, tenzij de aanroeper expliciet de gevaarlijke overschrijving instelt; verdachte bevindingen waarschuwen nog steeds alleen. openclaw skills install <slug>is anders - het downloadt een ClawHub-skillmap naar de workspace en gebruikt het bovenstaande installermetadatapad niet.skills.entries.*.envenskills.entries.*.apiKeyinjecteren geheimen in het hostproces voor die agentbeurt (niet de sandbox). Houd geheimen uit prompts en logs.
Zie Security voor een breder dreigingsmodel en checklists.
SKILL.md-indeling
SKILL.md moet minimaal het volgende bevatten:
---
name: image-lab
description: Generate or edit images via a provider-backed image workflow
---
OpenClaw volgt de AgentSkills-specificatie voor lay-out/intent. De parser die door de ingesloten agent wordt gebruikt, ondersteunt alleen frontmatter-sleutels op één regel; metadata moet een JSON-object op één regel zijn. Gebruik {baseDir} in instructies om naar het pad van de skillmap te verwijzen.
Optionele frontmatter-sleutels
homepagestringURL die als "Website" wordt getoond in de macOS Skills-UI. Wordt ook ondersteund via metadata.openclaw.homepage.
user-invocablebooleanWanneer true, wordt de skill als slash-commando voor gebruikers getoond.
disable-model-invocationbooleanWanneer true, houdt OpenClaw de instructies van de skill buiten de normale prompt van de agent. De skill blijft geïnstalleerd en kan nog steeds expliciet als slash-commando worden uitgevoerd wanneer user-invocable ook true is.
command-dispatch"tool"Wanneer ingesteld op tool, omzeilt het slash-commando het model en wordt het direct naar een tool gestuurd.
command-toolstringToolnaam om aan te roepen wanneer command-dispatch: tool is ingesteld.
command-arg-mode"raw"Voor tooldispatch wordt de ruwe args-string doorgestuurd naar de tool (geen core-parsing). De tool wordt aangeroepen met { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }.
Gating (filters tijdens laden)
OpenClaw filtert skills tijdens het laden met metadata (JSON op één regel):
---
name: image-lab
description: Generate or edit images via a provider-backed image workflow
metadata:
{
"openclaw":
{
"requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
"primaryEnv": "GEMINI_API_KEY",
},
}
---
Velden onder metadata.openclaw:
alwaysbooleanWanneer true, neem de skill altijd op (sla andere gates over).
emojistringOptionele emoji die door de macOS Skills-UI wordt gebruikt.
homepagestringOptionele URL die als "Website" wordt getoond in de macOS Skills-UI.
os"darwin" | "linux" | "win32"Optionele lijst met platforms. Indien ingesteld, komt de skill alleen in aanmerking op die OS'en.
requires.binsstring[]Elke moet bestaan op PATH.
requires.anyBinsstring[]Minstens één moet bestaan op PATH.
requires.envstring[]Env-var moet bestaan of in configuratie worden opgegeven.
requires.configstring[]Lijst met openclaw.json-paden die truthy moeten zijn.
primaryEnvstringNaam van env-var die is gekoppeld aan skills.entries.<name>.apiKey.
installobject[]Optionele installerspecificaties die door de macOS Skills-UI worden gebruikt (brew/node/go/uv/download).
Als er geen metadata.openclaw aanwezig is, komt de skill altijd in aanmerking (tenzij uitgeschakeld in configuratie of geblokkeerd door skills.allowBundled voor gebundelde skills).
Sandboxnotities
requires.binswordt gecontroleerd op de host tijdens het laden van skills.- Als een agent is gesandboxt, moet de binary ook binnen de container bestaan. Installeer deze via
agents.defaults.sandbox.docker.setupCommand(of een aangepaste image).setupCommandwordt eenmaal uitgevoerd nadat de container is gemaakt. Pakketinstallaties vereisen ook netwerkuitgang, een beschrijfbaar root-FS en een rootgebruiker in de sandbox. - Voorbeeld: de
summarize-skill (skills/summarize/SKILL.md) heeft desummarizeCLI in de sandboxcontainer nodig om daar te draaien.
Installatiespecificaties
---
name: gemini
description: 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)",
},
],
},
}
---
Selectieregels voor installatieprogramma's
- Als meerdere installatieprogramma's worden vermeld, kiest de Gateway één voorkeursoptie (
brewwanneer beschikbaar, anders Node). - Als alle installatieprogramma's
downloadzijn, toont OpenClaw elke vermelding zodat je de beschikbare artefacten kunt zien. - Installatiespecificaties kunnen
os: ["darwin"|"linux"|"win32"]bevatten om opties op platform te filteren. - Node-installaties respecteren
skills.install.nodeManagerinopenclaw.json(standaard: npm; opties: npm/pnpm/yarn/bun). Dit heeft alleen invloed op skill-installaties; de Gateway-runtime moet nog steeds Node zijn - Bun wordt niet aanbevolen voor WhatsApp/Telegram. - Gateway-gestuurde installatieprogrammakeuze is voorkeurgestuurd: wanneer installatiespecificaties soorten mengen, geeft OpenClaw de voorkeur aan Homebrew wanneer
skills.install.preferBrewis ingeschakeld enbrewbestaat, daarnauv, daarna de geconfigureerde Node-manager, en daarna andere fallbacks zoalsgoofdownload. - Als elke installatiespecificatie
downloadis, toont OpenClaw alle downloadopties in plaats van ze samen te vouwen tot één voorkeursinstallatieprogramma.
Details per installatieprogramma
- Go-installaties: als
goontbreekt enbrewbeschikbaar is, installeert de Gateway eerst Go via Homebrew en stelt waar mogelijkGOBINin op debinvan Homebrew. - Downloadinstallaties:
url(vereist),archive(tar.gz|tar.bz2|zip),extract(standaard: automatisch wanneer een archief wordt gedetecteerd),stripComponents,targetDir(standaard:~/.openclaw/tools/<skillKey>).
Configuratie-overschrijvingen
Gebundelde en beheerde Skills kunnen worden in- of uitgeschakeld en voorzien van env-waarden
onder skills.entries in ~/.openclaw/openclaw.json:
{
skills: {
entries: {
"image-lab": {
enabled: true,
apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
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 als deze gebundeld of geïnstalleerd is.
De gebundelde coding-agent-skill is opt-in: stel
skills.entries.coding-agent.enabled: true in voordat je deze aan agents beschikbaar maakt,
en zorg er daarna voor dat een van claude, codex, opencode of pi geïnstalleerd en
geauthenticeerd is voor de eigen CLI.
apiKeystring | { source, provider, id }Gemak voor Skills die metadata.openclaw.primaryEnv declareren. Ondersteunt platte tekst of SecretRef.
envRecord<string, string��-��%�私��y�^z�Z��^���i��zz �'��x^���q�configobjectOptionele verzameling voor aangepaste velden per skill. Aangepaste sleutels moeten hier staan.
allowBundledstring[]Optionele allowlist alleen voor gebundelde Skills. Indien ingesteld, komen alleen gebundelde Skills in de lijst in aanmerking (beheerde/workspace-Skills blijven onaangetast).
Als de skillnaam koppeltekens bevat, zet de sleutel dan tussen aanhalingstekens (JSON5 staat aangehaalde
sleutels toe). Configuratiesleutels komen standaard overeen met de skillnaam - als een skill
metadata.openclaw.skillKey definieert, gebruik dan die sleutel onder skills.entries.
Omgevingsinjectie
Wanneer een agent-run start, doet OpenClaw het volgende:
- Leest skillmetadata.
- Past
skills.entries.<key>.envenskills.entries.<key>.apiKeytoe opprocess.env. - Bouwt de systeemprompt met in aanmerking komende Skills.
- Herstelt de oorspronkelijke omgeving nadat de run eindigt.
Omgevingsinjectie is beperkt tot de agent-run, niet tot een globale shellomgeving.
Voor de gebundelde claude-cli-backend materialiseert OpenClaw ook dezelfde
in aanmerking komende snapshot als een tijdelijke Claude Code-Plugin en geeft deze door met
--plugin-dir. Claude Code kan daarna de native skillresolver gebruiken, terwijl
OpenClaw nog steeds eigenaar blijft van prioriteit, allowlists per agent, gating en
skills.entries.* env/API-sleutelinjectie. Andere CLI-backends gebruiken alleen de
promptcatalogus.
Snapshots en vernieuwen
OpenClaw maakt een snapshot van de in aanmerking komende Skills wanneer een sessie start en hergebruikt die lijst voor daaropvolgende beurten in dezelfde sessie. Wijzigingen aan Skills of configuratie worden van kracht bij de volgende nieuwe sessie.
Skills kunnen in twee gevallen halverwege de sessie worden vernieuwd:
- De skills watcher is ingeschakeld.
- Er verschijnt een nieuwe in aanmerking komende externe node.
Zie dit als een hot reload: de vernieuwde lijst wordt opgepakt bij de volgende agentbeurt. Als de effectieve skill-allowlist van de agent voor die sessie verandert, vernieuwt OpenClaw de snapshot zodat zichtbare Skills afgestemd blijven op de huidige agent.
Skills watcher
Standaard bewaakt OpenClaw skillmappen en verhoogt het de skillssnapshot
wanneer SKILL.md-bestanden veranderen. Configureer onder skills.load:
{
skills: {
load: {
watch: true,
watchDebounceMs: 250,
},
},
}
Externe macOS-nodes (Linux-Gateway)
Als de Gateway op Linux draait maar er een macOS-node is verbonden met
system.run toegestaan (beveiliging voor Exec-goedkeuringen niet ingesteld op deny),
kan OpenClaw macOS-only Skills als in aanmerking komend behandelen wanneer de vereiste
binaries op die node aanwezig zijn. De agent moet die Skills uitvoeren
via de exec-tool met host=node.
Dit steunt op de node die de eigen commandondersteuning rapporteert en op een bin-probe
via system.which of system.run. Offline nodes maken
remote-only Skills niet zichtbaar. Als een verbonden node stopt met antwoorden op bin-
probes, wist OpenClaw de gecachte bin-matches zodat agents geen
Skills meer zien die daar momenteel niet kunnen draaien.
Tokenimpact
Wanneer Skills in aanmerking komen, injecteert OpenClaw een compacte XML-lijst met beschikbare
Skills in de systeemprompt (via formatSkillsForPrompt in
pi-coding-agent). De kosten zijn deterministisch:
- Basisoverhead (alleen bij ≥1 skill): 195 tekens.
- Per skill: 97 tekens + de lengte van de XML-geëscapete waarden voor
<name>,<description>en<location>.
Formule (tekens):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
XML-escaping breidt & < > " ' uit naar entiteiten (&, <, enz.),
waardoor de lengte toeneemt. Tokenaantallen verschillen per modeltokenizer. Een grove
OpenAI-stijl schatting is ~4 tekens/token, dus 97 tekens ≈ 24 tokens per
skill plus je werkelijke veldlengtes.
Levenscyclus van beheerde Skills
OpenClaw levert een basisset Skills als gebundelde Skills met de
installatie (npm-pakket of OpenClaw.app). ~/.openclaw/skills bestaat voor
lokale overschrijvingen - bijvoorbeeld om een skill vast te pinnen of te patchen zonder
de gebundelde kopie te wijzigen. Workspace-Skills zijn eigendom van de gebruiker en overschrijven
beide bij naamconflicten.
Op zoek naar meer Skills?
Blader door https://clawhub.ai. Volledig configuratie- schema: Skills-configuratie.
Gerelateerd
- ClawHub - openbaar skillsregister
- Skills maken - aangepaste Skills bouwen
- Plugins - overzicht van het Plugin-systeem
- Skill Workshop-Plugin - genereer Skills op basis van agentwerk
- Skills-configuratie - referentie voor skillconfiguratie
- Slash-commando's - alle beschikbare slash-commando's