Sandbox va Tool Policy hamda Elevated o‘rtasidagi farq
OpenClaw’da uchta bog‘liq (lekin turli) boshqaruv mavjud:- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) tool’lar qayerda ishlashini belgilaydi (Docker vs host). - Tool policy (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) qaysi tool’lar mavjud/ruxsat etilganini belgilaydi. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) sandbox holatida host’da ishga tushirish uchun faqat exec’ga oid chiqish yo‘lidir.
Tezkor debug
Inspector’dan OpenClaw aslida nima qilayotganini ko‘rish uchun foydalaning:- samarali sandbox rejimi/doirasi/workspace kirishi
- sessiya hozir sandboxlanganmi (main vs non-main)
- samarali sandbox tool allow/deny (va u agent/global/default’dan kelgan-kelmaganini)
- elevated gate’lar va tuzatish uchun kalit yo‘llari
Sandbox: tool’lar qayerda ishlaydi
Sandboxingagents.defaults.sandbox.mode orqali boshqariladi:
"off": hammasi host’da ishlaydi."non-main": faqat non-main sessiyalar sandboxlanadi (guruhlar/kanallar uchun keng tarqalgan “kutilmagan holat”)."all": hammasi sandboxlanadi.
Bind mount’lar (xavfsizlik uchun tezkor tekshiruv)
docker.bindssandbox fayl tizimini teshib o‘tadi: siz mount qilgan hamma narsa konteyner ichida belgilagan rejimingiz bilan (:royoki:rw) ko‘rinadi.- Agar rejimni ko‘rsatmasangiz, standart holat o‘qish-yozishdir; manba/kirish ma’lumotlari uchun
:roni afzal ko‘ring. scope: "shared"per-agent bind’larni e’tiborsiz qoldiradi (faqat global bind’lar qo‘llanadi)./var/run/docker.sockni bind qilish amalda host boshqaruvini sandbox’ga topshiradi; buni faqat ongli ravishda bajaring.- Workspace kirishi (
workspaceAccess: "ro"/"rw") bind rejimlaridan mustaqil.
Tool policy: qaysi tool’lar mavjud/chaqirilishi mumkin
Ikki qatlam muhim:- Tool profili:
tools.profilevaagents.list[].tools.profile(asosiy ruxsat berilganlar ro‘yxati) - Provider tool profili:
tools.byProvider[provider].profilevaagents.list[].tools.byProvider[provider].profile - Global/per-agent tool siyosati:
tools.allow/tools.denyvaagents.list[].tools.allow/agents.list[].tools.deny - Provider tool siyosati:
tools.byProvider[provider].allow/denyvaagents.list[].tools.byProvider[provider].allow/deny - Sandbox tool siyosati (faqat sandbox holatida qo‘llaniladi):
tools.sandbox.tools.allow/tools.sandbox.tools.denyvaagents.list[].tools.sandbox.tools.*
denyhar doim ustun turadi.- If
allowis non-empty, everything else is treated as blocked. - Tool policy is the hard stop:
/execcannot override a deniedexectool. /execonly changes session defaults for authorized senders; it does not grant tool access. Provider tool keys accept eitherprovider(e.g.google-antigravity) orprovider/model(e.g.openai/gpt-5.2).
Tool groups (shorthands)
Tool policies (global, agent, sandbox) supportgroup:* entries that expand to multiple tools:
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: all built-in OpenClaw tools (excludes provider plugins)
Elevated: exec-only “run on host”
Elevated does not grant extra tools; it only affectsexec.
- If you’re sandboxed,
/elevated on(orexecwithelevated: true) runs on the host (approvals may still apply). - Use
/elevated fullto skip exec approvals for the session. - If you’re already running direct, elevated is effectively a no-op (still gated).
- Elevated is not skill-scoped and does not override tool allow/deny.
/execis separate from elevated. It only adjusts per-session exec defaults for authorized senders.
- Enablement:
tools.elevated.enabled(and optionallyagents.list[].tools.elevated.enabled) - Sender allowlists:
tools.elevated.allowFrom.<provider>(and optionallyagents.list[].tools.elevated.allowFrom.<provider>)
Common “sandbox jail” fixes
“Tool X blocked by sandbox tool policy”
Fix-it keys (pick one):- Disable sandbox:
agents.defaults.sandbox.mode=off(or per-agentagents.list[].sandbox.mode=off) - Allow the tool inside sandbox:
- remove it from
tools.sandbox.tools.deny(or per-agentagents.list[].tools.sandbox.tools.deny) - or add it to
tools.sandbox.tools.allow(or per-agent allow)
- remove it from
“I thought this was main, why is it sandboxed?”
In"non-main" mode, group/channel keys are not main. Use the main session key (shown by sandbox explain) or switch mode to "off".