OpenShell es un backend de entorno aislado gestionado: en lugar de ejecutar contenedores Docker
localmente, OpenClaw delega el ciclo de vida del entorno aislado a la CLI openshell, que
aprovisiona entornos remotos y ejecuta comandos mediante SSH.
El plugin reutiliza el mismo transporte SSH y puente del sistema de archivos remoto que el
backend SSH genérico, y añade el ciclo de vida de OpenShell
(sandbox create/get/delete/ssh-config), además de un modo opcional de sincronización del espacio de trabajo
mirror.
Requisitos previos
- Plugin de OpenShell instalado (
openclaw plugins install @openclaw/openshell-sandbox)
- CLI
openshell en PATH (o una ruta personalizada mediante
plugins.entries.openshell.config.command)
- Una cuenta de OpenShell con acceso a entornos aislados
- Gateway de OpenClaw ejecutándose en el host
Inicio rápido
Reinicie el Gateway. En el siguiente turno del agente, OpenClaw crea un entorno aislado
de OpenShell y dirige a través de él la ejecución de herramientas. Verifíquelo con:
Modos del espacio de trabajo
Esta es la decisión más importante de OpenShell.
mirror (predeterminado)
plugins.entries.openshell.config.mode: "mirror" mantiene el espacio de trabajo local
como canónico:
- Antes de
exec, OpenClaw sincroniza el espacio de trabajo local con el entorno aislado.
- Después de
exec, OpenClaw vuelve a sincronizar el espacio de trabajo remoto con el local.
- Las herramientas de archivos utilizan el puente del entorno aislado, pero el entorno local sigue siendo la fuente de verdad
entre turnos.
Es la mejor opción para flujos de trabajo de desarrollo: las ediciones locales realizadas fuera de OpenClaw aparecen en la
siguiente ejecución, y el entorno aislado se comporta de forma similar al backend de Docker.
Desventaja: coste de carga y descarga en cada turno de ejecución.
remote
mode: "remote" hace que el espacio de trabajo de OpenShell sea canónico:
- Durante la primera creación del entorno aislado, OpenClaw inicializa una vez el espacio de trabajo remoto a partir del local.
- A partir de entonces,
exec, read, write, edit y apply_patch operan
directamente en el espacio de trabajo remoto. OpenClaw no vuelve a sincronizar los cambios remotos
con el entorno local.
- La lectura de contenido multimedia al generar el prompt sigue funcionando (las herramientas de archivos y contenido multimedia leen mediante el
puente del entorno aislado).
Es la mejor opción para agentes de larga duración y CI: menor sobrecarga por turno y las
ediciones locales del host no pueden sobrescribir silenciosamente el estado remoto.
Las ediciones de archivos realizadas en el host fuera de OpenClaw después de la inicialización no son visibles para el entorno aislado remoto. Ejecute openclaw sandbox recreate para volver a inicializarlo.
Elección de un modo
Referencia de configuración
Toda la configuración de OpenShell se encuentra en plugins.entries.openshell.config:
remoteWorkspaceDir y remoteAgentWorkspaceDir deben ser rutas absolutas y
permanecer bajo las raíces gestionadas /sandbox o /agent; las demás rutas absolutas se
rechazan.
Los ajustes del entorno aislado (mode, scope, workspaceAccess) se encuentran en
agents.defaults.sandbox, como con cualquier backend. Consulte
Entornos aislados 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
En el modo remote, volver a crear es especialmente importante: elimina el espacio de trabajo
remoto canónico de ese ámbito, y el siguiente uso inicializa uno nuevo a partir del
entorno local. En el modo mirror, volver a crear restablece principalmente el entorno de ejecución
remoto, ya que el entorno local sigue siendo canónico.
Vuelva a crear el entorno después de cambiar cualquiera de estos elementos:
agents.defaults.sandbox.backend
plugins.entries.openshell.config.from
plugins.entries.openshell.config.mode
plugins.entries.openshell.config.policy
Refuerzo de la seguridad
El puente del sistema de archivos del modo mirror fija la raíz del espacio de trabajo local y vuelve a comprobar
las rutas canónicas (mediante realpath) antes de cada lectura, escritura, creación de directorio, eliminación y
cambio de nombre, y rechaza los enlaces simbólicos en puntos intermedios de la ruta. Un cambio de enlace simbólico o un espacio de trabajo vuelto a montar
no puede redirigir el acceso a archivos fuera del árbol reflejado.
Limitaciones actuales
- El navegador del entorno aislado no es compatible con el backend de OpenShell.
sandbox.docker.binds no se aplica a OpenShell; la creación del entorno aislado falla
si hay enlaces configurados.
- Los ajustes de ejecución específicos de Docker en
sandbox.docker.* (salvo env)
solo se aplican al backend de Docker.
Cómo funciona
- OpenClaw ejecuta
sandbox get para el nombre del entorno aislado (con cualquier
--gateway/--gateway-endpoint configurado); si falla, crea uno con
sandbox create, pasando --name, --from, --policy cuando estén definidos, --gpu
cuando esté habilitado, --auto-providers/--no-auto-providers y una
marca --provider por cada proveedor configurado.
- OpenClaw ejecuta
sandbox ssh-config para el nombre del entorno aislado a fin de obtener los datos
de conexión SSH.
- El núcleo escribe la configuración SSH en un archivo temporal y abre una sesión SSH mediante
el mismo puente del sistema de archivos remoto que el backend SSH genérico.
- En el modo
mirror: sincroniza el entorno local con el remoto antes de la ejecución, ejecuta y vuelve a sincronizar después.
- En el modo
remote: inicializa una vez durante la creación y luego opera directamente en el espacio de trabajo
remoto.
Contenido relacionado