OpenShell
OpenShell es un backend de sandbox gestionado para OpenClaw. En lugar de ejecutar contenedores Docker localmente, OpenClaw delega el ciclo de vida del sandbox al CLIopenshell,
que aprovisiona entornos remotos con ejecución de comandos basada en SSH.
El plugin de OpenShell reutiliza el mismo transporte SSH central y el puente de
sistema de archivos remoto que el backend SSH genérico. Añade
el ciclo de vida específico de OpenShell (sandbox create/get/delete, sandbox ssh-config)
y un modo opcional de espacio de trabajo mirror.
Requisitos previos
- El CLI
openshellinstalado y enPATH(o configura una ruta personalizada medianteplugins.entries.openshell.config.command) - Una cuenta de OpenShell con acceso a sandbox
- OpenClaw Gateway ejecutándose en el host
Inicio rápido
- Habilita el plugin y configura el backend de sandbox:
- Reinicia el Gateway. En el siguiente turno del agente, OpenClaw crea un sandbox de OpenShell y enruta la ejecución de herramientas a través de él.
- Verifica:
Modos de espacio de trabajo
Esta es la decisión más importante al usar OpenShell.mirror
Usa plugins.entries.openshell.config.mode: "mirror" cuando quieras que el espacio de trabajo local
siga siendo canónico.
Comportamiento:
- Antes de
exec, OpenClaw sincroniza el espacio de trabajo local con el sandbox de OpenShell. - Después de
exec, OpenClaw sincroniza el espacio de trabajo remoto de vuelta al espacio de trabajo local. - Las herramientas de archivos siguen operando a través del puente de sandbox, pero el espacio de trabajo local sigue siendo la fuente de verdad entre turnos.
- Editas archivos localmente fuera de OpenClaw y quieres que esos cambios sean visibles en el sandbox automáticamente.
- Quieres que el sandbox de OpenShell se comporte tanto como sea posible como el backend Docker.
- Quieres que el espacio de trabajo del host refleje las escrituras del sandbox después de cada turno de exec.
remote
Usa plugins.entries.openshell.config.mode: "remote" cuando quieras que el
espacio de trabajo de OpenShell pase a ser canónico.
Comportamiento:
- Cuando el sandbox se crea por primera vez, OpenClaw inicializa el espacio de trabajo remoto a partir del espacio de trabajo local una sola vez.
- Después de eso,
exec,read,write,edityapply_patchoperan directamente sobre el espacio de trabajo remoto de OpenShell. - OpenClaw no sincroniza los cambios remotos de vuelta al espacio de trabajo local.
- Las lecturas de medios en tiempo de prompt siguen funcionando porque las herramientas de archivos y medios leen a través del puente de sandbox.
- El sandbox debe vivir principalmente en el lado remoto.
- Quieres una menor sobrecarga de sincronización por turno.
- No quieres que las ediciones locales del host sobrescriban silenciosamente el estado remoto del sandbox.
openclaw sandbox recreate para volver a inicializarlo.
Elegir un modo
mirror | remote | |
|---|---|---|
| Espacio de trabajo canónico | Host local | OpenShell remoto |
| Dirección de sincronización | Bidireccional (cada exec) | Inicialización única |
| Sobrecarga por turno | Mayor (subida + descarga) | Menor (operaciones remotas directas) |
| ¿Las ediciones locales son visibles? | Sí, en el siguiente exec | No, hasta recreate |
| Ideal para | Flujos de trabajo de desarrollo | Agentes de larga duración, CI |
Referencia de configuración
Toda la configuración de OpenShell se encuentra enplugins.entries.openshell.config:
| Clave | Tipo | Predeterminado | Descripción |
|---|---|---|---|
mode | "mirror" o "remote" | "mirror" | Modo de sincronización del espacio de trabajo |
command | string | "openshell" | Ruta o nombre del CLI openshell |
from | string | "openclaw" | Origen del sandbox para la primera creación |
gateway | string | — | Nombre del gateway de OpenShell (--gateway) |
gatewayEndpoint | string | — | URL del endpoint del gateway de OpenShell (--gateway-endpoint) |
policy | string | — | ID de política de OpenShell para la creación del sandbox |
providers | string[] | [] | Nombres de proveedores que se adjuntan cuando se crea el sandbox |
gpu | boolean | false | Solicitar recursos de GPU |
autoProviders | boolean | true | Pasar --auto-providers durante sandbox create |
remoteWorkspaceDir | string | "/sandbox" | Espacio de trabajo principal con escritura dentro del sandbox |
remoteAgentWorkspaceDir | string | "/agent" | Ruta de montaje del espacio de trabajo del agente (para acceso de solo lectura) |
timeoutSeconds | number | 120 | Tiempo de espera para operaciones del CLI openshell |
mode, scope, workspaceAccess) se configura en
agents.defaults.sandbox igual que con cualquier backend. Consulta
Sandboxing para ver la matriz completa.
Ejemplos
Configuración remota mínima
Modo mirror con GPU
OpenShell por agente con gateway personalizado
Gestión del ciclo de vida
Los sandboxes de OpenShell se gestionan a través del CLI normal de sandbox:remote, recreate es especialmente importante: elimina el espacio de trabajo remoto
canónico para ese alcance. El siguiente uso inicializa un espacio de trabajo remoto nuevo a partir del
espacio de trabajo local.
Para el modo mirror, recreate principalmente restablece el entorno de ejecución remoto porque
el espacio de trabajo local sigue siendo canónico.
Cuándo recrear
Recrea después de cambiar cualquiera de estos:agents.defaults.sandbox.backendplugins.entries.openshell.config.fromplugins.entries.openshell.config.modeplugins.entries.openshell.config.policy
Limitaciones actuales
- El navegador del sandbox no es compatible con el backend OpenShell.
sandbox.docker.bindsno se aplica a OpenShell.- Los controles de tiempo de ejecución específicos de Docker en
sandbox.docker.*se aplican solo al backend Docker.
Cómo funciona
- OpenClaw llama a
openshell sandbox create(con indicadores--from,--gateway,--policy,--providers,--gpusegún la configuración). - OpenClaw llama a
openshell sandbox ssh-config <name>para obtener detalles de conexión SSH del sandbox. - El núcleo escribe la configuración SSH en un archivo temporal y abre una sesión SSH usando el mismo puente de sistema de archivos remoto que el backend SSH genérico.
- En modo
mirror: sincroniza de local a remoto antes de exec, ejecuta, y sincroniza de vuelta después de exec. - En modo
remote: inicializa una vez al crear y luego opera directamente sobre el espacio de trabajo remoto.
Ver también
- Sandboxing — modos, alcances y comparación de backends
- Sandbox vs Tool Policy vs Elevated — depurar herramientas bloqueadas
- Multi-Agent Sandbox and Tools — anulaciones por agente
- Sandbox CLI — comandos
openclaw sandbox