В мае 2025 года OpenAI представила Codex — первый полноценный агентный
инструмент для программирования, который может выполнять множество задач
параллельно. На Хабре уже успели обсудить тему ИИ-ассистентов для кодинга, но
мне захотелось разобраться в теме более детально и показать, что скрывается под
капотом этой технологии.
Сейчас мы разберём, как работает Codex, посмотрим на его технические
особенности.

▍ Что такое Codex

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

Codex построен на модели codex-1, которая является дообученной моделью o3 от OpenAI, специально настроенной для задач программной инженерии. Модель была обучена с использованием обучения с подкреплением на широком спектре задач кодирования, что позволяет ей анализировать и генерировать код, а также итеративно проходить через тесты.

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

  1. Писать код по вашему описанию

  2. Исправлять ошибки в существующем коде

  3. Отвечать на вопросы о вашей кодовой базе

  4. Запускать тесты и улучшать код до получения успешных результатов

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

Ключевые особенности модели codex-1:

  • Производит "более чистый" код, чем базовая модель o3

  • Более точно следует инструкциям

  • Итеративно запускает тесты до получения успешных результатов

  • Показывает ход своей работы на каждом этапе

Для повышения эффективности разработчики могут включить файл "AGENTS.md" в репозиторий с пользовательскими инструкциями. Этот файл работает как README.md, но предназначен для ИИ-агентов, а не для людей. В нём можно контекстуализировать и объяснить кодовую базу или сообщить о стандартизациях и стилевых практиках проекта.

▍ Как это работает внутри

Когда пользователь отправляет запрос в Codex, происходит следующее:

  1. Запрос анализируется и преобразуется в задачу для агента

  2. Агент создаёт план выполнения задачи

  3. Агент выполняет задачу в изолированной среде, которая имитирует среду разработки пользователя

  4. Агент показывает ход своей работы и результаты пользователю

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

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

▍ Ограничения и проблемы

Несмотря на все преимущества, Codex имеет ряд ограничений и проблем:

Безопасность кода

Хотя Codex обучен генерировать безопасный код, он всё ещё может создавать код с уязвимостями. OpenAI отмечает, что "по-прежнему необходимо, чтобы пользователи вручную проверяли и валидировали весь сгенерированный агентом код перед интеграцией и выполнением".

Ограничения изолированной среды

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

Стоимость

Хотя сейчас Codex доступен без дополнительной платы для пользователей ChatGPT Pro, Enterprise и Team, OpenAI планирует ввести ограничения на использование и новую схему ценообразования в будущем.

▍ Будущее программирования с Codex и аналогами

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

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

Комментарии (0)