
LLM Sandbox: практический пример агента с Docker‑песочницей (часть 2)
Во второй части серии раскрыт код агента, генерирующего и исполняющего программы в изолированном Docker‑контейнере. Ссылка на готовый репозиторий и подробные логи.
В статье «LLM Sandbox: пример реализации агента с песочницей [часть 2, практика]» автор продолжает серию, посвящённую безопасному исполнению кода, генерируемого крупными языковыми моделями. Первая часть охватила теоретические аспекты: риски выполнения кода от LLM, сравнение технологий изоляции (Docker, Wasm, gVisor, microVM) и базовую архитектуру «агент + песочница».\n\nВо второй части внимание переключено на практику. Показан полностью рабочий агент, который принимает запрос от LLM, генерирует программный код, упаковывает его в Docker‑образ и запускает в отдельном контейнере с жёстко ограниченными ресурсами и сетевыми правилами. Архитектура построена на микросервисах: отдельный процесс‑менеджер получает задачи, формирует Dockerfile, собирает образ, запускает контейнер и собирает вывод. Для взаимодействия с LLM использованы стандартные API (OpenAI, Anthropic и др.), а «skills» агента реализованы в виде плагинов, позволяющих расширять набор поддерживаемых языков и библиотек.\n\nВсе исходники, Docker‑конфиги, наборы тестов, полные логи выполнения и артефакты (снимки образов, отчёты о безопасности) опубликованы в открытом GitHub‑репозитории: https://github.com/author/llm-sandbox-agent. Репозиторий снабжён инструкциями по локальному запуску и рекомендациями по настройке ограничений (cgroup, seccomp, AppArmor). Автор также делится наблюдениями о типичных ошибках LLM‑генерации кода и советами, как их автоматически обнаруживать.\n\nЭта публикация полезна как для исследователей, изучающих безопасное применение LLM, так и для практиков, желающих быстро собрать прототип безопасного кода‑генератора в реальном проекте.
Реализация открытого агента с Docker‑песочницей даёт разработчикам готовый шаблон для безопасного прототипирования LLM‑сервисов, где код исполняется в изолированном окружении. Это ускоряет эксперименты, но требует строгого контроля ресурсов и политики доступа, иначе могут возникнуть уязвимости. Структурированный набор «skills» и подробные логи позволяют быстро адаптировать агент под новые языки и задачи. При интеграции в продакшн стоит добавить слои защиты (gVisor, seccomp) и мониторинг поведения контейнеров.


