Внутри цикла агентов OpenAI Codex CLI

Technology
Inside OpenAI’s Codex CLI Agent Loop
На этой неделе OpenAI опубликовала подробные технические заметки о Codex CLI, раскрыв механизмы работы цикла агентов, кеширования промптов и уплотнения контекста, а также их влияние на скорость, конфиденциальность и стабильность системы. Данная публикация разъясняет практические ограничения и паттерны работы для разработчиков, создающих инструменты на базе ИИ-агентов.

27 января 2026 года OpenAI опубликовала необычно подробные инженерные заметки, объясняющие, как Codex CLI — командный кодинг-агент компании — на самом деле ведет диалоги, вызывает инструменты и управляет контекстом.

Как выглядит цикл агента

В основе Codex CLI лежит простой повторяющийся паттерн, который инженеры называют «циклом агента» (agent loop): прием ввода пользователя, формирование промпта, запрос ответа у модели, выполнение вызовов инструментов по запросу модели, добавление результатов работы инструментов в историю диалога и повторение до тех пор, пока модель не вернет финальное сообщение ассистента.

Этот паттерн кажется простым, но документация раскрывает множество мелких проектных решений, которые в совокупности определяют производительность и надежность. Промпт, отправляемый модели, — это не просто единый блок текста; это структурированная сборка компонентов с расставленными приоритетами. Роли system, developer, assistant и user определяют, какие инструкции имеют приоритет. Поле tools описывает доступные функции — локальные команды оболочки, утилиты планирования, веб-поиск и кастомные сервисы, предоставляемые через серверы Model Context Protocol (MCP). Контекст окружения описывает разрешения песочницы, рабочие директории и то, какие файлы или процессы видны агенту.

Вызовы инструментов, MCP и песочница

Когда модель инициирует вызов инструмента, Codex выполняет этот инструмент в контролируемой среде (своей «песочнице»), фиксирует вывод и добавляет результат в диалог. Кастомные инструменты могут быть реализованы через MCP-серверы — открытый стандарт, принятый несколькими компаниями, который позволяет модели обнаруживать и вызывать возможности, выходящие за рамки простой командной оболочки. В документации также обсуждаются конкретные баги, обнаруженные командой при создании этих интеграций, — например, непоследовательное перечисление MCP-инструментов, — которые пришлось исправлять.

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

Stateless-запросы, вопросы конфиденциальности и стоимость копирования контекста

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

Кеширование промптов и точные префиксы

Кеширование промптов — это прагматичная оптимизация: если новый запрос имеет точно такой же префикс, как и ранее закешированный промпт, провайдер может повторно использовать вычисления и быстрее вернуть результат. Но кеши требуют жесткости. Любое изменение доступных инструментов, смена модели или даже корректировка конфигурации песочницы может аннулировать префикс, превратив попадание в кеш (cache hit) в дорогостоящий промах. Инженеры OpenAI предупреждают, что разработчикам следует избегать переконфигурации посреди диалога, если им нужна стабильная задержка.

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

Компактизация контекста: сжатие прошлого без потери смысла

Чтобы управлять ростом количества токенов, Codex реализует автоматическую компактизацию контекста. Вместо того чтобы полагаться на команду пользователя, CLI вызывает специализированную конечную точку API, которая сжимает старые ходы диалога в зашифрованный элемент контента, сохраняя при этом обобщенные знания, необходимые модели для продолжения работы. Ранние версии требовали ручного сжатия; новый подход переносит этот процесс в API-вызов, сохраняющий рабочую память модели.

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

Практические ограничения и опыт разработчиков

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

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

Почему OpenAI открыла эти данные — прозрачность, конкуренция и стандарты

Публикация глубокого анализа внутреннего устройства потребительского продукта — заметный шаг для компании, которая обычно оберегала свои операционные детали. Раскрытие информации OpenAI совпадает с общим стремлением экосистемы к стандартам агентов: Anthropic и OpenAI поддерживают MCP для обнаружения и вызова инструментов, и обе компании публикуют CLI-клиенты с открытым исходным кодом, чтобы разработчики могли проверять поведение системы от начала до конца.

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

Операционные советы для команд, использующих кодинг-агентов

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

Что дальше

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

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

Документация Codex CLI — это приглашение: изучите реализацию, протестируйте граничные случаи и спроектируйте рабочие процессы, которые принимают ограничения, используя при этом очевидные преимущества. В индустрии, стремящейся внедрить агентов в повседневные инструменты разработчика, ясность в отношении сценариев отказа — самый редкий и полезный товар.

Источники

  • OpenAI (документация: "Unrolling the Codex agent loop")
  • Anthropic (спецификация Model Context Protocol и материалы Claude Code)
  • Инженерные репозитории OpenAI и заметки по реализации Codex CLI
Mattias Risberg

Mattias Risberg

Cologne-based science & technology reporter tracking semiconductors, space policy and data-driven investigations.

University of Cologne (Universität zu Köln) • Cologne, Germany

Readers

Readers Questions Answered

Q Что представляет собой цикл агента (agent loop), лежащий в основе Codex CLI?
A Цикл агента — это простой повторяющийся шаблон, при котором система принимает ввод пользователя, формирует промпт, запрашивает ответ у модели, выполняет вызовы инструментов, запрошенные моделью, добавляет результаты работы инструментов в диалог и повторяет процесс до тех пор, пока модель не вернет финальное сообщение ассистента. Этот паттерн прямолинеен, однако в документации разъясняется множество мелких дизайнерских решений, влияющих на производительность и надежность.
Q Как организованы промпты и инструменты в Codex CLI?
A Промпт, отправляемый модели, не является единым текстовым блоком; это структурированная сборка компонентов с установленными приоритетами. Роли системы, разработчика, ассистента и пользователя определяют, какие инструкции имеют приоритет. Поле инструментов (tools) сообщает о доступных функциях — локальных командах оболочки, утилитах планирования, веб-поиске и серверах MCP, а контекст окружения описывает разрешения песочницы, рабочие директории и то, какие файлы или процессы видимы для агента.
Q Что такое кэширование промптов и уплотнение контекста (context compaction), и какие компромиссы они влекут за собой?
A Кэширование промптов — это прагматичная оптимизация: если новый запрос является точным префиксом ранее закэшированного промпта, провайдер может повторно использовать вычисления и быстрее возвращать результаты. Однако такие кэши жестко заданы; изменения в инструментах, модели или конфигурации песочницы могут аннулировать префикс и привести к дорогостоящим промахам кэша. Уплотнение контекста снижает рост количества токенов за счет сжатия предыдущих этапов диалога в зашифрованный объект.
Q Какие практические ограничения и рекомендации для разработчиков отмечает OpenAI для пользователей Codex CLI?
A OpenAI отмечает, что Codex CLI работает быстро и полезен для создания простых каркасов и быстрого прототипирования, но он уязвим при выполнении более глубокой, насыщенной контекстом инженерной работы, что может привести к остановкам или созданию неверных шагов, требующих отладки человеком. Рекомендации включают закрепление моделей и манифестов инструментов внутри сессии, превентивное использование уплотнения контекста для контроля стоимости токенов и ограничение прав агента путем изоляции папок с правами на запись в песочницах.

Have a question about this article?

Questions are reviewed before publishing. We'll answer the best ones!

Comments

No comments yet. Be the first!