Sandbox vs Zasady narzędzi vs Tryb podwyższony
OpenClaw ma trzy powiązane (ale różne) mechanizmy kontroli:- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) decyduje, gdzie uruchamiane są narzędzia (Docker vs host). - Polityka narzędzi (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) decyduje, które narzędzia są dostępne/dozwolone. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) to wyłącznie dla exec „wyjście awaryjne”, pozwalające uruchamiać na hoście, gdy jesteś w sandboxie.
Szybkie debugowanie
Użyj inspektora, aby zobaczyć, co OpenClaw faktycznie robi:- efektywny tryb/zakres sandboxa/dostęp do obszaru roboczego
- czy sesja jest obecnie sandboxowana (main vs non-main)
- efektywne allow/deny narzędzi w sandboxie (oraz czy pochodzi z agenta/globalnych/dom yślnych)
- bramki elevated oraz ścieżki kluczy „fix-it”
Sandbox: gdzie uruchamiane są narzędzia
Sandboxing jest kontrolowany przezagents.defaults.sandbox.mode:
"off": wszystko działa na hoście."non-main": tylko sesje non-main są sandboxowane (częsta „niespodzianka” dla grup/kanałów)."all": wszystko jest sandboxowane.
Montowania bind (szybka kontrola bezpieczeństwa)
docker.bindsprzebija system plików sandboxa: wszystko, co zamontujesz, jest widoczne wewnątrz kontenera z ustawionym trybem (:rolub:rw).- Domyślnie jest tryb odczyt-zapis, jeśli pominiesz tryb; preferuj
:rodla źródeł/tajemnic. scope: "shared"ignoruje bindy per-agent (obowiązują tylko bindy globalne).- Bindowanie
/var/run/docker.sockw praktyce oddaje kontrolę hosta sandboxowi; rób to tylko świadomie. - Dostęp do obszaru roboczego (
workspaceAccess: "ro"/"rw") jest niezależny od trybów bind.
Polityka narzędzi: które narzędzia istnieją/są wywoływalne
Znaczenie mają dwie warstwy:- Profil narzędzi:
tools.profileiagents.list[].tools.profile(bazowa lista dozwolonych) - Profil narzędzi dostawcy:
tools.byProvider[provider].profileiagents.list[].tools.byProvider[provider].profile - Globalna/per-agent polityka narzędzi:
tools.allow/tools.denyorazagents.list[].tools.allow/agents.list[].tools.deny - Polityka narzędzi dostawcy:
tools.byProvider[provider].allow/denyiagents.list[].tools.byProvider[provider].allow/deny - Polityka narzędzi sandboxa (obowiązuje tylko w sandboxie):
tools.sandbox.tools.allow/tools.sandbox.tools.denyorazagents.list[].tools.sandbox.tools.*
denyzawsze wygrywa.- Jeśli
allowjest niepuste, wszystko inne jest traktowane jako zablokowane. - Polityka narzędzi to twarda bariera:
/execnie może nadpisać odmowy narzędziaexec. /execzmienia tylko domyślne ustawienia sesji dla autoryzowanych nadawców; nie przyznaje dostępu do narzędzi. Klucze narzędzi dostawcy akceptują alboprovider(np.google-antigravity), alboprovider/model(np.openai/gpt-5.2).
Grupy narzędzi (skróty)
Polityki narzędzi (globalne, per-agent, sandbox) obsługują wpisygroup:*, które rozwijają się do wielu narzędzi:
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: wszystkie wbudowane narzędzia OpenClaw (z wyłączeniem wtyczek dostawców)
Elevated: exec-only „uruchom na hoście”
Elevated nie przyznaje dodatkowych narzędzi; wpływa wyłącznie naexec.
- Jeśli jesteś w sandboxie,
/elevated on(lubexeczelevated: true) uruchamia się na hoście (zatwierdzenia mogą nadal obowiązywać). - Użyj
/elevated full, aby pominąć zatwierdzenia exec dla sesji. - Jeśli już działasz bezpośrednio, elevated jest w praktyce no-op (nadal objęte bramkami).
- Elevated nie jest ograniczone zakresem Skills i nie nadpisuje allow/deny narzędzi.
/execjest niezależne od elevated. Koryguje jedynie domyślne ustawienia exec per sesję dla autoryzowanych nadawców.
- Włączenie:
tools.elevated.enabled(i opcjonalnieagents.list[].tools.elevated.enabled) - Listy dozwolonych nadawców:
tools.elevated.allowFrom.<provider>(i opcjonalnieagents.list[].tools.elevated.allowFrom.<provider>)
Typowe poprawki „sandbox jail”
„Narzędzie X zablokowane przez politykę narzędzi sandboxa”
Klucze naprawcze (wybierz jeden):- Wyłącz sandbox:
agents.defaults.sandbox.mode=off(lub per-agentagents.list[].sandbox.mode=off) - Zezwól na narzędzie w sandboxie:
- usuń je z
tools.sandbox.tools.deny(lub per-agentagents.list[].tools.sandbox.tools.deny) - albo dodaj je do
tools.sandbox.tools.allow(lub per-agent allow)
- usuń je z
„Myślałem, że to main — dlaczego jest sandboxowane?”
W trybie"non-main" klucze grup/kanałów nie są main. Użyj klucza sesji main (pokazanego przez sandbox explain) albo przełącz tryb na "off".