Проблема: архитектура решает больше, чем кажется
Каждый production-агент управляется оркестратором — циклом, который отправляет промпты в LLM, получает ответы, выполняет инструменты и повторяет процесс. Когда этот цикл работает внутри той же sandbox, что и код агента, всё выглядит просто: один контейнер, один процесс, одна файловая система.
Но простота обманчива. Эта схема создаёт три скрытые проблемы, которые становятся критическими при командном использовании: учётные данные оказываются внутри контейнера, упавшая sandbox означает потерю всей сессии, а совместная работа превращается в задачу распределённой файловой системы.
Решение: вынести оркестратор на бэкенд
Альтернативная архитектура: цикл управления LLM работает на бэкенде и обращается к sandbox только через API — когда нужно выполнить конкретный инструмент. Контейнер становится взаимозаменяемым вычислительным ресурсом, а не уникальной точкой отказа.
Что это меняет на практике:
Безопасность. API-ключи, пользовательские токены и доступ к базам данных остаются в цикле на бэкенде. Внутри sandbox — только то окружение, которое нужно агенту для выполнения текущей задачи. Нет лишнего доступа — нет риска его утечки.
Экономия. Большая часть работы агента не требует sandbox: размышление, вызовы API, ожидание CI. При внешнем оркестраторе контейнер запускается только под выполнение команд и приостанавливается при простое. Это напрямую снижает затраты на инфраструктуру.
Отказоустойчивость. Если sandbox падает в середине часовой сессии, оркестратор поднимает новый контейнер и продолжает работу. При внутренней модели потеря контейнера равна потере всей сессии.
Масштабирование команды. Десятки инженеров могут использовать одного агента совместно — разделять навыки, память, параллельно работать с одним инцидентом. Это задача для общей базы данных, а не распределённой файловой системы.
Результат: агент, готовый к production
Внешняя архитектура требует дополнительных инвестиций. Нужно решить устойчивое выполнение долгоживущих сессий (часы, не минуты), пересмотреть работу с файловой системой и отказаться от готовых локальных оркестраторов в пользу собственного цикла.
Но эти инвестиции однократны, а их результат — система, которая корректно обрабатывает сбои, не хранит секреты там, где им не место, и масштабируется на всю команду без архитектурного рефакторинга.
Для одного разработчика и прототипа внутренняя модель работает. Для командного production-агента — внешняя является единственным устойчивым выбором.