Облегчённые обвязки и агенты, выполняющие код, лучше подходят для задач с открытым решением, где чрезмерно жёсткая оркестрация может ограничивать возможности модели.
Поэтому выполнение кода и его изоляция в песочнице становятся ключевыми архитектурными аспектами агентных систем.
Agents SDK снижает сложность и объём кода, необходимые для создания агентов, выполняющих код, — в наших тестах вплоть до 6 раз.
Долгое время агентные системы развивались за счёт улучшения оркестрации: более качественных промптов и интерфейсов инструментов, управления контекстом и более строгой логики управления. Но по мере развития агентов для программирования этот баланс начинает меняться.
Во многих процессах с открытым решением узким местом становится уже не сам цикл агента, а исполнительный слой — песочница, где модель пишет код, запускает команды, анализирует результаты и повторяет попытки. Поскольку всё больше рассуждений на уровне задачи переносится в эту среду, окружающую оркестрацию нужно упрощать, чтобы модель могла полностью раскрыть свои возможности.
Именно такой переход обеспечивает новая версия Agents SDK. Во время тестирования на этапе раннего доступа мы выяснили, что вместо добавления ещё одного уровня логики фреймворка эта версия делает исполнительный слой более модульным и совместимым с другими компонентами, сохраняя остальную систему компактной.
В проектировании обвязок стало популярно сокращать обвязку до минимально эффективной формы. В общих чертах обвязка — это программное обеспечение вокруг модели: слой, который управляет контекстом, инструментами, логикой управления и циклами обратной связи, чтобы модель могла надёжно выполнять работу.
В последние несколько лет многие улучшения производительности агентов достигались за счёт усиления этого слоя. Более совершенные инструменты, память и поиск, более явная декомпозиция и строгая оркестрация зачастую делали системы надёжнее и функциональнее. В рамках этой парадигмы развитие в основном означало перенос дополнительной логики задач в программное обеспечение вокруг модели.
Теперь эта закономерность ослабевает — по крайней мере, для некоторых задач с открытым решением. Всё больше проектов и исследований показывают, что более директивная обвязка не всегда повышает эффективность. В программировании с поддержкой ИИ, длительных задачах, работе с браузером и задачах с длинным контекстом вновь и вновь проявляется одна закономерность: когда модель становится достаточно интеллектуальной, избыточная структура задач в окружающем ПО может превратиться из преимущества в ограничение.
Таким образом, роль обвязки меняется. Вместо попыток заранее предусмотреть ход задачи с помощью жёсткой оркестрации обвязка всё чаще предоставляет удобную среду выполнения — песочницу, где модель может анализировать состояние, запускать код, восстанавливаться после ошибок и адаптировать свой подход, оставаясь в пределах интерфейсов и механизмов защиты системы. Этот переход близок к тому, что Андрей Карпаты описал в «Инженере-программисте 3.0»: часть логики, прежде заложенной в ПО, перемещается на уровень выше — в «промпт».
Но это не означает, что из агентных систем нужно полностью убрать структуру. Для многих задач по-прежнему полезны явные рабочие процессы, эвристики и детерминированные ограничения — особенно если задача узкая, массовая или имеет чёткий критерий успеха. Как мы отмечали в предыдущей публикации «Эвристики проектирования агентных систем», строгая оркестрация по-прежнему важна там, где надёжная логическая последовательность возможна и желательна.
Для задач с открытым решением акцент смещается. Теперь задача не столько в создании всё более сложных слоёв оркестрации, сколько в разработке простых, наблюдаемых и модульных сред выполнения, в которых модель сможет эффективно работать.
Когда агент получает возможность читать файлы, писать код, выполнять команды оболочки и запускать длительные задачи, характер инженерной проблемы меняется. Оптимизация промптов и маршрутизация инструментов уже не остаются единственными сложными задачами. Работа агента в реальной системе существенно расширяет его возможности, но одновременно повышает риски, поскольку увеличивает поверхность, которую необходимо защищать. Например, агент, способный выполнять код, может причинить вред, если его среда недостаточно изолирована (см. тест Sandbox Bench от AISI).
Поэтому изоляция в песочнице становится критически важным аспектом агентных фреймворков. В ранних системах выполнение часто считалось дополнением — инструментом, прикреплённым к обвязке. Но такой подход перестаёт работать, как только выполнение становится длительным, удалённым или начинает сохранять состояние. Управление самой песочницей, её жизненным циклом, состоянием, интерфейсами и взаимодействием с циклом агента быстро превращается в самостоятельную задачу проектирования системы. Это одна из причин, почему всё больше провайдеров предлагают управляемые среды выполнения кода, включая Container API и инструмент shell от OpenAI, а также Modal, Cloudflare, Daytona, E2B и другие.
Эта граница важна, поскольку выполнение кода требует более строгой изоляции и более жёсткого контроля среды выполнения, чем остальная обвязка. На практике плохо реализованные агенты, выполняющие код, могут создавать три критических риска для бизнеса: неконтролируемые расходы на вычисления, разрушительные действия во внутренних системах и утечку конфиденциальной информации. Надлежащая контейнеризация, изоляция и защитные механизмы среды выполнения позволяют снизить эти риски до уровня, приемлемого для реального развёртывания.
Представьте, что вы предоставляете агенту отдельную закрытую рабочую область, а не ключи от всего офиса. Внутри неё он по-прежнему может выполнять полезную работу, но лишь в чётко заданных пределах. Можно ограничить объём доступных ему вычислительных ресурсов, определить, с какими системами и файлами он может работать, и контролировать изначально доступную ему информацию.
Это не устраняет риск полностью, но превращает ситуацию с «агентом, бесконтрольно действующим в вашей инфраструктуре» в «агента, работающего в контролируемой среде». Если этот слой должен стать стандартной частью агентных систем, ему необходима полноценная поддержка в самом фреймворке. Так песочница становится модульным исполнительным слоем с переносимыми примитивами, которые разработчики могут быстро внедрять, переносить между провайдерами и масштабировать без постоянной переработки логики агента.
Как только агент начинает выполнять код, оркестрация требуется и самой песочнице. Переход от локального прототипа к удалённому выполнению, нескольким бэкендам или длительным сеансам многократно увеличивает эксплуатационную нагрузку. Нужен единый способ создавать и останавливать среды, приостанавливать и возобновлять их работу, сохранять снимки состояния, повторно подключаться позднее и управлять всем этим у разных провайдеров.
В теории всё это не выглядит впечатляющим, но на практике имеет большое значение. Именно такая инфраструктура становится источником проблем, когда каждая команда заново создаёт агентный конвейер с нуля, особенно если он не интегрирован в агентный фреймворк…
Здесь и становится важна более развитая поддержка со стороны фреймворка. Мы получили ранний доступ к новой версии OpenAI Agents SDK и самостоятельно создали с её помощью агентов в песочницах. Особенно заметным оказалось смещение архитектурного акцента: SDK рассматривает выполнение как полноценный слой, а не как вспомогательный инструмент. На практике это позволяет запускать агента в песочнице, сохранять снимок песочницы или возобновлять выполнение с меньшим объёмом кода — в некоторых наших тестах примерно в 6 раз меньшим, — а затем менять бэкенды, не переписывая окружающую логику агента.
Более чёткое разделение задач позволяет обвязке сосредоточиться на рассуждениях, контексте и рабочем процессе. Исполнительный слой, в свою очередь, может отвечать за изоляцию, переносимость и состояние среды выполнения. Такая абстракция упрощает создание более функциональных и гибких агентов для программирования, которые могут переключаться между локальным и удалённым выполнением, поддерживать длительные задачи и менять исполнительные бэкенды без переработки всей системы.
По мере переноса логики уровня задач из обвязки в модель часть сложности системы перемещается вместе с ней — вниз, в исполнительный слой. Выполнение кода и его изоляция в песочнице становятся ключевыми архитектурными аспектами агентных систем, особенно для задач, связанных преимущественно с программированием или не имеющих заданного решения. Теперь проектирование среды, в которой агент может безопасно, надёжно и длительно действовать, не менее важно, чем проектирование самого агентного конвейера.
Именно поэтому важны высокоуровневые абстракции для выполнения кода в песочнице. Новая версия OpenAI Agents SDK движется в этом направлении, рассматривая выполнение как модульный слой системы: переносимый между бэкендами, сохраняющий состояние в длительных задачах и достаточно простой в использовании, чтобы не приходилось заново создавать одну и ту же инфраструктуру для каждой конфигурации.
В более широком смысле следующее поколение агентных фреймворков, вероятно, будет определяться не объёмом добавленной логики оркестрации, а качеством организации сред выполнения, от которых агенты зависят всё сильнее.