Облачные окружения

Создавайте, настраивайте и предоставляйте общий доступ к многократно используемым окружениям для задач в Codex Cloud

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

Облачное окружение — это многократно используемая среда для задач: репозитории, зависимости, инструменты и настройки доступа. Codex изучает ваши репозитории, подготавливает среду и тестирует её вместе с вами. Каждая новая задача получает собственное изолированное рабочее окружение на основе опубликованной среды.

Для знакомства см. обзор Codex Cloud.

Запуск задачи в Codex Cloud

В веб-интерфейсе или настольном приложении выберите Работать в > Облако и укажите опубликованную среду. На мобильном устройстве откройте Codex и выберите опубликованную среду. Опишите, что вы хотите поручить Codex, и отправьте запрос. Если вам нужна новая конфигурация, создайте среду в веб-интерфейсе или настольном приложении.

Администраторы Enterprise могут проверить доступ к рабочему пространству перед внедрением Codex Cloud.

Создание и публикация окружения

Создавайте новые среды в веб-интерфейсе или настольном приложении. Войдите с помощью учётной записи ChatGPT:

  1. В новой задаче выберите Работать в > Облако, откройте Выбрать окружение, затем выберите Создать окружение.
  2. Выберите репозитории GitHub, которые нужно клонировать. При необходимости подключите GitHub.
  3. Выберите Начать. Codex изучит репозитории, установит зависимости и инструменты, а затем протестирует рабочий процесс.
  4. По запросу предоставьте недостающий доступ или информацию. Вы также можете запросить определённые версии, команды или сервисы.
  5. Просмотрите отчёт о настройке, конфигурацию и файлы. Завершите оставшуюся работу, сохраните изменения и выберите Опубликовать.
  6. Когда появится сообщение Окружение опубликовано, выберите Начать новую задачу и опишите, что должен сделать Codex.

Вы также можете начать из раздела Настройки > Codex Cloud > Окружения > Создать окружение.

Настройка установки и запуска

Codex определяет среды выполнения, версии пакетов, инструменты и сервисы по вашим репозиториям. Уточняйте настройки в диалоге; вам не нужно самостоятельно писать скрипт установки.

Codex может записать протестированные настройки в два поля:

  • Скрипт установки: команды для установки зависимостей и подготовки ресурсов для разработки.
  • Навык запуска: инструкции для запуска сервисов и проверки их готовности.

Повторное использование и обновление сохранённого состояния

  • Новая задача: запускается с подготовленной файловой системой опубликованного окружения.
  • Существующая задача: продолжает работу со своими сохранёнными файлами, включая незакоммиченные изменения и установленные инструменты.
  • Обновление репозитория: выполняется автоматически в фоновом режиме, сохраняя кеши зависимостей без повторного выполнения команд установки или запуска.

Чтобы обновить многократно используемую среду, откройте Настройки > Codex Cloud > Окружения. В меню … окружения выберите Изменить. Опишите изменение, дайте Codex подготовить и протестировать его, сохраните изменения и выберите Опубликовать повторно. Запустите новую задачу, чтобы использовать обновление; существующие задачи сохраняют собственное состояние.

Фиксируйте важные изменения в коммитах или сохраняйте нужные результаты. Сохранённое состояние не заменяет систему контроля версий.

Настройка переменных окружения и сетевых секретов

Codex выявляет недостающие настройки и запрашивает значения, которые не может определить самостоятельно. В конфигурации окружения выберите Управление рядом с разделом Переменные окружения или Сетевые секреты. Выберите способ предоставления каждого значения:

Настройка Назначение Способ передачи
Переменная окружения Значение, которое программа должна читать напрямую Передаётся непосредственно программам в окружении.
Сетевой секрет Учётные данные, отправляемые определённому HTTPS-сервису Программы получают плейсхолдер; прокси подставляет реальное значение для разрешённых адресатов.

Для сетевых секретов задайте Ключ, Значение и Разрешённые домены. Используйте ключ, отличный от ключей любых напрямую передаваемых переменных. Подстановка работает для HTTPS на порту 443 во время настройки и выполнения задач; исходные учётные данные не попадают в локальный процесс или файл.

При сохранении сетевых секретов, принадлежащих окружению, их адресаты добавляются в список разрешённых при ограниченном доступе в интернет. Напрямую передаваемые переменные и личные значения не добавляют адресатов. Перед тестированием проверьте сохранённую сетевую политику. Требования рабочего пространства см. в разделе Agent Security.

Предоставление личных значений

Используйте личное хранилище для сохранения собственных переменных окружения и сетевых секретов для облачных окружений в вашем рабочем пространстве.

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

При появлении запроса введите обязательные значения в разделе Добавить личные секреты и выберите Сохранить и запустить. Необязательные значения можно не задавать.

Чтобы заранее настроить значения:

  1. Откройте Настройки > Codex Cloud, затем выберите вкладку Личное хранилище.
  2. Выберите Добавить, укажите Переменная окружения или Сетевой секрет в поле Тип, затем введите соответствующий Ключ и своё Значение.
  3. В поле Применяется к выберите Все окружения или Выбранные окружения, затем нажмите Сохранить.

В задачу передаются только запрошенные значения. Значение для конкретного окружения имеет приоритет над общим значением по умолчанию. Личные сетевые секреты используют разрешённых адресатов окружения и подставляются вместо плейсхолдеров таким же образом.

Общий доступ в рабочем пространстве Enterprise

Предоставьте общий доступ к подготовленной среде, чтобы коллеги могли запускать на её основе собственные задачи:

  1. Откройте конфигурацию окружения.
  2. В разделе Конфиденциальность > Кто может использовать выберите своё рабочее пространство.
  3. Сохраните изменение. Опубликуйте окружение, если ещё этого не сделали.

Выберите Только я в разделе Кто может использовать, чтобы оставить окружение личным. У каждой задачи отдельные рабочие файлы; доступ к среде не предоставляет доступ к чужой задаче или право редактировать окружение.

Перед предоставлением общего доступа проверьте подготовленные файлы и учётные данные, принадлежащие окружению. Облачные идентификаторы и VPN-подключения также могут предоставлять общий доступ к сервисам. Доступ к репозиториям и личные подключения зависят от учётной записи, запускающей задачу.

Разрешение Использовать Codex в облаке управляет доступом к задачам. Разрешение Управлять окружениями рабочего пространства управляет созданием и редактированием окружений, доступных всему рабочему пространству. См. Роли и разрешения рабочего пространства.

Agent Security

Настройки доступа в интернет окружения определяют, к каким доменам может обращаться его виртуальная машина. Настройки VPN подключают эту виртуальную машину к сервисам в частной сети.

В рабочих пространствах Enterprise администраторы используют Agent Security для настройки требований рабочего пространства к поведению агентов, сетевому доступу в управляемых средах выполнения и использованию поддерживаемых инструментов. Эти требования действуют наряду с настройками доменов, сохранёнными для каждого окружения. Сведения о глобальных политиках и поддерживаемых переопределениях Codex Cloud см. в разделе Agent Security.

Подключение к сервисам

Настройте доступ к реестрам пакетов, API и другим сервисам, необходимым для вашего рабочего процесса:

  1. В конфигурации окружения включите Разрешить Codex доступ в интернет.
  2. В разделе Разрешить домены выберите Менеджеры пакетов или Только указанные домены, затем добавьте необходимые хосты в раздел Дополнительные разрешённые домены. Используйте Все (без ограничений), если рабочему процессу нужен более широкий доступ.
  3. Сохраните настройки и протестируйте сервисы во время настройки окружения. Опубликуйте или повторно опубликуйте окружение, затем проверьте доступ в новой задаче.

Требования рабочего пространства см. в разделе Agent Security. Разрешение доступа к адресату не предоставляет учётные данные или права в этом сервисе.

Домены, включённые в набор «Менеджеры пакетов»

Набор Менеджеры пакетов разрешает доступ к следующим реестрам, репозиториям и хостам для скачивания:

  • npm и Yarn: registry.npmjs.org, registry.yarnpkg.com
  • PyPI и PyTorch: pypi.org, files.pythonhosted.org, download.pytorch.org, download-r2.pytorch.org
  • Rust: crates.io, index.crates.io, static.crates.io, static.rust-lang.org
  • Go: proxy.golang.org, sum.golang.org
  • Maven и Gradle: repo.maven.apache.org, repo1.maven.org, plugins.gradle.org, plugins-artifacts.gradle.org, services.gradle.org, downloads.gradle.org
  • Bazel: bcr.bazel.build, mirror.bazel.build
  • Buf: buf.build
  • CPAN: cpan.metacpan.org
  • Репозитории Ubuntu и Debian: archive.ubuntu.com, security.ubuntu.com, ports.ubuntu.com, ppa.launchpadcontent.net, deb.debian.org, security.debian.org
  • Репозитории поставщиков: packages.microsoft.com, apt.buildkite.com, developer.download.nvidia.com, deb.nodesource.com
  • Исходный код, архивы, релизы и LFS на GitHub: github.com, codeload.github.com, github-cloud.githubusercontent.com, github-cloud.s3.amazonaws.com, release-assets.githubusercontent.com
  • Другие источники загрузок: dl.google.com, pkgconfig.freedesktop.org

Для зарегистрированных корневых доменов Codex также разрешает соответствующее имя хоста www. Другие поддомены требуют отдельных записей в списке разрешённых доменов. Добавьте любые другие хосты, необходимые вашим зависимостям, в раздел Дополнительные разрешённые домены.

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

Частная сеть (VPN)

Предоставьте облачным задачам доступ к внутренним API, реестрам пакетов и другим HTTP- или HTTPS-сервисам в вашей частной сети через VPN-подключение.

  1. Откройте настройки окружения Дополнительно > VPN и выберите Добавить.
  2. Введите учётные данные для подключения от вашего VPN-провайдера.
  3. Разрешите необходимые адресаты как в правилах доступа VPN, так и в настройках доступа в интернет окружения.
  4. Сохраните настройки, затем опубликуйте или повторно опубликуйте окружение. Запустите новую задачу и протестируйте сервис.

Сейчас поддерживается VPN-провайдер Tailscale. При создании ключа аутентификации Tailscale включите Многоразовый и Эфемерный. Многоразовый ключ позволяет новым виртуальным машинам облачных задач присоединяться к вашей сети. Tailscale автоматически удаляет эфемерные устройства после их отключения от сети. Планируется поддержка других VPN-провайдеров.

Поддерживаются маршруты к частным подсетям IPv4. Задачи могут использовать раздельный DNS в Tailscale и MagicDNS для доступа к частным сервисам по имени хоста.

Если ваш сервис использует внутренний DNS организации, настройте раздельный DNS в консоли администрирования Tailscale, чтобы направлять запросы к внутреннему домену на ваш DNS-сервер. Используйте полное доменное имя хоста сервиса, например api.corp.example.com, которое должно разрешаться в IPv4-адрес. Доступ к целевому адресу также должен быть разрешён настройками доступа среды к интернету и вашими правилами доступа Tailscale.

Задачи в общем окружении используют настроенный для него VPN-идентификатор.

Доступ к облачным ресурсам через OIDC

OpenID Connect (OIDC) позволяет задаче получать краткосрочные учётные данные для облачных ресурсов. Ваша организация настраивает доверие с облачным провайдером и предоставляет идентификатору разрешения, необходимые для рабочего процесса.

  1. Откройте настройки сохранённого окружения Дополнительно > OIDC.
  2. Выберите Добавить, затем выберите доступное подключение или Создать подключение… для поддерживаемого провайдера.
  3. Для нового подключения введите сведения об идентификаторе у провайдера и создайте подключение. На стороне провайдера настройте доверие с помощью отображаемых полей Issuer, Audience, Subject или условий для утверждений и предоставьте разрешения на ресурсы.
  4. Убедитесь, что подключение привязано, и проверьте его псевдоним. Сохраните настройки, затем опубликуйте или повторно опубликуйте окружение.
  5. Запустите новую задачу и протестируйте разрешённую и запрещённую операции.

Настройка зависит от провайдера; привязать можно только поддерживаемые подключения. Доступ определяется разрешениями идентификатора; ваши личные разрешения у провайдера ему не передаются. Отдельно разрешите необходимые конечные точки провайдера и адреса сервисов в сетевой политике.

Сохраните изменения привязки или псевдонима, чтобы применить их во время настройки; опубликуйте или повторно опубликуйте окружение, чтобы использовать их в новых задачах. Изменение общего подключения идентификатора может повлиять на другие окружения, которые его используют.

OIDC доступен по запросу для рабочих пространств Enterprise. Обратитесь к вашей команде сопровождения OpenAI, чтобы включить его.

Запуск задачи и возвращение к ней

Выберите опубликованное окружение и опишите свою цель. Codex использует его репозитории и инструменты для редактирования файлов, выполнения команд и проверки своей работы. Проверьте изменения и результаты тестов перед созданием коммита или pull request.

Продолжение работы в браузере или на мобильном устройстве

В веб-интерфейсе выберите Работать в > Облако и укажите среду. На мобильном устройстве откройте Codex и выберите доступную среду. Создавайте новые среды в веб-интерфейсе или настольном приложении.

Повторно откройте ту же задачу, чтобы продолжить работу на другом устройстве. Новая задача начинает отдельную работу на основе опубликованной среды. Задачи в Codex Cloud могут продолжать выполняться, пока ваш компьютер находится в спящем режиме.

Запуск задач из Slack или Microsoft Teams

В рабочем пространстве Enterprise с включённым делегированием в облако попросите @ChatGPT в Slack или Microsoft Teams поработать с репозиторием. Codex использует контекст диалога, чтобы выбрать окружение, доступное вашему рабочему пространству и учётной записи, запускающей задачу. Вы можете указать предпочтительное окружение или добавить указания в запрос.

Для Slack в рабочих пространствах с ролевым управлением доступом к Codex Cloud необходимо предоставить доступ к Codex Cloud как служебной учётной записи развёртывания, так и пользователю, отправляющему запрос. См. Включение Codex Cloud для Slack для настройки администратором.

Выполните все запросы на подключение и подтверждение, затем проверьте результат в диалоге. Чтобы продолжить задачу, отправьте следующий запрос из той же подключённой учётной записи; запрос другого участника не продолжает вашу задачу автоматически.

См. Управление ChatGPT в Slack и Teams для настройки рабочего пространства и Использование ChatGPT в Slack для управления задачами в Slack.

Характеристики виртуальных машин

Каждая облачная задача выполняется на виртуальной машине со следующими ресурсами по умолчанию:

Тариф ChatGPT vCPU Память Место на диске
Plus, Edu Plus 2 8 GiB 8 GiB
Pro, Business, Enterprise 4 16 GiB 32 GiB
Edu, Edu Pro 4 16 GiB 32 GiB

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

Для Enterprise доступны более мощные виртуальные машины и индивидуальные конфигурации. Обратитесь к вашей команде сопровождения OpenAI за информацией о доступных конфигурациях и ценах.

Текущие ограничения

Следующие возможности пока не поддерживаются в облачных окружениях, но запланированы:

  • Управление компьютером и браузером
  • GitLab и самостоятельно размещаемый GitHub Enterprise Server

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

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

Настройка завершается с ошибкой или отсутствует необходимый инструмент

Найдите в диалоге настройки команду, завершившуюся с ошибкой. Попросите Codex диагностировать ошибку и повторно выполнить команду после исправления. Например: «Установите pnpm и запустите тесты проекта».

  • Если первоначальная настройка не удалась, выберите Попробовать снова, чтобы повторить попытку с репозиториями, уже выбранными в этом сеансе настройки.
  • Если для исправления нужно изменить исходные файлы, манифест пакета или файл блокировки зависимостей, внесите изменение в задаче программирования, затем вернитесь к настройке.

После того как Codex проверит настройки, опубликуйте или повторно опубликуйте окружение.

Не удаётся скачать пакет или выполнить HTTPS-запрос

Проверьте имя хоста назначения и аутентификацию по отдельности:

  1. Убедитесь, что хост разрешён в настройках доступа в интернет окружения. Для частного реестра по адресу packages.example.com проверьте именно это имя хоста. Если для скачивания также используется downloads.example.com, этому хосту тоже нужен доступ.
  2. Проверьте URL и учётные данные, заданные в менеджере пакетов или клиенте. Разрешение домена не предоставляет доступ к сервису.
  3. Если для аутентификации используется сетевой секрет, убедитесь, что его Разрешённые домены включают адресат, а запрос использует HTTPS на порту 443.
  4. В рабочем пространстве Enterprise попросите администратора проверить применимые требования Agent Security вместе с настройками окружения.

Сохраните все изменения конфигурации и протестируйте запрос во время настройки. Опубликуйте или повторно опубликуйте окружение, затем проверьте доступ в новой задаче.

Необходимое значение отсутствует или не может быть использовано

Убедитесь, что вы добавили значение в правильный раздел конфигурации окружения:

  • Переменные окружения: используйте их для значений, которые программы должны читать напрямую, например APP_MODE=development.
  • Сетевые секреты: используйте их для учётных данных, отправляемых разрешённому HTTPS- сервису, например токена частного реестра. Программы получают плейсхолдер; прокси подставляет учётные данные в соответствующие запросы. Если программе нужно читать исходное значение, добавьте его в раздел Переменные окружения.

Для личного значения убедитесь, что его Ключ соответствует запросу окружения, а поле Применяется к включает это окружение. Значение для конкретного окружения имеет приоритет над общим значением по умолчанию.

См. Переменные окружения и сетевые секреты для получения инструкций по настройке.

VPN подключается, но HTTP- или HTTPS-сервис недоступен

  1. Убедитесь, что клиент использует HTTP/HTTPS-прокси, настроенный для среды. При проверке с помощью curl не указывайте --noproxy, чтобы запрос шёл через этот прокси.
  2. Убедитесь, что целевой адрес разрешён как списком допустимых доменов среды, так и правилами доступа VPN.
  3. Если сервис доступен по IP-адресу, но недоступен по имени хоста, проверьте настройки DNS в Tailscale. Для внутреннего домена компании убедитесь, что раздельный DNS указывает на правильный DNS-сервер и что этот сервер доступен через вашу сеть Tailscale. Используйте полное доменное имя хоста сервиса и убедитесь, что оно разрешается в IPv4-адрес.

См. Частная сеть для настройки подключения.

Окружение или его обновления недоступны для задачи

Проверьте окружение в разделе Настройки > Codex Cloud > Окружения. Если у него есть отметка Не опубликовано, завершите настройку и выберите Опубликовать, чтобы сделать его доступным для задач.

Чтобы изменить опубликованное окружение, выберите Изменить, дайте Codex подготовить и протестировать изменения, затем выберите Опубликовать повторно. Запустите новую задачу из обновлённого окружения, чтобы использовать новую среду. Существующие задачи сохраняют собственное рабочее состояние.