Configuración de Sandbox y Herramientas para Multi-Agentes
Seguro que te ha pasado: empiezas con un agente para todo y de repente te das cuenta de que darle acceso total a tu sistema no es buena idea. Quizás quieres un asistente personal con permisos totales, pero necesitas que el bot que interactúa con tu familia o clientes esté totalmente limitado.
Gestionar estos niveles de seguridad suele ser un dolor de cabeza cuando las configuraciones se mezclan. La mejor solución es separar las responsabilidades: define qué puede tocar cada agente y dónde puede ejecutarse sin comprometer tu máquina local.
Requisitos previos
Sección titulada «Requisitos previos»- Directorio
agentDirconfigurado para cada agente. - Archivos
auth-profiles.jsonindependientes (las credenciales no se comparten). - Docker instalado para el aislamiento de procesos.
- CLI de OpenClaw actualizado.
Inicio rápido
Sección titulada «Inicio rápido»Configurar un entorno multi-agente con diferentes perfiles de seguridad te llevará menos de 5 minutos. Solo tienes que definir el sandbox y las tools dentro de tu configuración de agentes.
1. Agente Personal vs. Agente Restringido
Sección titulada «1. Agente Personal vs. Agente Restringido»En este ejemplo, el agente main tiene acceso total al host, mientras que el agente family corre dentro de Docker y solo puede leer archivos.
{ "agents": { "list": [ { "id": "main", "default": true, "name": "Personal Assistant", "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } }, { "id": "family", "name": "Family Bot", "workspace": "~/.openclaw/workspace-family", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch", "process", "browser"] } } ] }, "bindings": [ { "agentId": "family", "match": { "provider": "whatsapp", "accountId": "*", "peer": { "kind": "group", "id": "120363424282127706@g.us" } } } ]}2. Sandbox compartido para trabajo
Sección titulada «2. Sandbox compartido para trabajo»Si prefieres que varios agentes de una misma categoría compartan un entorno, usa el modo shared.
{ "agents": { "list": [ { "id": "personal", "workspace": "~/.openclaw/workspace-personal", "sandbox": { "mode": "off" } }, { "id": "work", "workspace": "~/.openclaw/workspace-work", "sandbox": { "mode": "all", "scope": "shared", "workspaceRoot": "/tmp/work-sandboxes" }, "tools": { "allow": ["read", "write", "apply_patch", "exec"], "deny": ["browser", "gateway", "discord"] } } ] }}Prioridad de Configuración
Sección titulada «Prioridad de Configuración»Cuando defines opciones globales en agents.defaults y opciones específicas en agents.list[], las del agente siempre mandan.
Sandbox
Sección titulada «Sandbox»La configuración del agente sobresale sobre la global en este orden:
agents.list[].sandbox.mode>agents.defaults.sandbox.modeagents.list[].sandbox.scope>agents.defaults.sandbox.scope
Herramientas (Tool Groups)
Sección titulada «Herramientas (Tool Groups)»Puedes usar atajos para restringir grupos de herramientas rápidamente:
group:runtime: incluyeexec,bash,process.group:fs: incluyeread,write,edit,apply_patch.group:ui: incluyebrowser,canvas.group:messaging: incluyemessage.
Testing
Sección titulada «Testing»Una vez configurado, verifica que todo funcione correctamente con estos comandos:
-
Revisa la resolución de agentes:
Ventana de terminal openclaw agents list --bindings -
Verifica los contenedores de Docker:
Ventana de terminal docker ps --filter "name=openclaw-sbx-" -
Prueba las restricciones: Envía un mensaje que requiera una herramienta bloqueada y confirma que el agente no puede ejecutarla.
-
Monitorea los logs:
Ventana de terminal tail -f "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/logs/gateway.log" | grep -E "routing|sandbox|tools"
Solución de problemas
Sección titulada «Solución de problemas»El agente no entra en sandbox a pesar de mode: "all"
Sección titulada «El agente no entra en sandbox a pesar de mode: "all"»- Revisa si hay un
agents.defaults.sandbox.modeglobal que esté causando conflicto. - Asegúrate de que el ID del agente en
agents.list[]coincida exactamente con el que estás usando.
Las herramientas siguen disponibles tras usar deny
Sección titulada «Las herramientas siguen disponibles tras usar deny»- Verifica el orden de filtrado: Global → Agente → Sandbox → Subagente.
- Revisa los logs buscando la línea
[tools] filtering tools for agent:${agentId}para ver qué política se está aplicando.
El contenedor no está aislado por agente
Sección titulada «El contenedor no está aislado por agente»- Configura
scope: "agent"en la sección de sandbox del agente. - Si usas el valor por defecto
"session", se creará un contenedor nuevo por cada sesión de chat.
Error con el modo “non-main”
Sección titulada «Error con el modo “non-main”»- Recuerda que
non-mainse basa ensession.mainKey, no en el ID del agente. - Si quieres que un agente nunca use sandbox, pon
mode: "off"explícitamente.
Próximos pasos
Sección titulada «Próximos pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.