Как OpenAI использует Codex
Влад СмирновГлавная мысль: Codex дает больше всего пользы в обычной инженерной работе, где нужно быстро разобраться в коде, внести согласованные изменения, написать тесты, ускорить выпуск функции или не потерять контекст между встречами и дежурствами.
Codex используют почти все технические команды
В OpenAI Codex ежедневно используют команды Security, Product Engineering, Frontend, API, Infrastructure и Performance Engineering. Задачи разные: понять незнакомую часть большой системы, провести рефакторинг, ускорить миграцию, найти причину инцидента, подготовить тесты или довести до выпуска небольшие исправления.
Общий подход простой: инженер задает Codex достаточно конкретную задачу, дает контекст репозитория, затем проверяет план, правки, тесты и pull request. Codex берет на себя черновую и поисковую часть работы, а инженер оставляет за собой решение, проверку и ответственность за результат.
1. Быстро разобраться в кодовой базе
Codex помогает входить в незнакомые участки репозитория при онбординге, отладке и реагировании на инциденты. Его просят найти основную логику функции, показать связи между сервисами и модулями, проследить поток данных и объяснить, как ошибка проходит через систему.
Это особенно полезно там, где документация неполная или архитектура давно менялась. Вместо ручного поиска по десяткам файлов инженер получает карту релевантных мест и быстрее переходит к проверке гипотез.
Как это описывают команды
- Инженер по производительности: когда исправляю ошибку, использую режим Ask, чтобы найти другие места в кодовой базе, где такая же проблема может повториться.
- Инженер надежности API Platform: на дежурстве вставляю трассировку стека и спрашиваю, где живет поток аутентификации. Codex сразу ведет к нужным файлам, поэтому разбор идет быстрее.
- DevOps-инженер Infrastructure Services: вопросы вроде «где это делать в репозитории?» по Terraform и Python Codex закрывает заметно быстрее, чем grep.
Примеры запросов к Codex
- Где в этом репозитории реализована логика аутентификации?
- Опиши, как запрос проходит через этот сервис от точки входа до ответа.
- Какие модули взаимодействуют с [название модуля] и как в них обрабатываются сбои?
2. Рефакторинг и миграции
Codex часто используют для изменений, которые затрагивают много файлов или пакетов. Это может быть обновление API, замена старого шаблона реализации, переход на новую зависимость или подготовка кода к тестированию.
Сильная сторона Codex здесь - не простая замена текста, а учет структуры проекта и зависимостей. Если одно и то же изменение нужно внести в десятки мест, регулярное выражение легко пропустит контекст, а Codex может сначала найти варианты использования, объяснить последствия и затем подготовить согласованные правки.
Как это описывают команды
- Инженер серверной разработки ChatGPT Web: Codex заменил все устаревшие вызовы getUserById() на новый сервисный шаблон и открыл pull request. На это ушли минуты вместо часов.
- Продуктовый инженер ChatGPT Enterprise: чтобы убрать блокеры запуска, я прошу Codex найти все вхождения старого шаблона, описать влияние в Markdown и открыть pull request с исправлениями.
Примеры запросов к Codex
- Раздели этот файл на отдельные модули по зонам ответственности и сгенерируй тесты для каждого модуля.
- Переведи весь доступ к базе данных с колбэков на async/await.
3. Оптимизация производительности
Codex используют для поиска и исправления узких мест производительности: неэффективных циклов, лишних операций, дорогих запросов, повторных обращений к базе данных и участков с высоким потреблением памяти.
В задачах настройки и повышения надежности инженеры просят Codex объяснить медленный путь выполнения, предложить более экономную реализацию и указать места, где уместны пакетная обработка, кэширование или более аккуратная работа с памятью.
Отдельная польза - поддержание здоровья кода. Codex помогает находить рискованные и устаревшие шаблоны, которые еще используются в проекте, и снижать технический долг до того, как он превратится в регрессии.
Как это описывают команды
- Инфраструктурный инженер API Reliability: я прошу Codex найти повторяющиеся дорогие вызовы базы данных. Он хорошо подсвечивает горячие пути и черновики пакетных запросов, которые потом можно довести вручную.
- Платформенный инженер Model Serving: Codex быстро замечает проблемы производительности. Пять минут на хороший запрос могут сэкономить полчаса ручной работы.
Примеры запросов к Codex
- Оптимизируй этот цикл по памяти и объясни, почему новая версия быстрее.
- Найди повторяющиеся дорогие операции в этом обработчике запроса и предложи места для кэширования.
- Предложи более быстрый способ пакетно выполнять запросы к базе данных в этой функции.
4. Улучшение покрытия тестами
Codex помогает быстрее писать тесты, особенно в модулях с низким покрытием или без тестов. При исправлении ошибки или рефакторинге инженеры просят его предложить проверки для граничных случаев и вероятных путей отказа.
Для нового кода Codex может сгенерировать модульные или интеграционные тесты по сигнатуре функции и окружающей логике. Он часто хорошо замечает условия, которые легко забыть в первом наборе тестов: пустой ввод, максимальную длину, недопустимое состояние, необычные, но валидные данные.
Как это описывают команды
- Инженер клиентской разработки ChatGPT Desktop: я указываю Codex на модули с низким покрытием на ночь, а утром получаю pull request с запускаемыми модульными тестами.
- Инженер серверной разработки Payments & Billing: когда переключаться между ветками монорепозитория неудобно, я прошу Codex написать тесты и запустить CI, а сам продолжаю работать в своей ветке.
Примеры запросов к Codex
- Напиши модульные тесты для этой функции, включая граничные случаи и пути отказа.
- Сгенерируй тест на основе свойств для этой функции сортировки.
- Расширь этот файл тестов, чтобы покрыть пропущенные сценарии с null-вводом и недопустимыми состояниями.
5. Ускорение разработки
Codex помогает ускорять начало и конец цикла разработки. В начале новой функции его используют для каркаса: папок, модулей, заглушек API и минимального запускаемого кода, чтобы не собирать каждую часть вручную.
Ближе к выпуску Codex берет небольшие, но важные задачи: разбор ошибок, закрытие последних пробелов реализации, подготовку скриптов выката, конфигурационных файлов и телеметрии.
Еще один частый сценарий - превратить отзыв пользователя или спецификацию в черновой код, к которому можно вернуться позже и доработать.
Как это описывают команды
- Продуктовый инженер ChatGPT Enterprise: я весь день был на встречах и все равно смержил четыре pull request, потому что Codex работал в фоне.
- Инженер полного стека Internal Tools: Codex помог идеально довести до выпуска три или четыре низкоприоритетных исправления, которые иначе долго лежали бы в списке задач.
Примеры запросов к Codex
- Создай каркас маршрута API POST /events с базовой проверкой данных и логированием.
- Добавь хук телеметрии для отслеживания успеха и ошибки в новом потоке онбординга, используя этот шаблон: [пример кода телеметрии].
- Создай заглушку реализации на основе этой спецификации: [спецификация или отзыв пользователя].
6. Сохранять рабочий ритм
Codex полезен, когда день разбит встречами, дежурствами и внезапными переключениями контекста. Его используют, чтобы зафиксировать незавершенную мысль, превратить заметки в рабочий прототип или вынести побочную идею в отдельную задачу.
Так инженеру проще остановиться и продолжить позже: Codex хранит промежуточный план, черновик изменений или pull request, к которому можно вернуться, когда появится время.
Как это описывают команды
- Инженер серверной разработки ChatGPT API: если замечаю небольшое исправление по пути, запускаю задачу Codex вместо переключения ветки, а pull request проверяю, когда освобожусь.
- Инженер API Infrastructure Observability: я регулярно отправляю Codex обсуждения из Slack, трассировки Datadog, задачи и другой контекст, чтобы сохранять внимание на приоритетной работе.
Примеры запросов к Codex
- Составь план рефакторинга этого сервиса и разделения его на меньшие модули.
- Сделай заглушку логики повторных попыток и добавь TODO. Логику задержек я заполню позже.
- Опиши этот файл так, чтобы завтра я мог продолжить с того же места.
7. Исследование вариантов и поиск идей
Codex используют и для более открытых задач: найти альтернативные решения, проверить архитектурное решение, разобрать незнакомый шаблон или проверить предположения. Это помогает увидеть компромиссы и точнее выбрать реализацию.
Еще один практический сценарий - поиск похожих ошибок. После исправления известной проблемы или замены устаревшего метода Codex может найти похожие паттерны в других частях кода, чтобы завершить очистку и снизить риск регрессий.
Как это описывают команды
- Продуктовый инженер ChatGPT Desktop: Codex помогает преодолеть холодный старт. Я вставляю спецификацию и документацию, а он создает каркас кода или показывает, что я упустил.
- Инженер по производительности Retrieval Systems: после исправления ошибки я спрашиваю Codex, где похожие ошибки еще могут прятаться, и запускаю последующие задачи.
Примеры запросов к Codex
- Как это работало бы, если система была бы событийной, а не построенной вокруг запросов и ответов?
- Найди все модули, которые вручную собирают SQL-строки вместо использования нашего построителя запросов.
- Перепиши это в более функциональном стиле: избегай мутаций и побочных эффектов.
Практики, которые повышают качество результата
Начинать с режима Ask
Для крупных изменений OpenAI рекомендует сначала попросить Codex подготовить план реализации в режиме Ask. Этот план затем становится основой для следующих запросов при переходе в режим Code. Такой двухшаговый процесс удерживает Codex в контексте и снижает число ошибок.
Лучше всего Codex справляется с хорошо ограниченными задачами: примерно на час работы инженера или на несколько сотен строк кода. По мере улучшения моделей размер таких задач будет расти.
Постепенно улучшать среду разработки для Codex
Скрипт запуска, переменные окружения и доступ в интернет заметно снижают частоту ошибок. После каждой задачи стоит смотреть на ошибки сборки и исправлять конфигурацию среды Codex. Это требует нескольких итераций, но затем окупается в скорости и стабильности результата.
Писать запрос как задачу в GitHub
Codex лучше отвечает, когда запрос похож на описание изменения в pull request или задаче: есть пути к файлам, названия компонентов, фрагменты diff, выдержки из документации и примеры существующей реализации.
Хороший шаблон: «Сделай это так же, как в [модуль X]». Он сразу задает стиль, контекст и критерии результата.
Использовать очередь задач Codex как легкий список отложенной работы
Codex можно запускать на побочные идеи, частичные изменения и небольшие исправления. Не обязательно сразу получать готовый pull request. Очередь задач работает как промежуточное место, куда можно вернуться, когда появится фокус.
Хранить устойчивый контекст в AGENTS.md
Файл AGENTS.md помогает Codex лучше работать с репозиторием между запросами. Обычно туда помещают соглашения об именах, бизнес-логику, известные особенности проекта и зависимости, которые нельзя надежно вывести только из кода.
Использовать Best of N
Функция Best of N позволяет одновременно получить несколько вариантов ответа на одну задачу, быстро сравнить решения и выбрать лучшее. Для сложных задач можно объединять сильные части разных вариантов.
Что меняется в работе инженера
Codex находится в исследовательском превью, но уже меняет повседневный процесс разработки внутри OpenAI. Он ускоряет рутинные части работы, помогает писать более полный код и поднимает задачи, которые раньше откладывались из-за нехватки времени.
Самая практичная модель использования: давать Codex ограниченные, хорошо описанные инженерные задачи, запускать его параллельно с основной работой, проверять результат через план, diff, тесты и CI, а повторяющиеся знания проекта переносить в устойчивый контекст вроде AGENTS.md.
Сообщество энтузиастов - https://t.me/agents_lab
Источник - https://cdn.openai.com/pdf/6a2631dc-783e-479b-b1a4-af0cfbd38630/how-openai-uses-codex.pdf