Хотите разобраться в агенте Codex? Не пропустите этот углубленный анализ!
Хотите разобраться в агенте Codex? Не пропустите этот углубленный анализ!
OpenAI только что совершила «необычный» поступок.
Обычно OpenAI выпускает более мощные модели (например, o1), но на этот раз они опубликовали углубленный технический блог «Unrolling the Codex agent loop», в котором не только открыли основной код Codex CLI, но и разобрали, как работает зрелый кодовый агент (Coding Agent).

В то время, когда Claude Code и Cursor набирают популярность, эта статья OpenAI — не просто демонстрация силы, а скорее «руководство по предотвращению ошибок для архитекторов агентов». Независимо от того, хотите ли вы хорошо использовать инструменты программирования с помощью ИИ или разработать собственного агента, эту статью стоит прочитать слово в слово.
Вся статья состоит из 8300+ слов, чтение займет около 20 минут.
Прежде всего, что такое Codex CLI?
Codex CLI — это инструмент кодирования Agent с открытым исходным кодом от OpenAI, который можно запускать на локальном компьютере или устанавливать в редакторе кода. Поддерживает VS Code, Cursor, Windsurf и другие.
Адрес открытого исходного кода: https://github.com/openai/codex

А Agent Loop (цикл агента), о котором пойдет речь, — это основная логика Codex CLI: он отвечает за координацию пользователя, модели и вызовов модели для выполнения взаимодействия между ценными инструментами.
Agent Loop (цикл интеллектуального агента)
Модель — это всего лишь компонент, только Agent (интеллектуальный агент) может составлять продукт.
Ядром каждого AI Agent является так называемый «цикл интеллектуального агента (Agent Loop)». Схема цикла интеллектуального агента показана ниже:

Мы обычно думаем, что программирование с помощью ИИ — это: «Я спрашиваю, он отвечает». Но внутри Codex CLI это сложный бесконечный цикл...
Стандартный Agent Loop включает в себя следующие этапы:
- Инструкции пользователя: набор текстовых инструкций, введенных пользователем (например, «реструктурировать эту функцию»).
- Вывод модели: модель решает, отвечать напрямую или вызывать инструмент (Tool Call).
- Вызов инструмента: если модель решает вызвать list files или run shell, CLI выполнит эти команды локально.
- Наблюдение (Observation): результат выполнения инструмента (код, сообщение об ошибке, список файлов) фиксируется.
- Цикл: эти результаты добавляются в историю разговоров и снова передаются модели. Увидев результаты, модель решает, что делать дальше.
- Прекращение: пока модель не сочтет задачу выполненной и не выведет окончательный ответ.
Весь процесс от «ввода пользователя» до «ответа интеллектуального агента» называется раундом разговора (в Codex он называется потоком).

По мере развития разговора увеличивается и длина подсказки (Prompt), используемой для рассуждений модели. Эта длина важна, потому что каждая модель имеет контекстное окно, которое представляет собой максимальное количество токенов, которое модель может использовать в одном вызове рассуждений.
Вывод модели
Codex CLI отправляет HTTP-запрос в Responses API для вывода модели. Codex использует Responses API для управления циклом агента.
Что такое Responses API?
Responses API — это интерфейс разработки интеллектуальных агентов нового поколения, выпущенный OpenAI в марте 2025 года, который направлен на унификацию возможностей диалога, вызова инструментов и мультимодальной обработки, чтобы предоставить разработчикам более гибкий и мощный опыт создания приложений с использованием ИИ.
Используемая Codex CLI конечная точка Responses API является настраиваемой и может использоваться с любой конечной точкой, реализующей Responses API.

Модель выполняет выборку (генерирует ответ)
HTTP-запрос, отправленный в Responses API, запускает первый «раунд» в диалоге Codex. Сервер возвращает ответ потоком через Server-Sent Events (SSE).

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

Влияние постоянного увеличения подсказки с увеличением количества раундов
1. С точки зрения производительности
- Увеличение стоимости выборки модели: постоянное увеличение подсказки приведет к увеличению стоимости выборки модели, поскольку процесс выборки требует обработки большего количества данных, что приводит к увеличению объема вычислений.
- Снижение эффективности кэширования: по мере того, как подсказка постоянно увеличивается с увеличением количества раундов, сложность точного сопоставления префиксов увеличивается, а вероятность попадания в кэш снижается.
2. С точки зрения управления контекстным окном
- Контекстное окно легко исчерпать: постоянное увеличение подсказки приведет к быстрому увеличению количества маркеров в диалоге, и как только будет превышен порог контекстного окна, это может привести к исчерпанию контекстного окна.
- Увеличение необходимости операций сжатия: чтобы избежать исчерпания контекстного окна, необходимо сжать диалог, когда количество маркеров превысит порог.
3. С точки зрения риска промаха кэша
- Различные операции легко вызывают промах кэша: если изменение доступных инструментов модели, целевой модели, конфигурации песочницы и других операций связано с увеличением подсказки, это еще больше увеличит риск промаха кэша.
- Инструменты MCP увеличивают сложность: MCP-сервер может динамически изменять список предоставляемых инструментов, и ответ на соответствующие уведомления в длительных диалогах приведет к промаху кэша.
Справочная информация: «Unrolling the Codex agent loop» Источник: OpenAI





