pimenov.ai

OpenSandbox — sandbox-платформа для безопасного запуска AI-агентов

Обновлено

OpenSandbox — open-source платформа для запуска AI-приложений в изолированных окружениях. Она предоставляет единый API, наборы разработки (SDK) и сервер управления поверх Docker и Kubernetes: приложение создаёт песочницу (sandbox), выполняет в ней команды или код, работает с файлами и затем удаляет окружение.

Лицензия: Apache 2.0

Репозиторий: opensandbox-group/OpenSandbox

Актуальность сведений: 4 сентября 2026 года

Материал основан на официальной документации и примерах проекта. Описанный запуск отдельно не проверялся автором.

Содержание

  1. Как устроена платформа
  2. Основные возможности
  3. Быстрый старт с Docker
  4. Подключение SDK и API
  5. Полезные сценарии
  6. Безопасность и ограничения
  7. Официальные ссылки

Как устроена платформа

OpenSandbox служит уровнем исполнения для AI-агента. Приложение обращается к API управления жизненным циклом (lifecycle API), создаёт окружение из контейнерного образа или снимка (snapshot), задаёт срок жизни и лимиты ресурсов. Внутри песочницы отдельный сервис execd выполняет команды, код и файловые операции.

Для локального запуска предусмотрен Docker. Kubernetes runtime рассчитан на распределённое выполнение и управление большим количеством окружений. Собственные среды выполнения (runtime) можно подключать через опубликованные спецификации Sandbox Protocol.

Жизненный цикл включает создание, получение состояния, приостановку, возобновление, продление срока действия и удаление sandbox. API также поддерживает снимки (snapshots) и получение внешних точек доступа (endpoint) для сервисов, запущенных внутри окружения.

Основные возможности

ВозможностьЧто доступно
Выполнение команд и кодаShell-команды, фоновые процессы, bash-сессии и stateful-интерпретатор кода
Работа с файламиЗагрузка, скачивание, поиск, переименование, изменение прав и операции с каталогами
Потоковый выводПередача статуса, stdout, stderr и результата через Server-Sent Events (SSE)
Браузер и рабочий столПримеры с Chromium, Playwright, VNC, noVNC и VS Code Web
Управление ресурсамиОграничения CPU, памяти и GPU при создании окружения
Docker и KubernetesЛокальный runtime и распределённое планирование нагрузки
Хранение состоянияSnapshots, Docker volumes, OSSFS и Kubernetes PVC
Сетевой контрольЕдиный шлюз входящего трафика и правила исходящего трафика для отдельных sandbox
СекретыCredential Vault передаёт учётные данные исходящим запросам без раскрытия исходных секретов workload
Усиленная изоляцияПоддержка gVisor, Kata Containers и Firecracker microVM
Инструменты разработчикаSDK, командная строка osb и MCP-сервер

В репозитории перечислены SDK для Python, JavaScript/TypeScript, Java/Kotlin, C#/.NET и Go. Для интерпретатора кода существуют отдельные SDK для Python, JavaScript/TypeScript, Java/Kotlin и C#/.NET.

Быстрый старт с Docker

Для локального сервера нужны Docker и Python 3.10 или новее. Актуальный README предлагает запуск через uvx:

uvx opensandbox-server init-config ~/.sandbox.toml --example docker
uvx opensandbox-server

Альтернативный вариант из официального примера Desktop:

uv pip install opensandbox-server
opensandbox-server init-config ~/.sandbox.toml --example docker
opensandbox-server

В документации API локальный базовый адрес lifecycle API указан как http://localhost:8080/v1.

Минимальная проверка через CLI

Установите командную строку:

pip install opensandbox-cli

Настройте локальное подключение, создайте окружение и выполните команду:

osb config init
osb config set connection.domain localhost:8080
osb config set connection.protocol http
osb config set connection.api_key ""
osb sandbox create --image python:3.12 --timeout 30m -o json
osb command run -o raw -- python -c "print(1 + 1)"

Наблюдаемый признак успеха: команда создания возвращает JSON с данными sandbox, а последняя команда печатает 2. После проверки удалите окружение через lifecycle API или соответствующую команду CLI.

Подключение SDK и API

Установка SDK

# Python
pip install opensandbox

# Интерпретатор кода для Python
pip install opensandbox-code-interpreter

# JavaScript / TypeScript
npm install @alibaba-group/opensandbox

# C# / .NET
dotnet add package Alibaba.OpenSandbox

# Go
go get github.com/alibaba/OpenSandbox/sdks/sandbox/go

Для Java/Kotlin опубликован пакет com.alibaba.opensandbox:sandbox.

Аутентификация

Lifecycle API принимает ключ в HTTP-заголовке:

OPEN-SANDBOX-API-KEY: your-api-key

SDK-клиенты используют стандартную переменную окружения:

export OPEN_SANDBOX_API_KEY="your-api-key"

В отдельных примерах встречается SANDBOX_API_KEY, но это переменная конкретного примера с резервным переходом к OPEN_SANDBOX_API_KEY. Для собственного приложения лучше использовать стандартное имя SDK.

Внутренний API выполнения execd защищён отдельным заголовком X-EXECD-ACCESS-TOKEN. Не передавайте этот токен или ключ lifecycle API в URL и не сохраняйте их в исходном коде.

MCP для AI-клиентов

MCP-сервер предоставляет совместимым клиентам операции создания sandbox, выполнения команд и работы с текстовыми файлами:

pip install opensandbox-mcp
opensandbox-mcp --domain localhost:8080 --protocol http

Официальный README приводит настройку для Claude Code и Cursor. В репозитории также есть примеры запуска Claude Code, Gemini CLI, OpenAI Codex CLI, OpenCode, Qwen Code и Kimi CLI внутри OpenSandbox.

Полезные сценарии

Изолированный запуск кода, созданного агентом

Задача: coding-агент сгенерировал программу, которую нельзя безопасно запускать на основном хосте.

Приложение создаёт sandbox из зафиксированного образа, задаёт лимиты CPU, памяти и времени, передаёт файлы и запускает тесты через command API. Результат проверяют по статусу команды, stdout, stderr и созданным файлам.

Если код недоверенный, заранее настройте сетевые ограничения и выберите runtime с усиленной изоляцией. README проекта перечисляет gVisor, Kata Containers и Firecracker как такие варианты.

Автоматизация браузера и рабочего стола

Задача: агент должен открыть страницу, выполнить действия через Playwright или работать с полноценным графическим окружением.

В репозитории есть отдельные примеры для Chromium, Playwright и рабочего стола XFCE через VNC/noVNC. Результат можно проверить по данным Playwright и файлам, созданным внутри sandbox.

При встраивании noVNC в HTTPS-страницу нужен TLS reverse proxy и режим server proxy. В multi-tenant конфигурации браузер не может самостоятельно добавить API-заголовок к навигации и WebSocket, поэтому перед OpenSandbox требуется доверенный прокси с пользовательской аутентификацией. API-ключ нельзя помещать в URL.

Оценка AI-агентов

Задача: запустить серию тестов в одинаковых воспроизводимых окружениях.

Для каждой попытки создаётся отдельный sandbox с заданным образом и ресурсами. Тестовый процесс может собирать логи и метрики, после чего удаляет окружение. В официальном примере Harbor Evaluation один sandbox соответствует одной попытке.

Ограничение: воспроизводимость зависит от закреплённых версий образов, зависимостей и конфигурации. Для production-образов проект рекомендует закреплять digest и проверять подпись и provenance release-артефактов.

Безопасность и ограничения

OpenSandbox даёт средства изоляции, но безопасный результат зависит от конфигурации инфраструктуры.

  • Задавайте CPU, память, GPU и срок жизни каждого окружения.
  • Ограничивайте исходящий трафик правилами egress.
  • Используйте Credential Vault вместо передачи реальных секретов workload.
  • Для недоверенного кода рассмотрите gVisor, Kata Containers или Firecracker microVM.
  • Закрепляйте production-образы по digest и проверяйте подписанные release-артефакты.
  • Не публикуйте lifecycle API и sandbox endpoint без аутентификации и TLS.
  • Проверяйте совместимость версий сервера, SDK и компонентов перед обновлением.

Проект распространяется по Apache 2.0. Расходы на эксплуатацию зависят от вашей Docker- или Kubernetes-инфраструктуры. Наличие официального управляемого облачного сервиса предоставленные источники не подтверждают.

Официальные ссылки

Следующий шаг

12 приёмов, которые превращают ИИ-агента из игрушки в рабочий инструмент

Связанные материалы

Если вы проектируете инфраструктуру для AI-агентов, можно отдельно разобрать требования к изоляции, сети и масштабированию под ваш стек.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov