Codex harness

Среда выполнения обвязки Codex

На этой странице описан runtime-контракт для turns в Codex harness. Для настройки и маршрутизации начните с Codex harness. Поля конфигурации см. в справочнике Codex harness.

Обзор

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

OpenClaw по-прежнему владеет маршрутизацией каналов, файлами сессий, доставкой видимых сообщений, динамическими инструментами OpenClaw, подтверждениями, доставкой медиа и зеркалом transcript. Codex владеет каноническим нативным thread, нативным циклом модели, нативным продолжением tools и нативной Compaction.

Маршрутизация prompt следует выбранному runtime, а не только строке provider. Нативный turn Codex получает developer-инструкции Codex app-server, тогда как явный маршрут совместимости OpenClaw сохраняет обычный system prompt OpenClaw, даже если использует auth или transport OpenAI в стиле Codex.

Нативный Codex сохраняет базовые/модельные инструкции и поведение project-doc, которыми владеет Codex, согласно активной конфигурации thread Codex. OpenClaw запускает и возобновляет нативные threads Codex с отключенной встроенной personality Codex, чтобы файлы workspace personality и идентичность агента OpenClaw оставались авторитетными. Легковесные запуски OpenClaw по-прежнему сохраняют существующее подавление project-doc. Developer-инструкции OpenClaw покрывают runtime-задачи OpenClaw, такие как доставка в исходный канал, динамические инструменты OpenClaw, делегирование ACP, контекст адаптера и активные файлы профиля workspace агента. Каталоги Skills OpenClaw и маршрутизируемые инструментами указатели MEMORY.md проецируются как turn-scoped developer-инструкции для совместной работы для нативного Codex. Активное содержимое BOOTSTRAP.md и полная fallback-инъекция MEMORY.md по-прежнему используют reference context входных данных turn.

Привязки thread и изменения модели

Когда сессия OpenClaw прикреплена к существующему thread Codex, следующий turn снова отправляет в app-server текущую выбранную модель OpenAI, политику подтверждений, sandbox и service tier. Переключение с openai/gpt-5.5 на openai/gpt-5.2 сохраняет привязку thread, но просит Codex продолжить с новой выбранной моделью.

Видимые ответы и heartbeats

Когда turn прямого/исходного чата выполняется через Codex harness, видимые ответы по умолчанию используют автоматическую доставку финального ответа ассистента для внутренних поверхностей WebChat. Это сохраняет соответствие Codex prompt-контракту Pi harness: агенты отвечают обычным образом, а OpenClaw публикует финальный текст в исходный разговор. Задайте messages.visibleReplies: "message_tool", когда прямой/исходный чат должен намеренно сохранять финальный текст ассистента приватным, если агент не вызывает message(action="send").

Heartbeat turns Codex также по умолчанию получают heartbeat_respond в searchable каталоге инструментов OpenClaw, чтобы агент мог записать, должен ли wake оставаться тихим или уведомлять, без кодирования этого control flow в финальном тексте.

Специфичные для Heartbeat указания по инициативности отправляются как developer-инструкция Codex collaboration-mode на самом heartbeat turn. Обычные chat turns восстанавливают режим Codex Default вместо переноса философии heartbeat в обычный runtime prompt. Когда существует непустой HEARTBEAT.md, инструкции heartbeat collaboration-mode указывают Codex на файл вместо встраивания его содержимого.

Границы хуков

Codex harness имеет три слоя хуков:

Слой Владелец Назначение
Хуки плагинов OpenClaw OpenClaw Совместимость продукта/плагинов между harness OpenClaw и Codex.
Middleware расширений Codex app-server Встроенные плагины OpenClaw Поведение адаптера per-turn вокруг динамических инструментов OpenClaw.
Нативные хуки Codex Codex Низкоуровневый жизненный цикл Codex и политика нативных инструментов из конфигурации Codex.

OpenClaw не использует проектные или глобальные файлы Codex hooks.json для маршрутизации поведения плагинов OpenClaw. Для поддерживаемого bridge нативных инструментов и разрешений OpenClaw внедряет per-thread конфигурацию Codex для PreToolUse, PostToolUse, PermissionRequest и Stop.

Когда подтверждения Codex app-server включены, то есть approvalPolicy не равен "never", внедряемая по умолчанию конфигурация нативных хуков опускает PermissionRequest, чтобы reviewer Codex app-server и approval bridge OpenClaw обрабатывали реальные эскалации после review. Операторы могут явно добавить permission_request в nativeHookRelay.events, когда им нужен compatibility relay.

Другие хуки Codex, такие как SessionStart и UserPromptSubmit, остаются контролями уровня Codex. Они не раскрываются как хуки плагинов OpenClaw в контракте v1.

Для динамических инструментов OpenClaw OpenClaw выполняет инструмент после того, как Codex запрашивает вызов, поэтому OpenClaw запускает поведение плагинов и middleware, которым он владеет, в адаптере harness. Для Codex-native инструментов Codex владеет канонической записью инструмента. OpenClaw может зеркалировать выбранные события, но не может переписать нативный Codex thread, если Codex не раскрывает эту операцию через app-server или callbacks нативных хуков.

События PreToolUse в report-mode Codex app-server откладывают запросы подтверждения плагинов до соответствующего подтверждения app-server. Если хук OpenClaw before_tool_call возвращает requireApproval, пока нативный payload задает режим report approval (openclaw_approval_mode равен "report"), native hook relay записывает требование подтверждения плагина и не возвращает нативного решения. Когда Codex отправляет запрос подтверждения app-server для того же использования инструмента, OpenClaw открывает prompt подтверждения плагина и сопоставляет решение обратно с Codex. События Codex PermissionRequest являются отдельным путем подтверждения и всё еще могут маршрутизироваться через подтверждения OpenClaw, когда runtime настроен для этого bridge.

Уведомления item Codex app-server также предоставляют асинхронные наблюдения after_tool_call для завершений нативных инструментов, которые еще не покрыты нативным relay PostToolUse. Эти наблюдения предназначены только для телеметрии и совместимости плагинов; они не могут блокировать, задерживать или изменять нативный вызов инструмента.

Проекции Compaction и жизненного цикла LLM поступают из уведомлений Codex app-server и состояния адаптера OpenClaw, а не из команд нативных хуков Codex. События OpenClaw before_compaction, after_compaction, llm_input и llm_output являются наблюдениями уровня адаптера, а не побайтовыми снимками внутреннего request Codex или payload Compaction.

Нативные уведомления Codex app-server hook/started и hook/completed проецируются как события агента codex_app_server.hook для trajectory и отладки. Они не вызывают хуки плагинов OpenClaw.

Контракт поддержки V1

Поддерживается в Codex runtime v1:

Поверхность Поддержка Почему
Цикл модели OpenAI через Codex Поддерживается app-server Codex владеет ходом OpenAI, возобновлением нативного потока и продолжением нативных инструментов.
Маршрутизация и доставка каналов OpenClaw Поддерживается Telegram, Discord, Slack, WhatsApp, iMessage и другие каналы остаются вне среды выполнения модели.
Динамические инструменты OpenClaw Поддерживается Codex просит OpenClaw выполнить эти инструменты, поэтому OpenClaw остается в пути выполнения.
Plugin подсказок и контекста Поддерживается OpenClaw проецирует специфичные для OpenClaw подсказку/контекст в ход Codex, оставляя базовые, модельные и настроенные подсказки документации проекта, которыми владеет Codex, в нативном канале Codex. OpenClaw отключает встроенную личность Codex для нативных потоков, чтобы файлы личности рабочей области агента оставались авторитетными. Нативные инструкции разработчика Codex принимают только указания команд, явно ограниченные codex_app_server; устаревшие глобальные подсказки команд сохраняются для поверхностей подсказок не-Codex.
Жизненный цикл движка контекста Поддерживается Сборка, загрузка и обслуживание после хода выполняются вокруг ходов Codex. Движки контекста не заменяют нативную Compaction Codex.
Хуки динамических инструментов Поддерживается before_tool_call, after_tool_call и middleware результатов инструментов выполняются вокруг динамических инструментов, которыми владеет OpenClaw.
Хуки жизненного цикла Поддерживаются как наблюдения адаптера llm_input, llm_output, agent_end, before_compaction и after_compaction срабатывают с честными полезными нагрузками режима Codex.
Шлюз пересмотра финального ответа Поддерживается через ретрансляцию нативного хука Codex Stop ретранслируется в before_agent_finalize; revise запрашивает у Codex еще один проход модели перед финализацией.
Нативные shell, patch и блокировка или наблюдение MCP Поддерживается через ретрансляцию нативного хука Codex PreToolUse и PostToolUse ретранслируются для зафиксированных поверхностей нативных инструментов, включая полезные нагрузки MCP на app-server Codex 0.125.0 или новее. Блокировка поддерживается; перезапись аргументов — нет.
Нативная политика разрешений Поддерживается через одобрения app-server Codex и совместимую ретрансляцию нативного хука Запросы одобрения app-server Codex проходят через OpenClaw после проверки Codex. Ретрансляция нативного хука PermissionRequest включается явно для нативных режимов одобрения, потому что Codex испускает ее до проверки guardian.
Захват траектории app-server Поддерживается OpenClaw записывает запрос, отправленный app-server, и уведомления app-server, которые он получает.

Не поддерживается в среде выполнения Codex v1:

Поверхность Граница V1 Будущий путь
Мутация аргументов нативных инструментов Нативные pre-tool хуки Codex могут блокировать, но OpenClaw не переписывает аргументы нативных инструментов Codex. Требуется поддержка хуков/схемы Codex для замены входных данных инструмента.
Редактируемая история нативной расшифровки Codex Codex владеет канонической историей нативного потока. OpenClaw владеет зеркалом и может проецировать будущий контекст, но не должен мутировать неподдерживаемые внутренние структуры. Добавить явные API app-server Codex, если требуется хирургическое изменение нативного потока.
tool_result_persist для записей нативных инструментов Codex Этот хук преобразует записи расшифровки, которыми владеет OpenClaw, а не записи нативных инструментов Codex. Можно зеркалировать преобразованные записи, но для канонической перезаписи нужна поддержка Codex.
Богатые нативные метаданные Compaction OpenClaw может запросить нативную Compaction, но не получает стабильный список сохраненного/отброшенного, дельту токенов, сводку завершения или полезную нагрузку сводки. Нужны более богатые события Compaction Codex.
Вмешательство в Compaction OpenClaw не позволяет Plugin или движкам контекста накладывать вето, переписывать или заменять нативную Compaction Codex. Добавить pre/post хуки Compaction Codex, если Plugin нужно накладывать вето или переписывать нативную Compaction.
Побайтовый захват запроса API модели OpenClaw может захватывать запросы и уведомления app-server, но ядро Codex строит финальный запрос OpenAI API внутренне. Нужно событие трассировки запроса модели Codex или отладочный API.

Нативные разрешения и запросы MCP

Для PermissionRequest OpenClaw возвращает только явные решения разрешить или запретить, когда политика принимает решение. Результат без решения не является разрешением. Codex обрабатывает его как отсутствие решения хука и проваливается в собственный путь guardian или пользовательского одобрения.

Режимы одобрения app-server Codex по умолчанию опускают этот нативный хук. Это поведение применяется, когда permission_request явно включен в nativeHookRelay.events или когда совместимая среда выполнения устанавливает его.

Когда оператор выбирает allow-always для запроса нативного разрешения Codex, OpenClaw запоминает точный отпечаток provider/session/tool input/cwd для ограниченного окна сессии. Запомненное решение намеренно работает только по точному совпадению: измененная команда, аргументы, полезная нагрузка инструмента или cwd создают новое одобрение.

Запросы одобрения инструментов Codex MCP маршрутизируются через поток одобрения Plugin OpenClaw, когда Codex помечает _meta.codex_approval_kind как "mcp_tool_call". Подсказки Codex request_user_input отправляются обратно в исходный чат, а следующее поставленное в очередь последующее сообщение отвечает на этот нативный запрос сервера вместо того, чтобы направляться как дополнительный контекст. Другие запросы MCP завершаются закрыто.

Общий поток одобрения Plugin, который переносит эти подсказки, см. в Запросы разрешений Plugin.

Управление очередью

Управление очередью активного запуска сопоставляется с app-server Codex turn/steer. С настройкой по умолчанию messages.queue.mode: "steer" OpenClaw группирует чат-сообщения режима steer за настроенное тихое окно и отправляет их как один запрос turn/steer в порядке поступления.

Codex review и ходы ручной Compaction могут отклонять управление в том же ходе. В этом случае OpenClaw ждет завершения активного запуска перед запуском промпта. Используйте /queue followup или /queue collect, когда сообщения по умолчанию должны попадать в очередь, а не управлять текущим ходом. См. очередь управления.

Загрузка обратной связи Codex

Когда /diagnostics [note] одобрена для сеанса, использующего нативную обвязку Codex, OpenClaw также вызывает feedback/upload app-server Codex для релевантных потоков Codex. Загрузка просит app-server включить журналы для каждого указанного потока и порожденных подпотоков Codex, когда они доступны.

Загрузка проходит через обычный путь обратной связи Codex на серверы OpenAI. Если обратная связь Codex отключена в этом app-server, команда возвращает ошибку app-server. Завершенный ответ диагностики перечисляет каналы, идентификаторы сеансов OpenClaw, идентификаторы потоков Codex и локальные команды codex resume <thread-id> для потоков, которые были отправлены.

Если вы отклоните или проигнорируете одобрение, OpenClaw не выводит эти идентификаторы Codex и не отправляет обратную связь Codex. Загрузка не заменяет локальный экспорт диагностики Gateway. См. экспорт диагностики, чтобы узнать о одобрении, конфиденциальности, локальном пакете и поведении в групповых чатах.

Используйте /codex diagnostics [note] только когда вам конкретно нужна загрузка обратной связи Codex для текущего прикрепленного потока без полного диагностического пакета Gateway.

Compaction и зеркало транскрипта

Когда выбранная модель использует обвязку Codex, нативная Compaction потока принадлежит app-server Codex. OpenClaw не выполняет предварительную Compaction для ходов Codex, не заменяет Compaction Codex на Compaction context-engine и не откатывается к суммаризации OpenClaw или публичной OpenAI, когда нативная Compaction Codex не может быть запущена. OpenClaw сохраняет зеркало транскрипта для истории канала, поиска, /new, /reset и будущего переключения модели или обвязки.

Явные запросы Compaction, такие как /compact или запрошенная Plugin операция ручной Compaction, запускают нативную Compaction Codex через thread/compact/start. OpenClaw возвращается после запуска этой нативной операции. Он не ждет завершения, не устанавливает отдельный тайм-аут OpenClaw, не перезапускает общий app-server Codex и не записывает операцию как завершенную OpenClaw Compaction.

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

Зеркало включает пользовательский промпт, финальный текст ассистента и легковесные записи рассуждений или плана Codex, когда app-server их выдает. Сейчас OpenClaw записывает только явные нативные сигналы запуска Compaction, когда он запрашивает Compaction. Он не предоставляет человекочитаемую сводку Compaction или проверяемый список того, какие записи Codex сохранил после Compaction.

Поскольку Codex владеет каноническим нативным потоком, tool_result_persist сейчас не перезаписывает нативные записи результатов инструментов Codex. Он применяется только когда OpenClaw записывает результат инструмента в транскрипт сеанса, принадлежащий OpenClaw.

Медиа и доставка

OpenClaw продолжает владеть доставкой медиа и выбором медиапровайдера. Изображения, видео, музыка, PDF, TTS и понимание медиа используют соответствующие настройки провайдера/модели, такие как agents.defaults.imageGenerationModel, videoGenerationModel, pdfModel и messages.tts.

Текст, изображения, видео, музыка, TTS, одобрения и вывод инструмента сообщений продолжают проходить через обычный путь доставки OpenClaw. Генерация медиа не требует legacy runtime. Когда Codex выдает нативный элемент генерации изображения с savedPath, OpenClaw пересылает этот точный файл через обычный путь медиа в ответе, даже если ход Codex не содержит текста ассистента.

Связанные материалы

Was this useful?
On this page

On this page