Sandbox vs. Tool-Policy vs. Erhöht
OpenClaw hat drei zusammenhängende (aber unterschiedliche) Kontrollmechanismen:- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) entscheidet, wo Werkzeuge ausgeführt werden (Docker vs. Host). - Tool-Policy (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) entscheidet, welche Werkzeuge verfügbar/zulässig sind. - Erhöht (
tools.elevated.*,agents.list[].tools.elevated.*) ist eine reine Exec-Ausnahme, um bei aktivierter Sandbox auf dem Host auszuführen.
Schnelle Fehlersuche
Verwenden Sie den Inspector, um zu sehen, was OpenClaw tatsächlich tut:- effektiven Sandbox-Modus/Scope/Workspace-Zugriff
- ob die Sitzung aktuell sandboxed ist (Hauptsitzung vs. Nicht‑Hauptsitzung)
- effektive Sandbox-Tool-Allow/Deny (und ob es von Agent/Global/Default stammt)
- Elevated-Gates und Fix‑it‑Schlüsselpfade
Sandbox: wo Werkzeuge laufen
Sandboxing wird überagents.defaults.sandbox.mode gesteuert:
"off": alles läuft auf dem Host."non-main": nur Nicht‑Hauptsitzungen sind sandboxed (häufige „Überraschung“ für Gruppen/Kanäle)."all": alles ist sandboxed.
Bind-Mounts (Sicherheits‑Quickcheck)
docker.bindsdurchstößt das Sandbox-Dateisystem: Alles, was Sie mounten, ist im Container mit dem von Ihnen gesetzten Modus sichtbar (:rooder:rw).- Standard ist Lesen/Schreiben, wenn Sie den Modus weglassen; bevorzugen Sie
:rofür Quellcode/Secrets. scope: "shared"ignoriert agentenspezifische Binds (es gelten nur globale Binds).- Das Binden von
/var/run/docker.sockübergibt effektiv Host‑Kontrolle an die Sandbox; tun Sie dies nur bewusst. - Workspace‑Zugriff (
workspaceAccess: "ro"/"rw") ist unabhängig von Bind‑Modi.
Tool-Policy: welche Werkzeuge existieren/aufrufbar sind
Zwei Ebenen sind relevant:- Tool-Profil:
tools.profileundagents.list[].tools.profile(Basis‑Allowlist) - Provider‑Tool‑Profil:
tools.byProvider[provider].profileundagents.list[].tools.byProvider[provider].profile - Globale/agentenspezifische 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 (gilt nur bei aktiver Sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denyundagents.list[].tools.sandbox.tools.*
denygewinnt immer.- Wenn
allownicht leer ist, wird alles andere als blockiert behandelt. - Die Tool‑Policy ist der harte Stopp:
/execkann ein verweigertesexec‑Werkzeug nicht überschreiben. /execändert nur Sitzungs‑Defaults für autorisierte Absender; es gewährt keinen Tool‑Zugriff. Provider‑Tool‑Schlüssel akzeptieren entwederprovider(z. B.google-antigravity) oderprovider/model(z. B.openai/gpt-5.2).
Tool‑Gruppen (Kurzschreibweisen)
Tool‑Policies (global, Agent, Sandbox) unterstützengroup:*‑Einträge, die zu mehreren Werkzeugen expandieren:
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 integrierten OpenClaw‑Werkzeuge (ohne Provider‑Plugins)
Erhöht: reines Exec‑„auf dem Host ausführen“
Erhöht gewährt keine zusätzlichen Werkzeuge; es betrifft nurexec.
- Wenn Sie sandboxed sind, führt
/elevated on(oderexecmitelevated: true) auf dem Host aus (Freigaben können weiterhin erforderlich sein). - Verwenden Sie
/elevated full, um Exec‑Freigaben für die Sitzung zu überspringen. - Wenn Sie bereits direkt ausführen, ist „erhöht“ effektiv ein No‑op (weiterhin gated).
- Erhöht ist nicht skill‑gebunden und überschreibt keine Tool‑Allow/Deny‑Regeln.
/execist von „erhöht“ getrennt. Es passt nur sitzungsweise Exec‑Defaults für autorisierte Absender an.
- Aktivierung:
tools.elevated.enabled(und optionalagents.list[].tools.elevated.enabled) - Absender‑Allowlists:
tools.elevated.allowFrom.<provider>(und optionalagents.list[].tools.elevated.allowFrom.<provider>)
Häufige „Sandbox‑Gefängnis“-Fixes
„Werkzeug X durch Sandbox‑Tool‑Policy blockiert“
Fix‑it‑Schlüssel (wählen Sie einen):- Sandbox deaktivieren:
agents.defaults.sandbox.mode=off(oder agentenspezifischagents.list[].sandbox.mode=off) - Werkzeug innerhalb der Sandbox erlauben:
- aus
tools.sandbox.tools.denyentfernen (oder agentenspezifischagents.list[].tools.sandbox.tools.deny) - oder zu
tools.sandbox.tools.allowhinzufügen (oder agentenspezifische Allow)
- aus
„Ich dachte, das sei ‚main‘ – warum ist es sandboxed?“
Im Modus"non-main" sind Gruppen-/Kanal‑Schlüssel nicht „main“. Verwenden Sie den Hauptsitzungs‑Schlüssel (angezeigt durch sandbox explain) oder wechseln Sie den Modus zu "off".