Sandbox vs. Tool Policy vs. Elevated
OpenClaw hat drei zusammenhängende (aber unterschiedliche) Steuerungen:
- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) entscheidet, wo Tools laufen (Docker vs. Host). - Tool Policy (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) entscheidet, welche Tools verfügbar/erlaubt sind. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) ist eine nur-exec-Fluchtluke, um auf dem Host zu laufen, wenn Sie gesandboxt sind.
Schnelles Debugging
Den Inspector nutzen, um zu sehen, was OpenClaw tatsächlich tut:
openclaw sandbox explain
openclaw sandbox explain --session agent:main:main
openclaw sandbox explain --agent work
openclaw sandbox explain --jsonEs gibt aus:
- effektiver Sandbox-Modus/Geltungsbereich/Workspace-Zugriff
- ob die Sitzung aktuell gesandboxt ist (main vs. non-main)
- effektive Sandbox-Tool-Allow/Deny (und ob von Agent/Global/Default)
- Elevated-Gates und Fix-it-Konfigurationsschlüssel
Sandbox: wo Tools laufen
Sandboxing wird von agents.defaults.sandbox.mode gesteuert:
"off": alles läuft auf dem Host."non-main": nur Nicht-Haupt-Sitzungen werden gesandboxt (häufige „Überraschung“ bei Gruppen/Kanälen)."all": alles wird gesandboxt.
Vollständige Matrix (Scope, Workspace-Mounts, Images): Sandboxing.
Bind-Mounts (Sicherheits-Schnellcheck)
docker.bindsdurchbohrt das Sandbox-Dateisystem: Was Sie mounten, ist im Container mit der gesetzten Mode (:rooder:rw) sichtbar.- Standard ist read-write, wenn Sie die Mode weglassen; für Source/Geheimnisse
:robevorzugen. scope: "shared"ignoriert pro-Agent-Binds (nur globale Binds gelten)./var/run/docker.sockzu binden übergibt effektiv die Host-Kontrolle an die Sandbox; nur bewusst nutzen.- Workspace-Zugriff (
workspaceAccess: "ro"/"rw") ist unabhängig von Bind-Modi.
Tool Policy: welche Tools existieren/aufrufbar sind
Zwei Ebenen zählen:
- Tool-Profil:
tools.profileundagents.list[].tools.profile(Basis-Allowlist) - Provider-Tool-Profil:
tools.byProvider[provider].profileundagents.list[].tools.byProvider[provider].profile - Globale/pro-Agent-Tool-Policy:
tools.allow/tools.denyundagents.list[].tools.allow/agents.list[].tools.deny - Provider-Tool-Policy:
tools.byProvider[provider].allow/denyundagents.list[].tools.byProvider[provider].allow/deny - Sandbox-Tool-Policy (nur bei Sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denyundagents.list[].tools.sandbox.tools.*
Faustregeln:
denygewinnt immer.- Ist
allownicht leer, wird alles andere als blockiert behandelt. - Tool-Policy ist die harte Grenze:
/execkann ein verweigertesexec-Tool nicht überschreiben. /execändert nur Sitzungs-Standards für autorisierte Absender; es gewährt keinen Tool-Zugriff. Provider-Tool-Keys akzeptieren entwederprovider(z. B.google-antigravity) oderprovider/model(z. B.openai/gpt-5.2).
Tool-Gruppen (Kurzformen)
Tool-Policies (global, Agent, Sandbox) unterstützen group:*-Einträge, die zu mehreren Tools expandieren:
{
tools: {
sandbox: {
tools: {
allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"]
}
}
}
}Verfügbare Gruppen:
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 eingebauten OpenClaw-Tools (ohne Provider-Plugins)
Elevated: nur-exec „auf dem Host laufen“
Elevated gewährt keine zusätzlichen Tools; es betrifft nur exec.
- Sind Sie gesandboxt, führt
/elevated on(oderexecmitelevated: true) auf dem Host aus (Genehmigungen können weiter gelten). /elevated fullnutzen, um Exec-Genehmigungen für die Sitzung zu überspringen.- Laufen Sie bereits direkt, ist Elevated effektiv ein No-Op (weiterhin abgesichert).
- Elevated ist nicht skill-scoped und überschreibt nicht Tool-Allow/Deny.
/execist getrennt von Elevated. Es passt nur pro-Sitzungs-Exec-Standards für autorisierte Absender an.
Gates:
- Aktivierung:
tools.elevated.enabled(und optionalagents.list[].tools.elevated.enabled) - Absender-Allowlists:
tools.elevated.allowFrom.<provider>(und optionalagents.list[].tools.elevated.allowFrom.<provider>)
Siehe Elevated Mode.
Typische „Sandbox-Jail“-Fixes
„Tool X von Sandbox-Tool-Policy blockiert“
Fix-it-Schlüssel (einen wählen):
- Sandbox deaktivieren:
agents.defaults.sandbox.mode=off(oder pro Agentagents.list[].sandbox.mode=off) - Tool in der Sandbox erlauben:
- aus
tools.sandbox.tools.denyentfernen (oder pro-Agentagents.list[].tools.sandbox.tools.deny) - oder zu
tools.sandbox.tools.allowhinzufügen (oder pro-Agent-Allow)
- aus
„Ich dachte, das ist main, warum ist es gesandboxt?“
Im Modus "non-main" sind Gruppen-/Kanal-Keys nicht main. Den Hauptsitzungs-Key nutzen (von sandbox explain angezeigt) oder Modus auf "off" wechseln.
Zuletzt aktualisiert am: