Sandbox vs Política de herramientas vs Elevado
OpenClaw tiene tres controles relacionados (pero diferentes):- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) decide dónde se ejecutan las herramientas (Docker vs host). - Política de herramientas (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) decide qué herramientas están disponibles/permitidas. - Elevado (
tools.elevated.*,agents.list[].tools.elevated.*) es una vía de escape solo para exec para ejecutar en el host cuando usted está en sandbox.
Depuración rápida
Use el inspector para ver lo que OpenClaw está realmente haciendo:- modo/alcance/acceso al workspace efectivos del sandbox
- si la sesión está actualmente en sandbox (principal vs no principal)
- permitir/denegar efectivo de herramientas en sandbox (y si provino de agente/global/predeterminado)
- compuertas de elevado y rutas de claves para corregir
Sandbox: dónde se ejecutan las herramientas
El sandboxing se controla conagents.defaults.sandbox.mode:
"off": todo se ejecuta en el host."non-main": solo las sesiones no principales están en sandbox (sorpresa común para grupos/canales)."all": todo está en sandbox.
Bind mounts (verificación rápida de seguridad)
docker.bindsatraviesa el sistema de archivos del sandbox: lo que usted monte es visible dentro del contenedor con el modo que establezca (:roo:rw).- El valor predeterminado es lectura-escritura si omite el modo; prefiera
:ropara código fuente/secretos. scope: "shared"ignora los binds por agente (solo aplican los binds globales).- Vincular
/var/run/docker.sockefectivamente entrega el control del host al sandbox; hágalo solo de forma intencional. - El acceso al workspace (
workspaceAccess: "ro"/"rw") es independiente de los modos de bind.
Política de herramientas: qué herramientas existen/son invocables
Dos capas importan:- Perfil de herramientas:
tools.profileyagents.list[].tools.profile(lista de permitidos base) - Perfil de herramientas del proveedor:
tools.byProvider[provider].profileyagents.list[].tools.byProvider[provider].profile - Política de herramientas global/por agente:
tools.allow/tools.denyyagents.list[].tools.allow/agents.list[].tools.deny - Política de herramientas del proveedor:
tools.byProvider[provider].allow/denyyagents.list[].tools.byProvider[provider].allow/deny - Política de herramientas del sandbox (solo aplica cuando está en sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denyyagents.list[].tools.sandbox.tools.*
denysiempre gana.- Si
allowno está vacío, todo lo demás se trata como bloqueado. - La política de herramientas es el tope duro:
/execno puede anular una herramientaexecdenegada. /execsolo cambia los valores predeterminados de la sesión para remitentes autorizados; no otorga acceso a herramientas. Las claves de herramientas del proveedor aceptanprovider(p. ej.,google-antigravity) oprovider/model(p. ej.,openai/gpt-5.2).
Grupos de herramientas (atajos)
Las políticas de herramientas (global, agente, sandbox) admiten entradasgroup:* que se expanden a múltiples herramientas:
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: todas las herramientas integradas de OpenClaw (excluye plugins de proveedores)
Elevado: “ejecutar en el host” solo para exec
Elevado no otorga herramientas adicionales; solo afecta aexec.
- Si usted está en sandbox,
/elevated on(oexecconelevated: true) se ejecuta en el host (pueden seguir aplicando aprobaciones). - Use
/elevated fullpara omitir aprobaciones de exec para la sesión. - Si ya está ejecutando directo, elevado es efectivamente un no-op (sigue estando controlado).
- Elevado no está acotado por skill y no anula permitir/denegar de herramientas.
/execes independiente de elevado. Solo ajusta los valores predeterminados de exec por sesión para remitentes autorizados.
- Habilitación:
tools.elevated.enabled(y opcionalmenteagents.list[].tools.elevated.enabled) - Listas de permitidos de remitentes:
tools.elevated.allowFrom.<provider>(y opcionalmenteagents.list[].tools.elevated.allowFrom.<provider>)
Correcciones comunes de “sandbox jail”
“La herramienta X está bloqueada por la política de herramientas del sandbox”
Claves para corregir (elija una):- Deshabilitar sandbox:
agents.defaults.sandbox.mode=off(o por agenteagents.list[].sandbox.mode=off) - Permitir la herramienta dentro del sandbox:
- eliminarla de
tools.sandbox.tools.deny(o por agenteagents.list[].tools.sandbox.tools.deny) - o agregarla a
tools.sandbox.tools.allow(o permitir por agente)
- eliminarla de
“Pensé que esto era principal, ¿por qué está en sandbox?”
En el modo"non-main", las claves de grupo/canal no son principales. Use la clave de sesión principal (mostrada por sandbox explain) o cambie el modo a "off".