docs/docs/fr/gateway/openshell.md
2026-04-30 07:57:06 +00:00

11 KiB
Raw Blame History

read_when summary title x-i18n
Vous voulez des bacs à sable gérés dans le cloud plutôt que Docker local
Vous configurez le Plugin OpenShell
Vous devez choisir entre les modes miroir et espace de travail distant
Utiliser OpenShell comme backend de bac à sable géré pour les agents OpenClaw OpenShell
generated_at model provider source_hash source_path workflow
2026-04-30T07:28:43Z gpt-5.5 openai 694a0a145802f4b624af01b58cbb5886bab7426fb9a90f216480141082089144 gateway/openshell.md 16

OpenShell est un backend de sandbox géré pour OpenClaw. Au lieu dexécuter des conteneurs Docker localement, OpenClaw délègue le cycle de vie de la sandbox à la CLI openshell, qui provisionne des environnements distants avec exécution de commandes via SSH.

Le Plugin OpenShell réutilise le même transport SSH principal et le même pont de système de fichiers distant que le backend SSH générique. Il ajoute un cycle de vie spécifique à OpenShell (sandbox create/get/delete, sandbox ssh-config) et un mode despace de travail mirror facultatif.

Prérequis

  • La CLI openshell installée et présente dans PATH (ou définissez un chemin personnalisé via plugins.entries.openshell.config.command)
  • Un compte OpenShell avec accès aux sandboxes
  • Le Gateway OpenClaw exécuté sur lhôte

Démarrage rapide

  1. Activez le Plugin et définissez le backend de sandbox :
{
  agents: {
    defaults: {
      sandbox: {
        mode: "all",
        backend: "openshell",
        scope: "session",
        workspaceAccess: "rw",
      },
    },
  },
  plugins: {
    entries: {
      openshell: {
        enabled: true,
        config: {
          from: "openclaw",
          mode: "remote",
        },
      },
    },
  },
}
  1. Redémarrez le Gateway. Au prochain tour de lagent, OpenClaw crée une sandbox OpenShell et y achemine lexécution des outils.

  2. Vérifiez :

openclaw sandbox list
openclaw sandbox explain

Modes despace de travail

Cest la décision la plus importante lorsque vous utilisez OpenShell.

mirror

Utilisez plugins.entries.openshell.config.mode: "mirror" lorsque vous voulez que lespace de travail local reste canonique.

Comportement :

  • Avant exec, OpenClaw synchronise lespace de travail local vers la sandbox OpenShell.
  • Après exec, OpenClaw synchronise lespace de travail distant vers lespace de travail local.
  • Les outils de fichiers fonctionnent toujours via le pont de sandbox, mais lespace de travail local reste la source de vérité entre les tours.

Idéal pour :

  • Vous modifiez des fichiers localement en dehors dOpenClaw et voulez que ces changements soient visibles automatiquement dans la sandbox.
  • Vous voulez que la sandbox OpenShell se comporte autant que possible comme le backend Docker.
  • Vous voulez que lespace de travail de lhôte reflète les écritures de la sandbox après chaque tour dexécution.

Compromis : coût de synchronisation supplémentaire avant et après chaque exécution.

remote

Utilisez plugins.entries.openshell.config.mode: "remote" lorsque vous voulez que lespace de travail OpenShell devienne canonique.

Comportement :

  • Lorsque la sandbox est créée pour la première fois, OpenClaw initialise une fois lespace de travail distant à partir de lespace de travail local.
  • Ensuite, exec, read, write, edit et apply_patch opèrent directement sur lespace de travail OpenShell distant.
  • OpenClaw ne synchronise pas les changements distants vers lespace de travail local.
  • Les lectures de médias au moment du prompt fonctionnent toujours, car les outils de fichiers et de médias lisent via le pont de sandbox.

Idéal pour :

  • La sandbox doit vivre principalement côté distant.
  • Vous voulez réduire le surcoût de synchronisation à chaque tour.
  • Vous ne voulez pas que les modifications locales sur lhôte écrasent silencieusement létat de la sandbox distante.
Si vous modifiez des fichiers sur lhôte en dehors dOpenClaw après linitialisation initiale, la sandbox distante ne voit **pas** ces changements. Utilisez `openclaw sandbox recreate` pour réinitialiser.

Choisir un mode

mirror remote
Espace canonique Hôte local OpenShell distant
Sens de synchronisation Bidirectionnel (chaque exec) Initialisation unique
Surcoût par tour Plus élevé (upload + download) Plus faible (opérations distantes directes)
Modifications locales visibles ? Oui, au prochain exec Non, jusquà recréation
Idéal pour Flux de développement Agents de longue durée, CI

Référence de configuration

Toute la configuration OpenShell se trouve sous plugins.entries.openshell.config :

Clé Type Valeur par défaut Description
mode "mirror" ou "remote" "mirror" Mode de synchronisation de lespace de travail
command string "openshell" Chemin ou nom de la CLI openshell
from string "openclaw" Source de sandbox pour la première création
gateway string Nom du Gateway OpenShell (--gateway)
gatewayEndpoint string URL du point de terminaison Gateway OpenShell (--gateway-endpoint)
policy string ID de politique OpenShell pour la création de sandbox
providers string[] [] Noms des fournisseurs à attacher lors de la création de la sandbox
gpu boolean false Demander des ressources GPU
autoProviders boolean true Passer --auto-providers pendant la création de la sandbox
remoteWorkspaceDir string "/sandbox" Espace de travail principal accessible en écriture dans la sandbox
remoteAgentWorkspaceDir string "/agent" Chemin de montage de lespace de travail de lagent (pour accès en lecture seule)
timeoutSeconds number 120 Délai dexpiration pour les opérations de la CLI openshell

Les paramètres au niveau de la sandbox (mode, scope, workspaceAccess) sont configurés sous agents.defaults.sandbox, comme avec nimporte quel backend. Consultez Sandboxing pour la matrice complète.

Exemples

Configuration distante minimale

{
  agents: {
    defaults: {
      sandbox: {
        mode: "all",
        backend: "openshell",
      },
    },
  },
  plugins: {
    entries: {
      openshell: {
        enabled: true,
        config: {
          from: "openclaw",
          mode: "remote",
        },
      },
    },
  },
}

Mode miroir avec GPU

{
  agents: {
    defaults: {
      sandbox: {
        mode: "all",
        backend: "openshell",
        scope: "agent",
        workspaceAccess: "rw",
      },
    },
  },
  plugins: {
    entries: {
      openshell: {
        enabled: true,
        config: {
          from: "openclaw",
          mode: "mirror",
          gpu: true,
          providers: ["openai"],
          timeoutSeconds: 180,
        },
      },
    },
  },
}

OpenShell par agent avec Gateway personnalisé

{
  agents: {
    defaults: {
      sandbox: { mode: "off" },
    },
    list: [
      {
        id: "researcher",
        sandbox: {
          mode: "all",
          backend: "openshell",
          scope: "agent",
          workspaceAccess: "rw",
        },
      },
    ],
  },
  plugins: {
    entries: {
      openshell: {
        enabled: true,
        config: {
          from: "openclaw",
          mode: "remote",
          gateway: "lab",
          gatewayEndpoint: "https://lab.example",
          policy: "strict",
        },
      },
    },
  },
}

Gestion du cycle de vie

Les sandboxes OpenShell sont gérées via la CLI de sandbox normale :

# List all sandbox runtimes (Docker + OpenShell)
openclaw sandbox list

# Inspect effective policy
openclaw sandbox explain

# Recreate (deletes remote workspace, re-seeds on next use)
openclaw sandbox recreate --all

Pour le mode remote, la recréation est particulièrement importante : elle supprime lespace de travail distant canonique pour cette portée. La prochaine utilisation initialise un nouvel espace de travail distant à partir de lespace de travail local.

Pour le mode mirror, la recréation réinitialise surtout lenvironnement dexécution distant, car lespace de travail local reste canonique.

Quand recréer

Recréez après avoir modifié lun de ces éléments :

  • agents.defaults.sandbox.backend
  • plugins.entries.openshell.config.from
  • plugins.entries.openshell.config.mode
  • plugins.entries.openshell.config.policy
openclaw sandbox recreate --all

Renforcement de la sécurité

OpenShell épingle le fd racine de lespace de travail et revérifie lidentité de la sandbox avant chaque lecture, afin que les remplacements de liens symboliques ou un espace de travail remonté ne puissent pas rediriger les lectures hors de lespace de travail distant prévu.

Limitations actuelles

  • Le navigateur de sandbox nest pas pris en charge sur le backend OpenShell.
  • sandbox.docker.binds ne sapplique pas à OpenShell.
  • Les paramètres dexécution propres à Docker sous sandbox.docker.* sappliquent uniquement au backend Docker.

Fonctionnement

  1. OpenClaw appelle openshell sandbox create (avec les indicateurs --from, --gateway, --policy, --providers, --gpu selon la configuration).
  2. OpenClaw appelle openshell sandbox ssh-config <name> pour obtenir les détails de connexion SSH de la sandbox.
  3. Le cœur écrit la configuration SSH dans un fichier temporaire et ouvre une session SSH avec le même pont de système de fichiers distant que le backend SSH générique.
  4. En mode mirror : synchronisation du local vers le distant avant exec, exécution, puis synchronisation inverse après exec.
  5. En mode remote : initialisation unique à la création, puis opérations directes sur lespace de travail distant.

Connexe