Aislamiento
Aislamiento frente a política de herramientas frente a modo elevado
Modo elevado
Ejemplos de configuración
Ejemplo 1: Agente personal + agente familiar restringido
Ejemplo 1: Agente personal + agente familiar restringido
- Agente
main: se ejecuta en el host, con acceso completo a las herramientas. - Agente
family: se ejecuta en Docker (un contenedor por agente), soloready envíos de mensajes en la conversación actual.
Ejemplo 2: Agente de trabajo con aislamiento compartido
Ejemplo 2: Agente de trabajo con aislamiento compartido
Ejemplo 2b: Perfil global de programación + agente solo de mensajería
Ejemplo 2b: Perfil global de programación + agente solo de mensajería
- Los agentes predeterminados obtienen herramientas de programación.
- El agente
supportes solo de mensajería (+ herramienta de Slack).
Ejemplo 3: Distintos modos de aislamiento por agente
Ejemplo 3: Distintos modos de aislamiento por agente
Precedencia de la configuración
Cuando existen tanto configuraciones globales (agents.defaults.*) como específicas del agente (agents.entries.*.*):
Configuración del aislamiento
La configuración específica del agente reemplaza la global:agents.entries.*.sandbox.{docker,browser,prune}.* reemplaza agents.defaults.sandbox.{docker,browser,prune}.* para ese agente (se ignora cuando el ámbito del aislamiento se resuelve como "shared").Restricciones de herramientas
El orden de filtrado es:Perfil de herramientas
tools.profile o agents.entries.*.tools.profile.Perfil de herramientas del proveedor
tools.byProvider[provider].profile o agents.entries.*.tools.byProvider[provider].profile.Política global de herramientas
tools.allow / tools.deny.Política de herramientas del proveedor
tools.byProvider[provider].allow/deny.Política de herramientas específica del agente
agents.entries.*.tools.allow/deny.Política del proveedor del agente
agents.entries.*.tools.byProvider[provider].allow/deny.Política de herramientas del aislamiento
tools.sandbox.tools o agents.entries.*.tools.sandbox.tools.Política de herramientas del subagente
tools.subagents.tools, si corresponde.Reglas de precedencia
Reglas de precedencia
- Cada nivel puede restringir aún más las herramientas, pero no puede volver a conceder herramientas denegadas en niveles anteriores.
- Si se establece
agents.entries.*.tools.sandbox.tools, reemplazatools.sandbox.toolspara ese agente. - Si se establece
agents.entries.*.tools.profile, reemplazatools.profilepara ese agente. - Las claves de herramientas del proveedor aceptan
provider(por ejemplo,google-antigravity) oprovider/model(por ejemplo,openai/gpt-5.4).
Comportamiento de una lista de permitidos vacía
Comportamiento de una lista de permitidos vacía
agents.entries.*.tools.allow: ["query_db"] debe fallar de forma explícita hasta que se habilite el plugin que registra query_db, en lugar de continuar como agente solo de texto.group:* que se expanden a varias herramientas. Consulte Grupos de herramientas para ver la lista completa.
Las sustituciones elevadas por agente (agents.entries.*.tools.elevated) pueden restringir aún más la ejecución elevada para agentes específicos. Consulte Modo elevado para obtener más información.
Migración desde un único agente
- Antes (un solo agente)
- Después (multiagente)
agents.defaults.*/agents.entries.*.* (como sandbox.perSession, agentRuntime, embeddedPi) se migran mediante openclaw doctor; de ahora en adelante, se recomienda usar agents.defaults + agents.entries.Ejemplos de restricciones de herramientas
- Agente de solo lectura
- Ejecución de shell con las herramientas del sistema de archivos deshabilitadas
- Solo comunicación
Error común: “non-main”
Pruebas
Después de configurar el aislamiento y las herramientas multiagente:Comprobar la resolución de agentes
Verificar los contenedores de aislamiento
Probar las restricciones de herramientas
- Envíe un mensaje que requiera herramientas restringidas.
- Compruebe que el agente no pueda usar las herramientas denegadas.
Supervisar los registros
Solución de problemas
El agente no está aislado a pesar de `mode: 'all'`
El agente no está aislado a pesar de `mode: 'all'`
- Compruebe si existe un
agents.defaults.sandbox.modeglobal que lo reemplace. - La configuración específica del agente tiene precedencia, por lo que debe establecer
agents.entries.*.sandbox.mode: "all".
Herramientas aún disponibles pese a la lista de denegación
Herramientas aún disponibles pese a la lista de denegación
- Consulte el orden de filtrado completo: perfil → perfil del proveedor → política global → política del proveedor → política del agente → política del proveedor del agente → entorno aislado → subagente.
- Cada nivel solo puede imponer más restricciones, no volver a conceder permisos.
- Consulte Entorno aislado frente a política de herramientas frente a modo elevado para depurar paso a paso.
El contenedor no está aislado por agente
El contenedor no está aislado por agente
- El valor predeterminado de
scopees"agent"(un contenedor por id. de agente). - Establezca
scope: "session"para usar un contenedor por sesión, oscope: "shared"para reutilizar un contenedor entre agentes.
Temas relacionados
- Modo elevado
- Enrutamiento multiagente
- Configuración del entorno aislado
- Entorno aislado frente a política de herramientas frente a modo elevado — depuración de «¿por qué está bloqueado?»
- Aislamiento — referencia completa del entorno aislado (modos, ámbitos, backends e imágenes)
- Gestión de sesiones