- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) bepaalt waar tools draaien (sandbox-backend versus 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-voor-exec ontsnappingsroute om buiten de sandbox te draaien wanneer je in een sandbox zit (standaardgateway, ofnodewanneer het exec-doel is geconfigureerd alsnode).
Snel debuggen
Gebruik de inspector om te zien wat OpenClaw daadwerkelijk doet:- effectieve sandboxmodus/scope/workspace-toegang
- of de sessie momenteel in een sandbox zit (main versus niet-main)
- effectieve allow/deny voor sandboxtools (en of dit afkomstig is van agent/globaal/standaard)
- elevated-gates en fix-it-sleutelpaden
Sandbox: waar tools draaien
Sandboxing wordt beheerd dooragents.defaults.sandbox.mode:
"off": alles draait op de host."non-main": alleen niet-main-sessies draaien in een sandbox (veelvoorkomende “verrassing” voor groepen/kanalen)."all": alles draait in een sandbox.
Bind-mounts (snelle securitycontrole)
docker.bindsdoorbreekt het sandboxbestandssysteem: alles wat je mount is zichtbaar in de container met de modus die je instelt (:roof:rw).- Standaard is read-write als je de modus weglaat; geef de voorkeur aan
:rovoor source/secrets. scope: "shared"negeert binds per agent (alleen globale binds zijn van toepassing).- OpenClaw valideert bind-bronnen twee keer: eerst op het genormaliseerde bronpad, daarna opnieuw na resolve via de diepste bestaande ancestor. Escapes via symlink-parents omzeilen controles op geblokkeerde paden of toegestane roots niet.
- Niet-bestaande leaf-paden worden nog steeds veilig gecontroleerd. Als
/workspace/alias-out/new-filevia een gesymlinkte parent naar een geblokkeerd pad of buiten de geconfigureerde toegestane roots resolveert, wordt de bind geweigerd. - Het binden van
/var/run/docker.sockgeeft de sandbox effectief controle over de host; doe dit alleen bewust. - Workspace-toegang (
workspaceAccess: "ro"/"rw") staat los van bind-modi.
Toolbeleid: welke tools bestaan/aanroepbaar zijn
Twee lagen zijn belangrijk:- Toolprofiel:
tools.profileenagents.list[].tools.profile(basis-allowlist) - 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 in een sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denyenagents.list[].tools.sandbox.tools.*
denywint altijd.- Als
allowniet leeg is, wordt al het andere als geblokkeerd behandeld. - Toolbeleid is de harde stop:
/execkan een geweigerdeexec-tool niet overrulen. - Toolbeleid filtert toolbeschikbaarheid op naam; het inspecteert geen neveneffecten binnen
exec. Alsexecis toegestaan, maakt het weigeren vanwrite,editofapply_patchshellcommando’s niet read-only. /execwijzigt alleen sessiestandaarden voor geautoriseerde afzenders; het verleent geen tooltoegang. Provider-toolsleutels accepteren zowelprovider(bijv.google-antigravity) alsprovider/model(bijv.openai/gpt-5.4).- Gateway-logs bevatten auditvermeldingen voor
agents/tool-policywanneer een toolbeleidsstap tools verwijdert of een sandbox-toolbeleid een aanroep blokkeert. Gebruikopenclaw logsom het regellabel, de config-sleutel en de betrokken toolnamen te zien.
Toolgroepen (shorthands)
Toolbeleid (globaal, agent, sandbox) ondersteuntgroup:*-vermeldingen die uitklappen naar meerdere tools:
group:runtime:exec,process,code_execution(bashwordt geaccepteerd als alias voorexec)group:fs:read,write,edit,apply_patchWeiger voor read-only agents ookgroup:runtimenaast muterende bestandssysteemtools, tenzij het sandboxbestandssysteembeleid of een afzonderlijke hostgrens de read-only-beperking afdwingt.group:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,sessions_yield,subagents,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,x_search,web_fetchgroup:ui:browser,canvasgroup:automation:heartbeat_respond,cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:agents:agents_list,update_plangroup:media:image,image_generate,music_generate,video_generate,ttsgroup:openclaw: alle ingebouwde OpenClaw-tools (exclusief provider-plugins)group:plugins: alle geladen tools die eigendom zijn van een plugin, inclusief geconfigureerde MCP-servers die viabundle-mcpworden aangeboden
mcp.servers is geconfigureerd maar sandboxbeurten alleen ingebouwde tools tonen, voeg dan bundle-mcp, group:plugins of een server-geprefixte MCP-toolnaam/glob zoals outlook__send_mail of outlook__* toe aan tools.sandbox.tools.alsoAllow, herstart/herlaad daarna de gateway en leg de toollijst opnieuw vast. Server-globs gebruiken de provider-veilige MCP-serverprefix: niet-[A-Za-z0-9_-]-tekens worden -, namen die niet met een letter beginnen krijgen een mcp--prefix, en lange of dubbele prefixes kunnen worden afgekapt of een suffix krijgen.
openclaw doctor controleert momenteel deze vorm voor door OpenClaw beheerde servers in mcp.servers. MCP-servers die worden geladen vanuit gebundelde pluginmanifesten of Claude .mcp.json gebruiken dezelfde sandbox-gate, maar deze diagnose somt die bronnen nog niet op; gebruik dezelfde allowlist-vermeldingen als hun tools verdwijnen in sandboxbeurten.
Elevated: alleen-voor-exec “op host draaien”
Elevated verleent geen extra tools; het beïnvloedt alleenexec.
- Als je in een sandbox zit, draait
/elevated on(ofexecmetelevated: true) buiten de sandbox (approvals kunnen nog steeds gelden). - Gebruik
/elevated fullom exec-approvals voor de sessie over te slaan. - Als je al direct draait, is elevated effectief een no-op (nog steeds gated).
- Elevated is niet skill-scoped en overrult tool-allow/deny niet.
- Elevated verleent geen willekeurige cross-host overrides vanuit
host=auto; het volgt de normale regels voor exec-doelen en behoudt alleennodewanneer het geconfigureerde/sessie-doel alnodeis. /execstaat los van elevated. Het past alleen exec-standaarden per sessie aan voor geautoriseerde afzenders.
- Inschakeling:
tools.elevated.enabled(en optioneelagents.list[].tools.elevated.enabled) - Afzender-allowlists:
tools.elevated.allowFrom.<provider>(en optioneelagents.list[].tools.elevated.allowFrom.<provider>)
Veelvoorkomende oplossingen voor “sandbox jail"
"Tool X blocked by sandbox tool policy”
Fix-it-sleutels (kies er een):- Schakel sandbox uit:
agents.defaults.sandbox.mode=off(of per agentagents.list[].sandbox.mode=off) - Sta de tool toe 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 allow per agent)
- verwijder deze uit
- Controleer
openclaw logsop deagents/tool-policy-vermelding. Deze registreert de sandboxmodus en of de allow- of deny-regel de tool heeft geblokkeerd.
”I thought this was main, why is it sandboxed?”
In de modus"non-main" zijn groeps-/kanaalsleutels niet main. Gebruik de main-sessiesleutel (getoond door sandbox explain) of schakel de modus naar "off".
Gerelateerd
- Sandboxing — volledige sandboxreferentie (modi, scopes, backends, images)
- Multi-Agent Sandbox & Tools — overrides en prioriteit per agent
- Elevated Mode