OpenShell è un backend sandbox gestito: invece di eseguire container Docker
localmente, OpenClaw delega il ciclo di vita della sandbox alla CLI openshell, che
predispone ambienti remoti ed esegue comandi tramite SSH.
Il plugin riutilizza lo stesso trasporto SSH e lo stesso bridge del filesystem remoto del
backend SSH generico e aggiunge la gestione del
ciclo di vita di OpenShell (sandbox create/get/delete/ssh-config), oltre a una modalità
opzionale mirror per la sincronizzazione dell’area di lavoro.
Prerequisiti
- Plugin OpenShell installato (
openclaw plugins install @openclaw/openshell-sandbox)
- CLI
openshell disponibile in PATH (oppure un percorso personalizzato tramite
plugins.entries.openshell.config.command)
- Un account OpenShell con accesso alle sandbox
- Gateway OpenClaw in esecuzione sull’host
Avvio rapido
Riavvia il Gateway. Al turno successivo dell’agente, OpenClaw crea una sandbox
OpenShell e vi instrada l’esecuzione degli strumenti. Verifica con:
Modalità dell’area di lavoro
Questa è la decisione più importante relativa a OpenShell.
mirror (predefinita)
plugins.entries.openshell.config.mode: "mirror" mantiene canonica l’area di
lavoro locale:
- Prima di
exec, OpenClaw sincronizza l’area di lavoro locale nella sandbox.
- Dopo
exec, OpenClaw sincronizza nuovamente in locale l’area di lavoro remota.
- Gli strumenti per i file passano attraverso il bridge della sandbox, ma tra un
turno e l’altro la copia locale rimane la fonte autorevole.
Ideale per i flussi di lavoro di sviluppo: le modifiche locali effettuate al di fuori
di OpenClaw vengono rilevate alla successiva esecuzione e il comportamento della
sandbox è simile a quello del backend Docker.
Compromesso: costo di caricamento e scaricamento a ogni turno di esecuzione.
remote
mode: "remote" rende canonica l’area di lavoro OpenShell:
- Alla prima creazione della sandbox, OpenClaw inizializza una sola volta l’area
di lavoro remota a partire da quella locale.
- Successivamente,
exec, read, write, edit e apply_patch operano
direttamente sull’area di lavoro remota. OpenClaw non sincronizza le modifiche
remote in locale.
- La lettura dei contenuti multimediali durante la generazione del prompt continua
a funzionare (gli strumenti per file e contenuti multimediali leggono tramite il
bridge della sandbox).
Ideale per agenti di lunga durata e CI: minore sovraccarico per turno e le modifiche
locali sull’host non possono sovrascrivere silenziosamente lo stato remoto.
Le modifiche ai file effettuate sull’host al di fuori di OpenClaw dopo l’inizializzazione non sono visibili alla sandbox remota. Esegui openclaw sandbox recreate per inizializzarla nuovamente.
Scelta della modalità
Riferimento della configurazione
Tutta la configurazione di OpenShell si trova in plugins.entries.openshell.config:
remoteWorkspaceDir e remoteAgentWorkspaceDir devono essere percorsi assoluti e
rimanere nelle radici gestite /sandbox o /agent; gli altri percorsi assoluti vengono
rifiutati.
Le impostazioni a livello di sandbox (mode, scope, workspaceAccess) si trovano in
agents.defaults.sandbox, come per qualsiasi backend. Consulta
Gestione delle sandbox per la matrice completa.
Esempi
Configurazione remota minima
Modalità mirror con GPU
OpenShell per agente con gateway personalizzato
Gestione del ciclo di vita
Per la modalità remote, la ricreazione è particolarmente importante: elimina l’area
di lavoro remota canonica per l’ambito specificato e, all’utilizzo successivo, ne
inizializza una nuova a partire da quella locale. Per la modalità mirror, la ricreazione
reimposta principalmente l’ambiente di esecuzione remoto, poiché la copia locale rimane
canonica.
Ricrea dopo aver modificato uno dei seguenti elementi:
agents.defaults.sandbox.backend
plugins.entries.openshell.config.from
plugins.entries.openshell.config.mode
plugins.entries.openshell.config.policy
Rafforzamento della sicurezza
Il bridge del filesystem in modalità mirror vincola la radice dell’area di lavoro locale
e ricontrolla i percorsi canonici (tramite realpath) prima di ogni lettura, scrittura,
creazione di directory, rimozione e rinomina, rifiutando i collegamenti simbolici
all’interno del percorso. La sostituzione di un collegamento simbolico o il rimontaggio
dell’area di lavoro non possono reindirizzare l’accesso ai file al di fuori dell’albero
replicato.
Limitazioni attuali
- Il browser della sandbox non è supportato dal backend OpenShell.
sandbox.docker.binds non si applica a OpenShell; la creazione della sandbox non
riesce se sono configurati dei bind.
- Le opzioni di runtime specifiche di Docker in
sandbox.docker.* (tranne env)
si applicano solo al backend Docker.
Funzionamento
- OpenClaw esegue
sandbox get per il nome della sandbox (con gli eventuali
--gateway/--gateway-endpoint configurati); se l’operazione non riesce, ne
crea una con sandbox create, passando --name, --from, --policy quando
impostato, --gpu quando abilitato, --auto-providers/--no-auto-providers
e un flag --provider per ogni provider configurato.
- OpenClaw esegue
sandbox ssh-config per il nome della sandbox per recuperare
i dettagli della connessione SSH.
- Il core scrive la configurazione SSH in un file temporaneo e apre una sessione
SSH tramite lo stesso bridge del filesystem remoto del backend SSH generico.
- In modalità
mirror: sincronizza dal locale al remoto prima dell’esecuzione,
esegue il comando, quindi sincronizza nuovamente dal remoto al locale.
- In modalità
remote: inizializza una volta alla creazione, quindi opera
direttamente sull’area di lavoro remota.
Argomenti correlati