Gateway
Sandboxing
OpenClaw kann die Werkzeugausführung in einem Sandbox-Backend ausführen, um den möglichen Schadensradius zu reduzieren. Sandboxing ist standardmäßig deaktiviert und wird durch agents.defaults.sandbox (global) oder agents.entries.*.sandbox (pro Agent) gesteuert. Der Gateway-Prozess verbleibt immer auf dem Host; nur die Werkzeugausführung wird bei Aktivierung in die Sandbox verlagert.
Was in der Sandbox ausgeführt wird
- Werkzeugausführung:
exec,read,write,edit,apply_patch,processusw. - Der optionale Browser in der Sandbox (
agents.defaults.sandbox.browser).
Nicht in der Sandbox ausgeführt:
- Der Gateway-Prozess selbst.
- Jedes Werkzeug, das über
tools.elevatedausdrücklich für die Ausführung außerhalb der Sandbox zugelassen ist. Die Ausführung mit erhöhten Rechten umgeht das Sandboxing und erfolgt über den konfigurierten Ausweichpfad (standardmäßiggatewayodernode, wenn das Ausführungszielnodeist). Wenn Sandboxing deaktiviert ist, änderttools.elevatednichts, da die Ausführung bereits auf dem Host erfolgt. Siehe Modus mit erhöhten Rechten.
Modi, Geltungsbereich und Backend
Drei voneinander unabhängige Einstellungen steuern das Sandbox-Verhalten:
| Einstellung | Schlüssel | Werte | Standard |
|---|---|---|---|
| Modus | agents.defaults.sandbox.mode |
off, non-main, all |
off |
| Geltungsbereich | agents.defaults.sandbox.scope |
agent, session, shared |
agent |
| Backend | agents.defaults.sandbox.backend |
docker, ssh, openshell |
docker |
Der Modus steuert, wann Sandboxing angewendet wird:
off: kein Sandboxing.non-main: Jede Sitzung mit Ausnahme der Hauptsitzung des Agenten wird in einer Sandbox ausgeführt. Der Schlüssel der Hauptsitzung ist immeragent:<agentId>:main(oderglobal, wennsession.scopeden Wert"global"hat); er ist nicht konfigurierbar. Gruppen-/Kanalsitzungen verwenden eigene Schlüssel, gelten daher immer als Nicht-Hauptsitzungen und werden in einer Sandbox ausgeführt.all: Jede Sitzung wird in einer Sandbox ausgeführt.
Der Geltungsbereich steuert, wie viele Container/Umgebungen erstellt werden:
agent: ein Container pro Agent.session: ein Container pro Sitzung.shared: ein von allen Sandbox-Sitzungen gemeinsam genutzter Container (agentenspezifische Überschreibungen vondocker/ssh/browserwerden in diesem Geltungsbereich ignoriert).
Das Backend steuert, welche Laufzeitumgebung die Sandbox-Werkzeuge ausführt. SSH-spezifische Konfiguration befindet sich unter agents.defaults.sandbox.ssh; OpenShell-spezifische Konfiguration befindet sich unter plugins.entries.openshell.config.
| Docker | SSH | OpenShell | |
|---|---|---|---|
| Ausführungsort | Lokaler Container | Jeder per SSH erreichbare Host | Von OpenShell verwaltete Sandbox |
| Einrichtung | scripts/sandbox-setup.sh |
SSH-Schlüssel + Zielhost | OpenShell-Plugin aktiviert |
| Workspace-Modell | Bind-Mount oder Kopie | Remote-kanonisch (einmal initialisieren) | mirror oder remote |
| Netzwerksteuerung | docker.network (Standard: keines) |
Hängt vom Remote-Host ab | Hängt von OpenShell ab |
| Browser-Sandbox | Unterstützt | Nicht unterstützt | Noch nicht unterstützt |
| Bind-Mounts | docker.binds |
Nicht zutreffend | Nicht zutreffend |
| Am besten geeignet für | Lokale Entwicklung, vollständige Isolation | Auslagerung auf einen Remote-Rechner | Verwaltete Remote-Sandboxes mit optionaler bidirektionaler Synchronisierung |
Docker-Backend
Docker ist das standardmäßige Backend, sobald Sandboxing aktiviert ist. Es führt Werkzeuge und Sandbox-Browser lokal über den Socket des Docker-Daemons (/var/run/docker.sock) aus; die Isolation erfolgt durch Docker-Namespaces.
Standardwerte: network: "none" (kein ausgehender Datenverkehr), readOnlyRoot: true, capDrop: ["ALL"], Image openclaw-sandbox:bookworm-slim.
Um Host-GPUs bereitzustellen, setzen Sie agents.defaults.sandbox.docker.gpus (oder die agentenspezifische Überschreibung) auf einen Wert wie "all" oder "device=GPU-uuid". Dieser Wert wird an das Docker-Flag --gpus übergeben und erfordert eine kompatible Host-Laufzeitumgebung wie das NVIDIA Container Toolkit.
Browser in der Sandbox
- Der Sandbox-Browser wird automatisch gestartet (wodurch die Erreichbarkeit von CDP sichergestellt wird), wenn das Browser-Werkzeug ihn benötigt. Die Konfiguration erfolgt über
agents.defaults.sandbox.browser.autoStart(Standardwerttrue) undautoStartTimeoutMs(Standardwert 12s). - Sandbox-Browser-Container verwenden anstelle des globalen Netzwerks
bridgeein dediziertes Docker-Netzwerk (openclaw-sandbox-browser). Die Konfiguration erfolgt überagents.defaults.sandbox.browser.network. agents.defaults.sandbox.browser.cdpSourceRangebeschränkt den CDP-Zugriff am Container-Rand mit einer CIDR-Zulassungsliste (zum Beispiel172.21.0.1/32).- Der noVNC-Beobachterzugriff ist standardmäßig passwortgeschützt. OpenClaw gibt eine kurzlebige Token-URL aus, die eine lokale Bootstrap-Seite bereitstellt und noVNC mit dem Passwort im URL-Fragment öffnet (nicht in der Abfragezeichenfolge oder in Header-Protokollen).
agents.defaults.sandbox.browser.allowHostControl(Standardwertfalse) ermöglicht Sandbox-Sitzungen, ausdrücklich den Host-Browser als Ziel zu verwenden.- Optionale Zulassungslisten beschränken
target: "custom":allowedControlUrls,allowedControlHosts,allowedControlPorts.
SSH-Backend
Verwenden Sie backend: "ssh", um exec, Dateiwerkzeuge und das Lesen von Medien auf einem beliebigen per SSH erreichbaren Rechner in einer Sandbox auszuführen.
{ agents: { defaults: { sandbox: { mode: "all", backend: "ssh", scope: "session", workspaceAccess: "rw", ssh: { target: "user@gateway-host:22", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true, identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", // Oder verwenden Sie SecretRefs/Inline-Inhalte anstelle lokaler Dateien: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, }, }, }, },}Standardwerte: command: "ssh", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true.
- Lebenszyklus: OpenClaw erstellt unter
sandbox.ssh.workspaceRootein Remote-Stammverzeichnis pro Geltungsbereich. Bei der ersten Verwendung nach dem Erstellen oder Neuerstellen wird dieser Remote-Workspace einmalig mit dem lokalen Workspace initialisiert. Danach werdenexec,read,write,edit,apply_patch, das Lesen von Prompt-Medien und die Bereitstellung eingehender Medien über SSH direkt im Remote-Workspace ausgeführt. OpenClaw synchronisiert Remote-Änderungen nicht automatisch zurück in den lokalen Workspace. - Authentifizierungsmaterial:
identityFile/certificateFile/knownHostsFileverweisen auf vorhandene lokale Dateien.identityData/certificateData/knownHostsDataakzeptieren Inline-Zeichenfolgen oder SecretRefs, die über den normalen Laufzeit-Snapshot für Geheimnisse aufgelöst, mit dem Modus0600in temporäre Dateien geschrieben und beim Ende der SSH-Sitzung gelöscht werden. Wenn für dasselbe Element sowohl eine*File- als auch eine*Data-Variante festgelegt ist, hat*Datafür diese Sitzung Vorrang. - Folgen des Remote-kanonischen Modells: Nach der anfänglichen Initialisierung wird der Remote-SSH-Workspace zum tatsächlichen Sandbox-Zustand. Nach dem Initialisierungsschritt außerhalb von OpenClaw vorgenommene lokale Host-Änderungen sind remote erst sichtbar, wenn Sie die Sandbox neu erstellen.
openclaw sandbox recreatelöscht das Remote-Stammverzeichnis des jeweiligen Geltungsbereichs und initialisiert es bei der nächsten Verwendung erneut aus der lokalen Umgebung. Browser-Sandboxing wird von diesem Backend nicht unterstützt und die Einstellungen untersandbox.docker.*gelten dafür nicht.
OpenShell-Backend
Verwenden Sie backend: "openshell", um Werkzeuge in einer von OpenShell verwalteten Remote-Umgebung in einer Sandbox auszuführen. OpenShell verwendet denselben SSH-Transport und dieselbe Remote-Dateisystem-Bridge wie das generische SSH-Backend und ergänzt den OpenShell-Lebenszyklus (sandbox create/get/delete/ssh-config) sowie einen optionalen Modus zur Workspace-Synchronisierung über mirror.
{ agents: { defaults: { sandbox: { mode: "all", backend: "openshell", scope: "session", workspaceAccess: "rw", }, }, }, plugins: { entries: { openshell: { enabled: true, config: { from: "openclaw", mode: "remote", // spiegeln | remote }, }, }, },}mode: "mirror" (Standard) hält den lokalen Arbeitsbereich kanonisch: OpenClaw synchronisiert den lokalen Arbeitsbereich vor exec in die Sandbox und danach zurück. mode: "remote" befüllt den Remote-Arbeitsbereich einmalig aus dem lokalen Arbeitsbereich und führt anschließend exec/read/write/edit/apply_patch direkt im Remote-Arbeitsbereich aus, ohne zurückzusynchronisieren; lokale Änderungen nach der initialen Befüllung bleiben unsichtbar, bis Sie openclaw sandbox recreate. Unter scope: "agent" oder scope: "shared" wird dieser Remote-Arbeitsbereich im selben Geltungsbereich gemeinsam genutzt. Aktuelle Einschränkungen: Der Sandbox-Browser wird noch nicht unterstützt, und sandbox.docker.binds gilt nicht für dieses Backend.
openclaw sandbox list/recreate/prune behandeln OpenShell-Laufzeitumgebungen genauso wie Docker-Laufzeitumgebungen; die Bereinigungslogik berücksichtigt das Backend.
Die vollständigen Voraussetzungen, die Konfigurationsreferenz, den Vergleich der Arbeitsbereichsmodi und Details zum Lebenszyklus finden Sie unter OpenShell.
Zugriff auf den Arbeitsbereich
agents.defaults.sandbox.workspaceAccess steuert, was die Sandbox sehen kann:
| Wert | Verhalten |
|---|---|
none (Standard) |
Tools sehen einen isolierten Sandbox-Arbeitsbereich unter ~/.openclaw/sandboxes. |
ro |
Bindet den Agenten-Arbeitsbereich schreibgeschützt unter /agent ein (deaktiviert write/edit/apply_patch). |
rw |
Bindet den Agenten-Arbeitsbereich mit Lese-/Schreibzugriff unter /workspace ein. |
Mit dem OpenShell-Backend verwendet der Modus mirror weiterhin den lokalen Arbeitsbereich als kanonische Quelle zwischen Ausführungen, der Modus remote verwendet nach der initialen Befüllung den Remote-OpenShell-Arbeitsbereich als kanonische Quelle, und workspaceAccess: "ro"/"none" beschränken das Schreibverhalten weiterhin auf dieselbe Weise.
Eingehende Medien werden in den aktiven Sandbox-Arbeitsbereich kopiert (media/inbound/*).
Mehrere Ordner für einen Agenten
Verwenden Sie Docker-Bind-Mounts, wenn ein in einer Sandbox ausgeführter Agent mehr als seinen primären Arbeitsbereich benötigt. Jeder Eintrag ordnet einen Host-Ordner mit einem expliziten Zugriffsmodus einem Container-Pfad zu:
host-directory:container-directory:rohost-directory:container-directory:rwromacht den eingebundenen Ordner innerhalb der Sandbox schreibgeschützt.rwerlaubt Tools und Prozessen in der Sandbox, den Host-Ordner zu ändern.- Der Container-Pfad ist der Pfad, den der Agent verwendet. Host-Pfade werden nicht automatisch offengelegt.
Dieses Beispiel gibt dem Agenten research einen beschreibbaren primären Arbeitsbereich, schreibgeschütztes Referenzmaterial unter /reference und einen separaten beschreibbaren Ausgabeordner unter /drafts:
{ agents: { defaults: { sandbox: { mode: "all", scope: "agent", }, }, list: [ { id: "research", workspace: "/srv/openclaw/research-workspace", sandbox: { workspaceAccess: "rw", docker: { binds: ["/srv/shared/reference:/reference:ro", "/srv/shared/drafts:/drafts:rw"], // Erforderlich, da sich diese Quellen außerhalb des Agenten-Arbeitsbereichs befinden. dangerouslyAllowExternalBindSources: true, }, }, }, ], },}workspaceAccess und Bind-Modi sind unabhängig voneinander:
| Einstellung | Steuert |
|---|---|
workspaceAccess: "none" |
Verwendet einen isolierten Sandbox-Arbeitsbereich; legt den Agenten-Arbeitsbereich nicht offen. |
workspaceAccess: "ro" |
Bindet den Agenten-Arbeitsbereich schreibgeschützt unter /agent ein. |
workspaceAccess: "rw" |
Bindet den Agenten-Arbeitsbereich mit Lese-/Schreibzugriff unter /workspace ein. |
docker.binds-Eintrag :ro/:rw |
Steuert nur diesen zusätzlichen Host-Ordner an seinem konfigurierten Container-Pfad. |
Das Ändern von workspaceAccess ändert eine zusätzliche Bind-Einbindung nicht von ro zu rw oder umgekehrt. Globale und agentenspezifische docker.binds werden zusammengeführt. Behalten Sie scope: "agent" oder "session" für agentenspezifische Bind-Einbindungen bei; scope: "shared" ignoriert alle agentenspezifischen Docker-Überschreibungen und verwendet ausschließlich globale Bind-Einbindungen.
Bind-Mounts sind die unterstützte Grenze für mehrere Ordner, da Docker die Dateisystemansicht des Containers mit Mount-Isolierung erstellt und der Modus ro/rw für jeden Prozess in der Sandbox gilt. Diese Grenze umfasst exec, Dateisystem-Tools, untergeordnete Prozesse und Bibliotheken, ohne Pfadautorisierungsprüfungen in jedem OpenClaw-Codepfad zu duplizieren. Eine hostseitige Pfad-Zulassungsliste kann nicht dieselbe vollständige Grenze bieten, wenn eine zugelassene Shell oder Abhängigkeit direkt auf Dateien zugreifen kann.
Die optionale Einstellung dangerouslyAllowExternalBindSources erlaubt nur Quellen außerhalb der Arbeitsbereichswurzeln. Sie deaktiviert nicht die Prüfungen von OpenClaw auf blockierte Systempfade, Anmeldedaten, Docker-Sockets, Symlink-Elternpfade oder reservierte Ziele. Bevorzugen Sie den kleinstmöglichen Ordner, verwenden Sie ro, sofern kein Schreibzugriff erforderlich ist, und erstellen Sie die Sandbox nach Änderungen an den Einbindungen neu:
openclaw sandbox recreate --agent researchWeiteres Verhalten von Bind-Einbindungen
agents.defaults.sandbox.docker.binds konfiguriert globale Einbindungen. Das Format entspricht derselben Form host:container:mode (zum Beispiel "/home/user/source:/source:rw").
agents.defaults.sandbox.browser.binds bindet zusätzliche Host-Verzeichnisse ausschließlich in den Container des Sandbox-Browsers ein. Wenn diese Einstellung gesetzt ist (einschließlich []), ersetzt sie docker.binds für den Browser-Container; wenn sie nicht gesetzt ist, greift der Browser-Container auf docker.binds zurück.
{ agents: { defaults: { sandbox: { docker: { binds: ["/home/user/source:/source:ro", "/var/data/myapp:/data:ro"], }, }, }, list: [ { id: "build", sandbox: { docker: { binds: ["/mnt/cache:/cache:rw"], }, }, }, ], },}Images und Einrichtung
Standardmäßiges Docker-Image: openclaw-sandbox:bookworm-slim
Standard-Image erstellen
Aus einem Quellcode-Checkout:
scripts/sandbox-setup.shAus einer npm-Installation (kein Quellcode-Checkout erforderlich):
docker build -t openclaw-sandbox:bookworm-slim - <<'DOCKERFILE'FROM debian:bookworm-slimENV DEBIAN_FRONTEND=noninteractiveRUN apt-get update && apt-get install -y --no-install-recommends \ bash ca-certificates curl git jq python3 ripgrep \ && rm -rf /var/lib/apt/lists/*RUN useradd --create-home --shell /bin/bash sandboxUSER sandboxWORKDIR /home/sandboxCMD ["sleep", "infinity"]DOCKERFILEDas Standard-Image enthält kein Node. Wenn ein Skill Node (oder andere Laufzeitumgebungen) benötigt, erstellen Sie entweder ein benutzerdefiniertes Image oder installieren Sie es über sandbox.docker.setupCommand (erfordert ausgehenden Netzwerkzugriff, eine beschreibbare Root-Dateisystemebene und den Root-Benutzer).
OpenClaw ersetzt fehlendes openclaw-sandbox:bookworm-slim nicht stillschweigend durch einfaches debian:bookworm-slim. Sandbox-Ausführungen, die auf das Standard-Image abzielen, schlagen frühzeitig mit einer Erstellungsanweisung fehl, bis Sie es erstellt haben, da das gebündelte Image python3 für die Schreib- und Bearbeitungshilfen der Sandbox enthält.
Optional: Allgemeines Image erstellen
Für ein funktionsreicheres Sandbox-Image mit gängigen Tools (zum Beispiel curl, jq, Node 24, pnpm, python3 und git):
Aus einem Quellcode-Checkout:
scripts/sandbox-common-setup.shErstellen Sie bei einer npm-Installation zunächst das Standard-Image (siehe oben) und anschließend das allgemeine Image darauf aufbauend mithilfe von scripts/docker/sandbox/Dockerfile.common aus dem Repository.
Setzen Sie anschließend agents.defaults.sandbox.docker.image auf openclaw-sandbox-common:bookworm-slim.
Optional: Image für den Sandbox-Browser erstellen
Aus einem Quellcode-Checkout:
scripts/sandbox-browser-setup.shErstellen Sie es bei einer npm-Installation mithilfe von scripts/docker/sandbox/Dockerfile.browser aus dem Repository.
Standardmäßig werden Docker-Sandbox-Container ohne Netzwerk ausgeführt. Überschreiben Sie dies mit agents.defaults.sandbox.docker.network.
Chromium-Standardeinstellungen des Sandbox-Browsers
Das gebündelte Sandbox-Browser-Image verwendet konservative Chromium-Startoptionen für containerisierte Arbeitslasten:
--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-dev-shm-usage--disable-background-networking--disable-breakpad--disable-crash-reporter--no-zygote--metrics-recording-only--password-store=basic--use-mock-keychain--headless=new, wennbrowser.headlessaktiviert ist.--no-sandbox --disable-setuid-sandbox, wennbrowser.noSandboxaktiviert ist.--disable-3d-apis,--disable-gpu,--disable-software-rasterizerstandardmäßig; diese Flags zur Härtung der Grafikausgabe unterstützen Container ohne GPU-Unterstützung. Legen SieOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0fest, wenn Ihre Arbeitslast WebGL oder andere 3D-Funktionen benötigt.--disable-extensionsstandardmäßig; legen Sie für Abläufe, die Erweiterungen benötigen,OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0fest.--renderer-process-limit=2standardmäßig; gesteuert durchOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>, wobei0den Standardwert von Chromium beibehält.
Wenn Sie ein anderes Laufzeitprofil benötigen, verwenden Sie ein benutzerdefiniertes Browser-Image und stellen Sie einen eigenen Einstiegspunkt bereit. Verwenden Sie für lokale Chromium-Profile (außerhalb von Containern) browser.extraArgs, um zusätzliche Start-Flags anzuhängen.
Standardeinstellungen für die Netzwerksicherheit
network: "host"ist blockiert.network: "container:<id>"ist standardmäßig blockiert (Risiko einer Umgehung durch Beitritt zum Namespace).- Notfallübersteuerung:
agents.defaults.sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true.
Docker-Installationen und das containerisierte Gateway finden Sie hier: Docker
Bei Docker-Gateway-Bereitstellungen kann scripts/docker/setup.sh die Sandbox-Konfiguration initialisieren. Legen Sie OPENCLAW_SANDBOX=1 (oder true/yes/on) fest, um diesen Pfad zu aktivieren. Überschreiben Sie den Speicherort des Sockets mit OPENCLAW_DOCKER_SOCKET. Vollständige Einrichtung und Umgebungsvariablenreferenz: Docker.
setupCommand (einmalige Container-Einrichtung)
setupCommand wird einmal ausgeführt, nachdem der Sandbox-Container erstellt wurde (nicht bei jeder Ausführung). Der Befehl wird innerhalb des Containers über sh -lc ausgeführt.
Pfade:
- Global:
agents.defaults.sandbox.docker.setupCommand - Pro Agent:
agents.entries.*.sandbox.docker.setupCommand
Häufige Fallstricke
- Der Standardwert von
docker.networkist"none"(kein ausgehender Netzwerkverkehr), daher schlagen Paketinstallationen fehl. docker.network: "container:<id>"erfordertdangerouslyAllowContainerNamespaceJoin: trueund ist nur für Notfälle vorgesehen.readOnlyRoot: trueverhindert Schreibvorgänge; legen SiereadOnlyRoot: falsefest oder erstellen Sie ein benutzerdefiniertes Image.usermuss für Paketinstallationen root sein (lassen Sieuserweg oder legen Sieuser: "0:0"fest).- Die Sandbox-Ausführung übernimmt
process.envdes Hosts nicht. Verwenden Sieagents.defaults.sandbox.docker.env(oder ein benutzerdefiniertes Image) für API-Schlüssel von Skills. - Werte in
agents.defaults.sandbox.docker.envwerden als explizite Umgebungsvariablen des Docker-Containers übergeben. Jeder mit Zugriff auf den Docker-Daemon kann sie mit Docker-Metadatenbefehlen wiedocker inspecteinsehen. Verwenden Sie ein benutzerdefiniertes Image, eine eingebundene Secret-Datei oder einen anderen Übermittlungsweg für Secrets, wenn diese Offenlegung über Metadaten nicht akzeptabel ist.
Tool-Richtlinien und Ausweichmöglichkeiten
Zulassungs-/Ablehnungsrichtlinien für Tools gelten weiterhin vor den Sandbox-Regeln. Wenn ein Tool global oder für einen Agenten abgelehnt wird, stellt die Sandbox es nicht wieder bereit.
tools.elevated ist eine explizite Ausweichmöglichkeit, die exec außerhalb der Sandbox ausführt (standardmäßig gateway oder node, wenn das Ausführungsziel node ist). /exec-Direktiven gelten nur für autorisierte Absender und bleiben sitzungsbezogen bestehen; um exec vollständig zu deaktivieren, verwenden Sie die Ablehnungsrichtlinie für Tools (siehe Sandbox im Vergleich zu Tool-Richtlinien und erhöhten Berechtigungen).
Fehlerdiagnose:
openclaw sandbox listzeigt Sandbox-Container, Status, Image-Übereinstimmung, Alter, Leerlaufzeit und die zugehörige Sitzung bzw. den zugehörigen Agenten an.openclaw sandbox explain [--session <key>] [--agent <id>]prüft den effektiven Sandbox-Modus, den Host-Arbeitsbereich, das Laufzeit-Arbeitsverzeichnis, Docker-Einbindungen, Tool-Richtlinien und Konfigurationsschlüssel zur Problembehebung. Das FeldworkspaceRootenthält weiterhin das konfigurierte Sandbox-Stammverzeichnis;effectiveHostWorkspaceRootzeigt, wo sich der aktive Arbeitsbereich tatsächlich befindet.openclaw sandbox recreate [--all | --session <key> | --agent <id>] [--browser] [--force]entfernt Container/Umgebungen, damit sie bei der nächsten Verwendung mit der aktuellen Konfiguration neu erstellt werden.- Unter Sandbox im Vergleich zu Tool-Richtlinien und erhöhten Berechtigungen finden Sie ein Denkmodell für die Frage „Warum ist dies blockiert?“.
Überschreibungen für mehrere Agenten
Jeder Agent kann Sandbox und Tools überschreiben: agents.entries.*.sandbox und agents.entries.*.tools (sowie agents.entries.*.tools.sandbox.tools für die Sandbox-Tool-Richtlinie). Informationen zur Rangfolge finden Sie unter Sandbox und Tools für mehrere Agenten.
Minimales Aktivierungsbeispiel
{ agents: { defaults: { sandbox: { mode: "non-main", scope: "session", workspaceAccess: "none", }, }, },}Verwandte Themen
- Sandbox und Tools für mehrere Agenten -- Überschreibungen pro Agent und Rangfolge
- OpenShell -- Einrichtung des verwalteten Sandbox-Backends, Arbeitsbereichsmodi und Konfigurationsreferenz
- Sandbox-Konfiguration
- Sandbox im Vergleich zu Tool-Richtlinien und erhöhten Berechtigungen -- Fehlerdiagnose für „Warum ist dies blockiert?“
- Sicherheit