CLI commands

CLI piaskownicy

Zarządzaj środowiskami uruchomieniowymi sandbox na potrzeby izolowanego wykonywania agentów.

Omówienie

OpenClaw może uruchamiać agentów w izolowanych środowiskach uruchomieniowych sandbox dla bezpieczeństwa. Polecenia sandbox pomagają sprawdzać i odtwarzać te środowiska po aktualizacjach lub zmianach konfiguracji.

Obecnie zwykle oznacza to:

  • Kontenery sandbox Docker
  • Środowiska uruchomieniowe sandbox SSH, gdy agents.defaults.sandbox.backend = "ssh"
  • Środowiska uruchomieniowe sandbox OpenShell, gdy agents.defaults.sandbox.backend = "openshell"

Dla ssh i OpenShell remote odtworzenie ma większe znaczenie niż w przypadku Docker:

  • zdalny obszar roboczy jest kanoniczny po początkowym zasianiu
  • openclaw sandbox recreate usuwa ten kanoniczny zdalny obszar roboczy dla wybranego zakresu
  • następne użycie ponownie zasiewa go z bieżącego lokalnego obszaru roboczego

Polecenia

openclaw sandbox explain

Sprawdź efektywny tryb/zakres/dostęp do obszaru roboczego sandbox, politykę narzędzi sandbox oraz bramki podniesionych uprawnień (ze ścieżkami kluczy konfiguracji do naprawy).

openclaw sandbox explain
openclaw sandbox explain --session agent:main:main
openclaw sandbox explain --agent work
openclaw sandbox explain --json

openclaw sandbox list

Wyświetl wszystkie środowiska uruchomieniowe sandbox wraz z ich stanem i konfiguracją.

openclaw sandbox list
openclaw sandbox list --browser  # List only browser containers
openclaw sandbox list --json     # JSON output

Dane wyjściowe obejmują:

  • Nazwę i stan środowiska uruchomieniowego
  • Backend (docker, openshell itd.)
  • Etykietę konfiguracji i informację, czy pasuje do bieżącej konfiguracji
  • Wiek (czas od utworzenia)
  • Czas bezczynności (czas od ostatniego użycia)
  • Powiązaną sesję/agenta

openclaw sandbox recreate

Usuń środowiska uruchomieniowe sandbox, aby wymusić ich odtworzenie ze zaktualizowaną konfiguracją.

openclaw sandbox recreate --all                # Recreate all containers
openclaw sandbox recreate --session main       # Specific session
openclaw sandbox recreate --agent mybot        # Specific agent
openclaw sandbox recreate --browser            # Only browser containers
openclaw sandbox recreate --all --force        # Skip confirmation

Opcje:

  • --all: Odtwórz wszystkie kontenery sandbox
  • --session <key>: Odtwórz kontener dla konkretnej sesji
  • --agent <id>: Odtwórz kontenery dla konkretnego agenta
  • --browser: Odtwórz tylko kontenery przeglądarki
  • --force: Pomiń monit o potwierdzenie

Przypadki użycia

Po aktualizacji obrazu Docker

# Pull new image
docker pull openclaw-sandbox:latest
docker tag openclaw-sandbox:latest openclaw-sandbox:bookworm-slim

# Update config to use new image
# Edit config: agents.defaults.sandbox.docker.image (or agents.list[].sandbox.docker.image)

# Recreate containers
openclaw sandbox recreate --all

Po zmianie konfiguracji sandbox

# Edit config: agents.defaults.sandbox.* (or agents.list[].sandbox.*)

# Recreate to apply new config
openclaw sandbox recreate --all

Po zmianie celu SSH lub materiałów uwierzytelniania SSH

# Edit config:
# - agents.defaults.sandbox.backend
# - agents.defaults.sandbox.ssh.target
# - agents.defaults.sandbox.ssh.workspaceRoot
# - agents.defaults.sandbox.ssh.identityFile / certificateFile / knownHostsFile
# - agents.defaults.sandbox.ssh.identityData / certificateData / knownHostsData

openclaw sandbox recreate --all

Dla podstawowego backendu ssh odtworzenie usuwa zdalny katalog główny obszaru roboczego dla danego zakresu na celu SSH. Następne uruchomienie ponownie zasiewa go z lokalnego obszaru roboczego.

Po zmianie źródła, polityki lub trybu OpenShell

# Edit config:
# - agents.defaults.sandbox.backend
# - plugins.entries.openshell.config.from
# - plugins.entries.openshell.config.mode
# - plugins.entries.openshell.config.policy

openclaw sandbox recreate --all

W trybie OpenShell remote odtworzenie usuwa kanoniczny zdalny obszar roboczy dla tego zakresu. Następne uruchomienie ponownie zasiewa go z lokalnego obszaru roboczego.

Po zmianie setupCommand

openclaw sandbox recreate --all
# or just one agent:
openclaw sandbox recreate --agent family

Tylko dla konkretnego agenta

# Update only one agent's containers
openclaw sandbox recreate --agent alfred

Dlaczego jest to potrzebne

Gdy aktualizujesz konfigurację sandbox:

  • Istniejące środowiska uruchomieniowe nadal działają ze starymi ustawieniami.
  • Środowiska uruchomieniowe są usuwane dopiero po 24 godzinach bezczynności.
  • Regularnie używani agenci utrzymują stare środowiska uruchomieniowe aktywne bezterminowo.

Użyj openclaw sandbox recreate, aby wymusić usunięcie starych środowisk uruchomieniowych. Zostaną one automatycznie odtworzone z bieżącymi ustawieniami, gdy będą ponownie potrzebne.

Migracja rejestru

OpenClaw przechowuje metadane środowiska uruchomieniowego sandbox jako jeden fragment JSON na wpis kontenera/przeglądarki w katalogu stanu sandbox. Starsze instalacje mogą nadal mieć monolityczne pliki starszego typu:

  • ~/.openclaw/sandbox/containers.json
  • ~/.openclaw/sandbox/browsers.json

Zwykłe odczyty środowisk uruchomieniowych sandbox nie przepisują tych plików. Uruchom openclaw doctor --fix, aby zmigrować prawidłowe starsze wpisy do katalogów rejestru podzielonego na fragmenty. Nieprawidłowe starsze pliki są poddawane kwarantannie, aby jeden wadliwy stary rejestr nie mógł ukryć bieżących wpisów środowisk uruchomieniowych.

Konfiguracja

Ustawienia sandbox znajdują się w ~/.openclaw/openclaw.json pod agents.defaults.sandbox (nadpisania dla poszczególnych agentów trafiają do agents.list[].sandbox):

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "all", // off, non-main, all
        "backend": "docker", // docker, ssh, openshell
        "scope": "agent", // session, agent, shared
        "docker": {
          "image": "openclaw-sandbox:bookworm-slim",
          "containerPrefix": "openclaw-sbx-",
          // ... more Docker options
        },
        "prune": {
          "idleHours": 24, // Auto-prune after 24h idle
          "maxAgeDays": 7, // Auto-prune after 7 days
        },
      },
    },
  },
}

Powiązane