Облачные окружения
Создавайте, настраивайте и предоставляйте общий доступ к многократно используемым окружениям для задач в Codex Cloud
Codex Cloud выполняет задачи программирования в облаке, поэтому работа продолжается, даже когда ваш компьютер находится в спящем режиме. Используйте его в браузере, на мобильном устройстве или в настольном приложении, чтобы редактировать код, выполнять команды и проверять результаты.
Облачное окружение — это многократно используемая среда для задач: репозитории, зависимости, инструменты и настройки доступа. Codex изучает ваши репозитории, подготавливает среду и тестирует её вместе с вами. Каждая новая задача получает собственное изолированное рабочее окружение на основе опубликованной среды.
Для знакомства см. обзор Codex Cloud.
Запуск задачи в Codex Cloud
В веб-интерфейсе или настольном приложении выберите Работать в > Облако и укажите опубликованную среду. На мобильном устройстве откройте Codex и выберите опубликованную среду. Опишите, что вы хотите поручить Codex, и отправьте запрос. Если вам нужна новая конфигурация, создайте среду в веб-интерфейсе или настольном приложении.
Администраторы Enterprise могут проверить доступ к рабочему пространству перед внедрением Codex Cloud.
Создание и публикация окружения
Создавайте новые среды в веб-интерфейсе или настольном приложении. Войдите с помощью учётной записи ChatGPT:
- В новой задаче выберите Работать в > Облако, откройте Выбрать окружение, затем выберите Создать окружение.
- Выберите репозитории GitHub, которые нужно клонировать. При необходимости подключите GitHub.
- Выберите Начать. Codex изучит репозитории, установит зависимости и инструменты, а затем протестирует рабочий процесс.
- По запросу предоставьте недостающий доступ или информацию. Вы также можете запросить определённые версии, команды или сервисы.
- Просмотрите отчёт о настройке, конфигурацию и файлы. Завершите оставшуюся работу, сохраните изменения и выберите Опубликовать.
- Когда появится сообщение Окружение опубликовано, выберите Начать новую задачу и опишите, что должен сделать Codex.
Вы также можете начать из раздела Настройки > Codex Cloud > Окружения > Создать окружение.
Настройка установки и запуска
Codex определяет среды выполнения, версии пакетов, инструменты и сервисы по вашим репозиториям. Уточняйте настройки в диалоге; вам не нужно самостоятельно писать скрипт установки.
Codex может записать протестированные настройки в два поля:
- Скрипт установки: команды для установки зависимостей и подготовки ресурсов для разработки.
- Навык запуска: инструкции для запуска сервисов и проверки их готовности.
Повторное использование и обновление сохранённого состояния
- Новая задача: запускается с подготовленной файловой системой опубликованного окружения.
- Существующая задача: продолжает работу со своими сохранёнными файлами, включая незакоммиченные изменения и установленные инструменты.
- Обновление репозитория: выполняется автоматически в фоновом режиме, сохраняя кеши зависимостей без повторного выполнения команд установки или запуска.
Чтобы обновить многократно используемую среду, откройте Настройки > Codex Cloud > Окружения. В меню … окружения выберите Изменить. Опишите изменение, дайте Codex подготовить и протестировать его, сохраните изменения и выберите Опубликовать повторно. Запустите новую задачу, чтобы использовать обновление; существующие задачи сохраняют собственное состояние.
Фиксируйте важные изменения в коммитах или сохраняйте нужные результаты. Сохранённое состояние не заменяет систему контроля версий.
Настройка переменных окружения и сетевых секретов
Codex выявляет недостающие настройки и запрашивает значения, которые не может определить самостоятельно. В конфигурации окружения выберите Управление рядом с разделом Переменные окружения или Сетевые секреты. Выберите способ предоставления каждого значения:
| Настройка | Назначение | Способ передачи |
|---|---|---|
| Переменная окружения | Значение, которое программа должна читать напрямую | Передаётся непосредственно программам в окружении. |
| Сетевой секрет | Учётные данные, отправляемые определённому HTTPS-сервису | Программы получают плейсхолдер; прокси подставляет реальное значение для разрешённых адресатов. |
Для сетевых секретов задайте Ключ, Значение и Разрешённые домены. Используйте ключ, отличный от ключей любых напрямую передаваемых переменных. Подстановка работает для HTTPS на порту 443 во время настройки и выполнения задач; исходные учётные данные не попадают в локальный процесс или файл.
При сохранении сетевых секретов, принадлежащих окружению, их адресаты добавляются в список разрешённых при ограниченном доступе в интернет. Напрямую передаваемые переменные и личные значения не добавляют адресатов. Перед тестированием проверьте сохранённую сетевую политику. Требования рабочего пространства см. в разделе Agent Security.
Предоставление личных значений
Используйте личное хранилище для сохранения собственных переменных окружения и сетевых секретов для облачных окружений в вашем рабочем пространстве.
Общее окружение может запрашивать значения, которые каждый пользователь предоставляет из своей учётной записи. При предоставлении общего доступа к окружению передаются эти требования, а не ваши личные учётные данные.
При появлении запроса введите обязательные значения в разделе Добавить личные секреты и выберите Сохранить и запустить. Необязательные значения можно не задавать.
Чтобы заранее настроить значения:
- Откройте Настройки > Codex Cloud, затем выберите вкладку Личное хранилище.
- Выберите Добавить, укажите Переменная окружения или Сетевой секрет в поле Тип, затем введите соответствующий Ключ и своё Значение.
- В поле Применяется к выберите Все окружения или Выбранные окружения, затем нажмите Сохранить.
В задачу передаются только запрошенные значения. Значение для конкретного окружения имеет приоритет над общим значением по умолчанию. Личные сетевые секреты используют разрешённых адресатов окружения и подставляются вместо плейсхолдеров таким же образом.
Общий доступ в рабочем пространстве Enterprise
Предоставьте общий доступ к подготовленной среде, чтобы коллеги могли запускать на её основе собственные задачи:
- Откройте конфигурацию окружения.
- В разделе Конфиденциальность > Кто может использовать выберите своё рабочее пространство.
- Сохраните изменение. Опубликуйте окружение, если ещё этого не сделали.
Выберите Только я в разделе Кто может использовать, чтобы оставить окружение личным. У каждой задачи отдельные рабочие файлы; доступ к среде не предоставляет доступ к чужой задаче или право редактировать окружение.
Перед предоставлением общего доступа проверьте подготовленные файлы и учётные данные, принадлежащие окружению. Облачные идентификаторы и VPN-подключения также могут предоставлять общий доступ к сервисам. Доступ к репозиториям и личные подключения зависят от учётной записи, запускающей задачу.
Разрешение Использовать Codex в облаке управляет доступом к задачам. Разрешение Управлять окружениями рабочего пространства управляет созданием и редактированием окружений, доступных всему рабочему пространству. См. Роли и разрешения рабочего пространства.
Agent Security
Настройки доступа в интернет окружения определяют, к каким доменам может обращаться его виртуальная машина. Настройки VPN подключают эту виртуальную машину к сервисам в частной сети.
В рабочих пространствах Enterprise администраторы используют Agent Security для настройки требований рабочего пространства к поведению агентов, сетевому доступу в управляемых средах выполнения и использованию поддерживаемых инструментов. Эти требования действуют наряду с настройками доменов, сохранёнными для каждого окружения. Сведения о глобальных политиках и поддерживаемых переопределениях Codex Cloud см. в разделе Agent Security.
Подключение к сервисам
Настройте доступ к реестрам пакетов, API и другим сервисам, необходимым для вашего рабочего процесса:
- В конфигурации окружения включите Разрешить Codex доступ в интернет.
- В разделе Разрешить домены выберите Менеджеры пакетов или Только указанные домены, затем добавьте необходимые хосты в раздел Дополнительные разрешённые домены. Используйте Все (без ограничений), если рабочему процессу нужен более широкий доступ.
- Сохраните настройки и протестируйте сервисы во время настройки окружения. Опубликуйте или повторно опубликуйте окружение, затем проверьте доступ в новой задаче.
Требования рабочего пространства см. в разделе 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-подключение.
- Откройте настройки окружения Дополнительно > VPN и выберите Добавить.
- Введите учётные данные для подключения от вашего VPN-провайдера.
- Разрешите необходимые адресаты как в правилах доступа VPN, так и в настройках доступа в интернет окружения.
- Сохраните настройки, затем опубликуйте или повторно опубликуйте окружение. Запустите новую задачу и протестируйте сервис.
Сейчас поддерживается VPN-провайдер Tailscale. При создании ключа аутентификации Tailscale включите Многоразовый и Эфемерный. Многоразовый ключ позволяет новым виртуальным машинам облачных задач присоединяться к вашей сети. Tailscale автоматически удаляет эфемерные устройства после их отключения от сети. Планируется поддержка других VPN-провайдеров.
Поддерживаются маршруты к частным подсетям IPv4. Задачи могут использовать раздельный DNS в Tailscale и MagicDNS для доступа к частным сервисам по имени хоста.
Если ваш сервис использует внутренний DNS организации, настройте раздельный DNS
в консоли администрирования Tailscale, чтобы направлять запросы к внутреннему домену на ваш DNS-сервер.
Используйте полное доменное имя хоста сервиса, например
api.corp.example.com, которое должно разрешаться в IPv4-адрес. Доступ к целевому адресу
также должен быть разрешён настройками доступа среды к интернету и вашими
правилами доступа Tailscale.
Задачи в общем окружении используют настроенный для него VPN-идентификатор.
Доступ к облачным ресурсам через OIDC
OpenID Connect (OIDC) позволяет задаче получать краткосрочные учётные данные для облачных ресурсов. Ваша организация настраивает доверие с облачным провайдером и предоставляет идентификатору разрешения, необходимые для рабочего процесса.
- Откройте настройки сохранённого окружения Дополнительно > OIDC.
- Выберите Добавить, затем выберите доступное подключение или Создать подключение… для поддерживаемого провайдера.
- Для нового подключения введите сведения об идентификаторе у провайдера и создайте подключение. На стороне провайдера настройте доверие с помощью отображаемых полей Issuer, Audience, Subject или условий для утверждений и предоставьте разрешения на ресурсы.
- Убедитесь, что подключение привязано, и проверьте его псевдоним. Сохраните настройки, затем опубликуйте или повторно опубликуйте окружение.
- Запустите новую задачу и протестируйте разрешённую и запрещённую операции.
Настройка зависит от провайдера; привязать можно только поддерживаемые подключения. Доступ определяется разрешениями идентификатора; ваши личные разрешения у провайдера ему не передаются. Отдельно разрешите необходимые конечные точки провайдера и адреса сервисов в сетевой политике.
Сохраните изменения привязки или псевдонима, чтобы применить их во время настройки; опубликуйте или повторно опубликуйте окружение, чтобы использовать их в новых задачах. Изменение общего подключения идентификатора может повлиять на другие окружения, которые его используют.
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-запрос
Проверьте имя хоста назначения и аутентификацию по отдельности:
- Убедитесь, что хост разрешён в
настройках доступа в интернет окружения. Для частного реестра по адресу
packages.example.comпроверьте именно это имя хоста. Если для скачивания также используетсяdownloads.example.com, этому хосту тоже нужен доступ. - Проверьте URL и учётные данные, заданные в менеджере пакетов или клиенте. Разрешение домена не предоставляет доступ к сервису.
- Если для аутентификации используется сетевой секрет, убедитесь, что его Разрешённые домены включают адресат, а запрос использует HTTPS на порту 443.
- В рабочем пространстве Enterprise попросите администратора проверить применимые требования Agent Security вместе с настройками окружения.
Сохраните все изменения конфигурации и протестируйте запрос во время настройки. Опубликуйте или повторно опубликуйте окружение, затем проверьте доступ в новой задаче.
Необходимое значение отсутствует или не может быть использовано
Убедитесь, что вы добавили значение в правильный раздел конфигурации окружения:
- Переменные окружения: используйте их для значений, которые программы должны читать
напрямую, например
APP_MODE=development. - Сетевые секреты: используйте их для учётных данных, отправляемых разрешённому HTTPS- сервису, например токена частного реестра. Программы получают плейсхолдер; прокси подставляет учётные данные в соответствующие запросы. Если программе нужно читать исходное значение, добавьте его в раздел Переменные окружения.
Для личного значения убедитесь, что его Ключ соответствует запросу окружения, а поле Применяется к включает это окружение. Значение для конкретного окружения имеет приоритет над общим значением по умолчанию.
См. Переменные окружения и сетевые секреты для получения инструкций по настройке.
VPN подключается, но HTTP- или HTTPS-сервис недоступен
- Убедитесь, что клиент использует HTTP/HTTPS-прокси, настроенный для среды.
При проверке с помощью
curlне указывайте--noproxy, чтобы запрос шёл через этот прокси. - Убедитесь, что целевой адрес разрешён как списком допустимых доменов среды, так и правилами доступа VPN.
- Если сервис доступен по IP-адресу, но недоступен по имени хоста, проверьте настройки DNS в Tailscale. Для внутреннего домена компании убедитесь, что раздельный DNS указывает на правильный DNS-сервер и что этот сервер доступен через вашу сеть Tailscale. Используйте полное доменное имя хоста сервиса и убедитесь, что оно разрешается в IPv4-адрес.
См. Частная сеть для настройки подключения.
Окружение или его обновления недоступны для задачи
Проверьте окружение в разделе Настройки > Codex Cloud > Окружения. Если у него есть отметка Не опубликовано, завершите настройку и выберите Опубликовать, чтобы сделать его доступным для задач.
Чтобы изменить опубликованное окружение, выберите Изменить, дайте Codex подготовить и протестировать изменения, затем выберите Опубликовать повторно. Запустите новую задачу из обновлённого окружения, чтобы использовать новую среду. Существующие задачи сохраняют собственное рабочее состояние.