Codex cloud выносит задачу в изолированный контейнер на инфраструктуре OpenAI, и это меняет саму модель работы. У облачного окружения нет ваших локальных файлов и состояния shell: оно клонирует репозиторий заново и готовит его само. Отсюда центральное требование, вокруг которого всё вращается: окружение должно воспроизводимо подготовить репозиторий до того, как агент начнёт рассуждать и редактировать. Если подготовка недетерминирована, недетерминирован и результат.
Разделение на фазу setup и фазу агента - это не деталь, а основа архитектуры облака. Setup готовит окружение: ставит зависимости, выполняет нужную инициализацию, приводит репозиторий в рабочее состояние. Только после этого агент начинает свою работу над задачей. Смешивать эти фазы нельзя: то, что должно быть готово детерминированно и один раз, не место делать агенту по ходу рассуждения, где результат зависит от того, как он понял задачу.
Секреты в облаке подчиняются строгому правилу, нарушение которого разрушает модель безопасности. Нельзя проектировать workflow, где фаза агента "случайно" зависит от секрета, оставленного setup-скриптом в обычном файле. Setup может иметь доступ к тому, к чему агентская фаза доступа иметь не должна, и это разделение намеренное. Секрет, положенный в файл на этапе подготовки и прочитанный агентом потом, обходит границу, которую облако выстроило специально, - это дыра, а не удобство.
Отсюда практический принцип проектирования облачных задач. То, что нужно только для подготовки, остаётся в фазе setup и не должно просачиваться в фазу агента. Если агенту действительно нужен доступ к чему-то чувствительному, его выдают через предусмотренный механизм, а не через побочный эффект setup-скрипта. Граница между фазами - это граница доверия, и уважать её нужно так же, как sandbox или permissions: она защищает именно там, где удобнее всего было бы срезать угол.
| Фаза | Задача | Граница |
|---|---|---|
| Setup | Клон, зависимости, инициализация репозитория | Детерминированно; может видеть подготовительные секреты |
| Agent | Рассуждение и правки над задачей | Не должна зависеть от секрета, оставленного в файле |
| Возврат |
| Ветка и PR |
| Ревьюить так же строго, как локальную работу |
Доступ агента в интернет в облаке - отдельная настраиваемая граница, а не данность. Изолированный контейнер по умолчанию не значит "свободный выход в сеть": то, куда агент может ходить, определяется конфигурацией окружения. Это важно и для безопасности, и для воспроизводимости: задача, тихо зависящая от внешнего ресурса, перестанет работать, когда ресурс изменится или станет недоступен. Сетевой доступ агента задают явно, под конкретную потребность, а не открывают целиком на всякий случай.
Результат облачной работы возвращается через git, а не остаётся в контейнере. Codex работает автономно и оформляет итог через ветку и PR - то есть через тот же механизм истории и ревью, что и любая другая работа. Это удобно именно потому, что вписывается в обычный процесс: облачная задача не создаёт особый канал доставки изменений, а пользуется git. Проверять и принимать её результат нужно так же строго, как результат локальной работы, - автономность выполнения не отменяет ревью.
Смысл облака - в автономной работе без открытого компьютера, и его сильные стороны прямо следуют из изоляции. Свежий клон, воспроизводимая подготовка, автономный прогон - всё это делает облако хорошим выбором для долгой задачи, которую не хочется держать на своей машине. Но та же изоляция задаёт и дисциплину: детерминированный setup, честное разделение фаз, явный сетевой доступ и уважение к границе секретов. Облако прощает меньше, чем локальная работа, где можно поправить на ходу.
Типичные провалы вокруг облака предсказуемы. Сделать подготовку недетерминированной и получить разные результаты на одной задаче. Смешать фазу setup и фазу агента, поручив агенту то, что должно быть готово заранее. Оставить секрет в файле на этапе setup и дать агентской фазе прочитать то, к чему у неё не должно быть доступа. И тихо зависеть от внешнего ресурса без явного сетевого доступа. Держите setup воспроизводимым, разделяйте фазы, уважайте границу секретов и задавайте сеть явно.