CLI песочницы

Управление контейнерами Docker для изолированного выполнения агентов.

Обзор

OpenClaw может запускать агентов в изолированных контейнерах Docker для обеспечения безопасности. Команды sandbox помогают управлять этими контейнерами, особенно после обновлений или изменений конфигурации.

Команды

openclaw sandbox explain

Проверка эффективного режима/области/доступа к рабочему пространству песочницы, политики инструментов песочницы и повышенных привилегий (с путями к ключам конфигурации для исправления).

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

openclaw sandbox list

Список всех контейнеров песочницы с их статусом и конфигурацией.

openclaw sandbox list
openclaw sandbox list --browser  # Только контейнеры браузера
openclaw sandbox list --json     # Вывод в JSON

Вывод включает:

  • Имя контейнера и статус (работает/остановлен)
  • Docker-образ и соответствие конфигурации
  • Возраст (время с момента создания)
  • Время простоя (время с последнего использования)
  • Связанная сессия/агент

openclaw sandbox recreate

Удаление контейнеров песочницы для принудительного пересоздания с обновленными образами/конфигурацией.

openclaw sandbox recreate --all                # Пересоздать все контейнеры
openclaw sandbox recreate --session main       # Конкретная сессия
openclaw sandbox recreate --agent mybot        # Конкретный агент
openclaw sandbox recreate --browser            # Только контейнеры браузера
openclaw sandbox recreate --all --force        # Пропустить подтверждение

Опции:

  • --all: Пересоздать все контейнеры песочницы
  • --session <key>: Пересоздать контейнер для конкретной сессии
  • --agent <id>: Пересоздать контейнеры для конкретного агента
  • --browser: Пересоздать только контейнеры браузера
  • --force: Пропустить запрос подтверждения

Важно: Контейнеры автоматически пересоздаются при следующем использовании агента.

Случаи использования

После обновления Docker-образов

# Загрузить новый образ
docker pull openclaw-sandbox:latest
docker tag openclaw-sandbox:latest openclaw-sandbox:bookworm-slim

# Обновить конфигурацию для использования нового образа
# Редактировать конфигурацию: agents.defaults.sandbox.docker.image (или agents.list[].sandbox.docker.image)

# Пересоздать контейнеры
openclaw sandbox recreate --all

После изменения конфигурации песочницы

# Редактировать конфигурацию: agents.defaults.sandbox.* (или agents.list[].sandbox.*)

# Пересоздать для применения новой конфигурации
openclaw sandbox recreate --all

После изменения setupCommand

openclaw sandbox recreate --all
# или только для одного агента:
openclaw sandbox recreate --agent family

Только для конкретного агента

# Обновить только контейнеры одного агента
openclaw sandbox recreate --agent alfred

Зачем это нужно?

Проблема: При обновлении Docker-образов или конфигурации песочницы:

  • Существующие контейнеры продолжают работать со старыми настройками
  • Контейнеры удаляются только после 24 часов неактивности
  • Регулярно используемые агенты сохраняют старые контейнеры бесконечно

Решение: Используйте openclaw sandbox recreate для принудительного удаления старых контейнеров. Они будут автоматически пересозданы с текущими настройками при следующей необходимости.

Совет: предпочитайте openclaw sandbox recreate вместо ручного docker rm. Команда использует именование контейнеров Gateway и избегает несоответствий при изменении ключей области/сессии.

Конфигурация

Настройки песочницы находятся в ~/.openclaw/openclaw.json в разделе agents.defaults.sandbox (переопределения для конкретных агентов в agents.list[].sandbox):

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "all",                    // off, non-main, all
        "scope": "agent",                 // session, agent, shared
        "docker": {
          "image": "openclaw-sandbox:bookworm-slim",
          "containerPrefix": "openclaw-sbx-"
          // ... дополнительные опции Docker
        },
        "prune": {
          "idleHours": 24,               // Автоудаление после 24 часов простоя
          "maxAgeDays": 7                // Автоудаление после 7 дней
        }
      }
    }
  }
}

См. также