Архитектура AI-агента с Docker-песочницей и LangGraph: схема безопасного исполнения кода на языке Python

AI-агент с Docker-песочницей на LangGraph: готовая архитектура для безопасного исполнения кода

ИИ-инструменты 26 июня 2026 г.

В открытый доступ выложен полный рабочий проект AI-агента, который самостоятельно пишет и исполняет код в изолированной Docker-песочнице. Это не концепт, а готовый репозиторий с оркестратором на LangGraph, субагентами, каталогом инструкций (skills) и жёсткими настройками безопасности контейнера. Для бизнеса это означает, что команда может взять проверенную архитектуру для безопасной автоматизации задач, связанных с кодом — от генерации отчётов до обработки данных — без риска повредить основную инфраструктуру. Решение переводит эксперименты с LLM в категорию контролируемых рабочих процессов. Владельцам и менеджерам нужно оценить, подходит ли эта модель для автоматизации внутренних процессов, требующих исполнения кода, и проверить, соответствуют ли её механизмы изоляции корпоративным стандартам безопасности.

Что представляет собой опубликованный проект

Проект llm-sandbox-agent — это практическая реализация агента, который принимает сложную задачу от пользователя, декомпозирует её, поручает подзадачи субагентам, а те, в свою очередь, пишут и запускают Python-код в изолированном Docker-контейнере. Ключевые компоненты, которые делают эту систему работоспособной:

  • Оркестратор на LangGraph: Центральный «мозг», который планирует решение, используя гибридный паттерн ReAct + Plan-Execute. Он разбивает задачу, назначает подзадачи и агрегирует результаты.
  • Субагенты с чистым контекстом: Для каждой подзадачи создаётся отдельная сессия с LLM. Это предотвращает переполнение контекста основного агента и позволяет выполнять задачи параллельно.
  • Каталог навыков (Skills): Набор детальных инструкций для конкретных типов задач (например, создание презентаций). Инструкции хранятся в файлах и динамически подгружаются в контекст агента по мере необходимости через инструмент read_skill.
  • Инструменты управления задачами и файлами: Агент работает с внутренним списком задач (create_todo_list, complete_todo, revise_todo_list) и файлами пользователя (list_input_files, read_file_content).
  • Docker Sandbox с жёсткими ограничениями: Для исполнения кода создаётся временный контейнер с ключевыми флагами безопасности: --network=none, --read-only, --cap-drop=ALL, --security-opt=no-new-privileges, запуск от имени non-root пользователя, лимиты на CPU, RAM и количество процессов.

Этот набор превращает абстрактную идею «агента, который пишет код» в инженерную систему с чёткими границами ответственности и контролем безопасности.

Почему эта архитектура меняет подход к автоматизации

Традиционно автоматизация с помощью LLM упиралась в дилемму: либо агент работает только с текстом и API, что ограничивает его возможности, либо ему дают доступ к среде исполнения, что создаёт неприемлемые риски. Представленный проект предлагает третий путь — контролируемую среду исполнения как сервис внутри агентского workflow.

Что меняется в подходе Почему это важно для бизнеса Что необходимо проверить
Код исполняется в предсказуемой изоляции. Снижает операционные риски. Ошибка или вредоносная инструкция в коде агента не затронет хост-систему или сеть. Достаточны ли Docker-ограничения для вашего класса задач (например, для работы с чувствительными данными может потребоваться gVisor/microVM).
Архитектура разделяет планирование и исполнение. Повышает надёжность. Оркестратор может перепланировать, если субагент зашёл в тупик, не начиная процесс заново. Насколько сложно будет адаптировать каталог skills (инструкций) под ваши уникальные бизнес-процессы.
Рабочий процесс материализуется в артефакты. Создаётся аудиторский след. Все сгенерированные файлы сохраняются и доступны для проверки. Где и как будут храниться эти артефакты, интегрируется ли это с вашими системами документооборота.
Проект поставляется как открытый код. Ускоряет пилотирование. Команда может развернуть и модифицировать решение, не разрабатывая аналогичную платформу с нуля. Соответствует ли стек технологий (Python, LangGraph, Docker) вашей инженерной экосистеме и компетенциям команды.

Этот подход переносит фокус с вопроса «можно ли доверять LLM выполнение кода?» на вопрос «как настроить границы доверия для конкретного бизнес-кейса?». Архитектура становится инженерным активом, а не экспериментальным скриптом.

В какие рабочие процессы это можно интегрировать уже сейчас

Проект не является универсальным ИИ-сотрудником. Его сила — в чётко очерченных операциях, где результат — это код, файл или структурированные данные. Типовые сценарии для внедрения:

  1. Генерация и адаптация шаблонов кода: Автоматическое создание скриптов для обработки входящих данных определённого формата (CSV, JSON логов) по описанию задачи.
  2. Преобразование данных и создание отчётов: Агент получает сырые данные и инструкцию (skill) по построению графика или сводной таблицы, пишет скрипт для Pandas/Matplotlib, исполняет его и возвращает готовый файл.
  3. Документирование и создание презентаций: На основе технического текста и структуры данных агент генерирует скрипт, который формирует слайды (например, с помощью библиотеки python-pptx).
  4. Локальное тестирование простых алгоритмов: Получение от LLM не только псевдокода, но и рабочего примера с исполнением и проверкой вывода на конкретных тестовых данных.

Критически важно, что эти процессы проходят внутри песочницы. Для бизнеса это означает возможность поручить агенту задачи, которые раньше требовали ручного копирования кода в среду разработки, его проверки и запуска. Рабочий цикл сокращается.

Какие риски и ограничения нельзя игнорировать

Несмотря на продуманную архитектуру, проект не устраняет все риски и имеет естественные ограничения, которые должны быть учтены перед внедрением.

  • Docker — не абсолютная изоляция. Как отмечено в первой части статьи автора, Docker обеспечивает изоляцию на уровне процессов ядра, но не на уровне гипервизора. Для сред с повышенными требованиями к безопасности (мультитенантные среды, работа с персональными данными высокой чувствительности) следует рассмотреть более строгие альтернативы: gVisor или микро-ВМ (например, Firecracker).
  • Привязка к Python и LangGraph. Агент заточен на генерацию и исполнение Python-кода. Это разумно для большинства задач анализа данных и автоматизации, но исключает сценарии, требующие других языков. Фреймворк LangGraph задаёт определённый шаблон построения агента, что может потребовать переобучения команды.
  • Зависимость от качества инструкций (skills). Эффективность агента напрямую зависит от детальности и точности инструкций в каталоге skills. Их создание и поддержка — это отдельная мета-работа, требующая экспертизы в предметной области.
  • Производительность и стоимость. Каждый запуск кода подразумевает создание и уничтожение Docker-контейнера, что добавляет оверхед. При высоких нагрузках это может привести к увеличению времени отклика и затрат на вычислительные ресурсы. Лимиты CPU/RAM, установленные в песочнице, также ограничивают сложность выполняемых задач.

Эти пункты — не критика, а checklist для реалистичной оценки. Проект предлагает отличный баланс для большинства внутренних бизнес-задач, но не является волшебной таблеткой.

Практический чек-лист оценки для внедрения

Прежде чем принимать решение об использовании этой архитектуры, выполните последовательную проверку.

  • [ ] Определите пилотный кейс. Выберите одну повторяющуюся задачу, где результат — это файл (отчёт, график, обработанные данные), а логика может быть описана в инструкции.
  • [ ] Проверьте требования к изоляции. Согласуйте с ИБ-специалистами: достаточно ли Docker с заданными флагами безопасности для ваших данных и инфраструктуры. Запланируйте тест на попытку «сбега» из контейнера.
  • [ ] Проанализируйте каталог skills. Изучите репозиторий и оцените, насколько примеры skills близки к вашим процессам. Спланируйте, кто и как будет писать и поддерживать ваши собственные инструкции.
  • [ ] Оцените интеграцию. Поймите, как агент будет получать входные данные (файлы, запросы из CRM) и куда передавать результаты (общее файловое хранилище, почта, API). Проверьте совместимость стека (Python, Docker) с вашим CI/CD и средой исполнения.
  • [ ] Рассчитайте экономику. Прикиньте стоимость одного цикла «запрос-ответ» с учётом времени выполнения LLM, создания контейнера и потребления GPU/CPU. Сравните с текущими трудозатратами на выполнение задачи вручную или полуавтоматически.
  • [ ] Запланируйте эксперимент. Выделите 2-3 недели инженерному ресурсу не на «изучение», а на развёртывание проекта и решение конкретного пилотного кейса. Критерий успеха — рабочий процесс от запроса до артефакта без ручного вмешательства в код.

Этот чек-лист смещает фокус с технического любопытства на управленческое решение. Цель — не изучить новый фреймворк, а получить работающий и безопасный инструмент автоматизации.

Какое решение можно принять на следующей неделе

Ситуация с AI-агентами перешла из фазы демонстраций в фазу инженерных решений. Опубликованный проект — это конкретный, воспроизводимый шаг в этом направлении. Решение, которое стоит принять в ближайшее время, — не «внедрять или нет», а назначить ответственного за оценку применимости этой архитектуры к одному выбранному бизнес-процессу.

Поручите техническому лиду или менеджеру продукта, который понимает и ваши операционные задачи, и возможности команды, выполнить пункты практического чек-листа. Его итогом должен быть краткий отчёт с рекомендацией: либо «архитектура подходит для кейса X, план внедрения — N недель», либо «риски/затраты перевешивают пользу, откладываем до появления решений в области Y».

Игнорирование таких готовых проектов ведёт к отставанию в автоматизации и увеличению разрыва между возможностями ИИ и реальными бизнес-процессами. Слепое же копирование без оценки рисков и интеграции создаст хрупкую систему, которая разочарует и забудется. Правильное действие — управляемый, быстрый эксперимент с чёткими границами и критериями успеха.

Источники

Генерация изображения

  • Модель: qwen-image-2.0-pro
  • Провайдер: alibaba

Теги