Sandbox vs Toolbeleid vs Elevated
OpenClaw heeft drie gerelateerde (maar verschillende) controles:- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) bepaalt waar tools draaien (Docker vs host). - Toolbeleid (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) bepaalt welke tools beschikbaar/toegestaan zijn. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) is een alleen-exec ontsnappingsluik om op de host te draaien wanneer je gesandboxed bent.
Snelle debug
Gebruik de inspector om te zien wat OpenClaw daadwerkelijk doet:- effectieve sandbox-modus/scope/werkruimte-toegang
- of de sessie momenteel gesandboxed is (main vs non-main)
- effectief sandbox-tool toestaan/weigeren (en of dit van agent/globaal/standaard komt)
- elevated-gates en fix-it sleutel-paden
Sandbox: waar tools draaien
Sandboxing wordt aangestuurd dooragents.defaults.sandbox.mode:
"off": alles draait op de host."non-main": alleen non-main sessies zijn gesandboxed (veelvoorkomende “verrassing” voor groepen/kanalen)."all": alles is gesandboxed.
Bind mounts (snelle beveiligingscheck)
docker.bindsdoorboort het sandbox-bestandssysteem: wat je mount is zichtbaar in de container met de ingestelde modus (:roof:rw).- Standaard is lezen-schrijven als je de modus weglaat; geef de voorkeur aan
:rovoor broncode/secrets. scope: "shared"negeert per-agent binds (alleen globale binds gelden).- Het binden van
/var/run/docker.sockgeeft feitelijk hostcontrole aan de sandbox; doe dit alleen bewust. - Werkruimte-toegang (
workspaceAccess: "ro"/"rw") staat los van bind-modi.
Toolbeleid: welke tools bestaan/zijn aanroepbaar
Twee lagen zijn van belang:- Toolprofiel:
tools.profileenagents.list[].tools.profile(basis-toegestane lijst) - Provider-toolprofiel:
tools.byProvider[provider].profileenagents.list[].tools.byProvider[provider].profile - Globaal/per-agent toolbeleid:
tools.allow/tools.denyenagents.list[].tools.allow/agents.list[].tools.deny - Provider-toolbeleid:
tools.byProvider[provider].allow/denyenagents.list[].tools.byProvider[provider].allow/deny - Sandbox-toolbeleid (alleen van toepassing wanneer gesandboxed):
tools.sandbox.tools.allow/tools.sandbox.tools.denyenagents.list[].tools.sandbox.tools.*
denywint altijd.- Als
allowniet leeg is, wordt al het andere als geblokkeerd beschouwd. - Toolbeleid is de harde stop:
/execkan een geweigerdeexectool niet overrulen. /execwijzigt alleen sessiestandaarden voor geautoriseerde afzenders; het verleent geen tooltoegang. Provider-tool-sleutels accepteren zowelprovider(bijv.google-antigravity) alsprovider/model(bijv.openai/gpt-5.2).
Toolgroepen (afkortingen)
Toolbeleidsregels (globaal, agent, sandbox) ondersteunengroup:*-items die uitklappen naar meerdere tools:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: alle ingebouwde OpenClaw-tools (exclusief provider-plugins)
Elevated: alleen-exec “draaien op de host”
Elevated verleent geen extra tools; het beïnvloedt alleenexec.
- Als je gesandboxed bent, draait
/elevated on(ofexecmetelevated: true) op de host (goedkeuringen kunnen nog steeds gelden). - Gebruik
/elevated fullom exec-goedkeuringen voor de sessie over te slaan. - Als je al direct draait, is elevated feitelijk een no-op (nog steeds gegate).
- Elevated is niet skill-scoped en overridet het tool toestaan/weigeren niet.
/execstaat los van elevated. Het past alleen per-sessie exec-standaarden aan voor geautoriseerde afzenders.
- Inschakeling:
tools.elevated.enabled(en optioneelagents.list[].tools.elevated.enabled) - Afzender-toegestane lijsten:
tools.elevated.allowFrom.<provider>(en optioneelagents.list[].tools.elevated.allowFrom.<provider>)
Veelvoorkomende “sandbox jail”-oplossingen
“Tool X geblokkeerd door sandbox-toolbeleid”
Fix-it-sleutels (kies er één):- Sandbox uitschakelen:
agents.defaults.sandbox.mode=off(of per-agentagents.list[].sandbox.mode=off) - De tool toestaan binnen de sandbox:
- verwijder deze uit
tools.sandbox.tools.deny(of per-agentagents.list[].tools.sandbox.tools.deny) - of voeg deze toe aan
tools.sandbox.tools.allow(of per-agent toestaan)
- verwijder deze uit
“Ik dacht dat dit main was, waarom is het gesandboxed?”
In de modus"non-main" zijn groep-/kanaalsleutels niet main. Gebruik de main-sessiesleutel (getoond door sandbox explain) of schakel de modus om naar "off".