Bundled plugin guides

Обвязка Codex

Встроенный Plugin codex позволяет OpenClaw выполнять встроенные ходы агента OpenAI через Codex app-server вместо встроенного harness OpenClaw.

Используйте Codex harness, когда хотите, чтобы Codex владел низкоуровневой сессией агента: нативным возобновлением треда, нативным продолжением инструмента, нативной Compaction и выполнением в app-server. OpenClaw по-прежнему владеет чат-каналами, файлами сессий, выбором модели, динамическими инструментами OpenClaw, подтверждениями, доставкой медиа и видимым зеркалом транскрипта.

Обычная настройка использует канонические ссылки на модели OpenAI, такие как openai/gpt-5.5. Не настраивайте устаревшие ссылки Codex GPT. Размещайте порядок авторизации агента OpenAI в auth.order.openai; старые устаревшие идентификаторы профилей авторизации Codex и устаревшие записи порядка авторизации Codex являются устаревшим состоянием, которое исправляется командой openclaw doctor --fix.

Когда песочница OpenClaw не активна, OpenClaw запускает треды Codex app-server с включенным нативным режимом кода Codex, оставляя режим "только код" выключенным по умолчанию. Так нативное рабочее пространство Codex и возможности кода остаются доступными, а динамические инструменты OpenClaw продолжают работать через мост app-server item/tool/call. Активная песочница OpenClaw и ограничительные политики инструментов полностью отключают нативный режим кода, если вы не включите экспериментальный путь sandbox exec-server.

Эта нативная функция Codex отделена от режима кода OpenClaw, который является включаемой по желанию средой выполнения QuickJS-WASI для обычных запусков OpenClaw с другой формой входа exec.

Для более общего разделения модели, провайдера и среды выполнения начните с сред выполнения агента. Коротко: openai/gpt-5.5 — это ссылка на модель, codex — среда выполнения, а Telegram, Discord, Slack или другой канал остается поверхностью коммуникации.

Требования

  • OpenClaw с доступным встроенным Plugin codex.
  • Если ваша конфигурация использует plugins.allow, включите туда codex.
  • Codex app-server 0.125.0 или новее. Встроенный Plugin по умолчанию управляет совместимым бинарным файлом Codex app-server, поэтому локальные команды codex в PATH не влияют на обычный запуск harness.
  • Авторизация Codex доступна через openclaw models auth login --provider openai, учетную запись app-server в домашнем каталоге Codex агента или явный профиль авторизации Codex с API-ключом.

О приоритете авторизации, изоляции окружения, пользовательских командах app-server, обнаружении моделей и всех полях конфигурации см. справочник по Codex harness.

Быстрый старт

Большинству пользователей, которые хотят Codex в OpenClaw, нужен этот путь: войти с подпиской ChatGPT/Codex, включить встроенный Plugin codex и использовать каноническую ссылку на модель openai/gpt-*.

Войдите через Codex OAuth:

bash
openclaw models auth login --provider openai

Включите встроенный Plugin codex и выберите агентскую модель OpenAI:

json5
{  plugins: {    entries: {      codex: {        enabled: true,      },    },  },  agents: {    defaults: {      model: "openai/gpt-5.5",    },  },}

Если ваша конфигурация использует plugins.allow, добавьте туда и codex:

json5
{  plugins: {    allow: ["codex"],    entries: {      codex: {        enabled: true,      },    },  },}

Перезапустите Gateway после изменения конфигурации Plugin. Если в существующем чате уже есть сессия, используйте /new или /reset перед проверкой изменений среды выполнения, чтобы следующий ход разрешил harness из текущей конфигурации.

Совместное использование тредов с Codex Desktop и CLI

Значение по умолчанию appServer.homeScope: "agent" изолирует каждого агента OpenClaw от нативного состояния Codex оператора. Чтобы владелец мог попросить OpenClaw проверить и управлять теми же нативными тредами, которые показаны в Codex Desktop и Codex CLI, включите пользовательский домашний каталог Codex:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          appServer: {            homeScope: "user",          },        },      },    },  },}

Режим пользовательского домашнего каталога доступен только с локальным транспортом stdio. Он использует $CODEX_HOME, если переменная задана, и ~/.codex в противном случае, включая нативную авторизацию Codex, конфигурацию, Plugins и хранилище тредов этого домашнего каталога. OpenClaw не внедряет профиль авторизации OpenClaw в этот app-server.

Ходы владельца получают инструмент codex_threads. Он может перечислять, искать, читать, форкать, переименовывать, архивировать и восстанавливать нативные треды. Попросите агента форкнуть тред, когда хотите продолжить его в OpenClaw; форк привязывается к текущей сессии OpenClaw и остается видимым другим нативным клиентам Codex. Архивирование требует явного подтверждения, что тред закрыт в другом месте.

Не возобновляйте и не записывайте один и тот же тред одновременно из OpenClaw и другого клиента Codex. Codex координирует активных писателей внутри одного процесса app-server, но не между независимыми процессами Desktop, CLI и OpenClaw. Форк создает отдельное продолжение и является безопасным путем сосуществования.

Конфигурация

Конфигурация быстрого старта — минимально жизнеспособная конфигурация Codex harness. Задавайте параметры Codex harness в конфигурации OpenClaw, а CLI используйте только для авторизации Codex:

Потребность Что задать Где
Включить harness plugins.entries.codex.enabled: true Конфигурация OpenClaw
Сохранить установку Plugin из allowlist Включите codex в plugins.allow Конфигурация OpenClaw
Направлять ходы агента OpenAI через Codex agents.defaults.model или agents.list[].model как openai/gpt-* Конфигурация агента OpenClaw
Войти через ChatGPT/Codex OAuth openclaw models auth login --provider openai Профиль авторизации CLI
Добавить резервный API-ключ для запусков Codex Профиль API-ключа openai:*, указанный после авторизации подпиской в auth.order.openai Профиль авторизации CLI + конфигурация OpenClaw
Завершаться с ошибкой, если Codex недоступен agentRuntime.id: "codex" провайдера или модели Конфигурация модели/провайдера OpenClaw
Использовать прямой трафик OpenAI API agentRuntime.id: "openclaw" провайдера или модели с обычной авторизацией OpenAI Конфигурация модели/провайдера OpenClaw
Настроить поведение app-server plugins.entries.codex.config.appServer.* Конфигурация Codex Plugin
Включить нативные приложения Codex Plugin plugins.entries.codex.config.codexPlugins.* Конфигурация Codex Plugin
Включить Codex Computer Use plugins.entries.codex.config.computerUse.* Конфигурация Codex Plugin

Используйте ссылки на модели openai/gpt-* для ходов агента OpenAI, обслуживаемых Codex. Предпочитайте auth.order.openai для порядка "сначала подписка, затем резервный API-ключ". Существующие устаревшие идентификаторы профилей авторизации Codex и устаревший порядок авторизации Codex являются устаревшим состоянием только для doctor; не записывайте новые устаревшие ссылки Codex GPT.

Не задавайте compaction.model или compaction.provider для агентов, обслуживаемых Codex. Codex выполняет Compaction через свое нативное состояние треда app-server, поэтому OpenClaw игнорирует эти локальные переопределения суммаризатора во время выполнения, а openclaw doctor --fix удаляет их, когда агент использует Codex.

Lossless остается поддерживаемым как движок контекста для сборки, приема и сопровождения вокруг ходов Codex. Настраивайте его через plugins.slots.contextEngine: "lossless-claw" и plugins.entries.lossless-claw.config.summaryModel, а не через agents.defaults.compaction.provider. openclaw doctor --fix мигрирует старую форму compaction.provider: "lossless-claw" в слот движка контекста Lossless, когда Codex является активной средой выполнения, но нативный Codex все равно владеет Compaction.

Нативный Codex app-server harness поддерживает движки контекста, которым нужна предварительная сборка промпта. Универсальные CLI-бэкенды, включая codex-cli, не предоставляют такую возможность хоста.

Для агентов, обслуживаемых Codex, /compact запускает нативную Compaction Codex app-server для привязанного треда. OpenClaw не ждет завершения, не накладывает тайм-аут OpenClaw, не перезапускает общий app-server и не переключается на движок контекста или публичный суммаризатор OpenAI. Если нативная привязка треда Codex отсутствует или устарела, команда завершается с ошибкой, чтобы оператор видел реальную границу среды выполнения, а не незаметное переключение бэкендов Compaction.

json5
{  auth: {    order: {      openai: ["openai:user@example.com", "openai:api-key-backup"],    },  },}

В такой форме оба профиля все равно выполняются через Codex для ходов агента openai/gpt-*. API-ключ является только резервным способом авторизации, а не запросом на переключение на OpenClaw или обычный OpenAI Responses.

Остальная часть этой страницы охватывает распространенные варианты, между которыми должны выбирать пользователи: форма развертывания, маршрутизация с ошибкой при недоступности, политика подтверждений guardian, нативные Codex Plugins и Computer Use. Полные списки параметров, значения по умолчанию, перечисления, обнаружение, изоляцию окружения, тайм-ауты и поля транспорта app-server см. в справочнике по Codex harness.

Проверка среды выполнения Codex

Используйте /status в чате, где ожидаете Codex. Ход агента OpenAI, обслуживаемый Codex, показывает:

text
Runtime: OpenAI Codex

Затем проверьте состояние Codex app-server:

text
/codex status/codex models

/codex status сообщает о подключении к app-server, учетной записи, лимитах скорости, серверах MCP и Skills. /codex models выводит живой каталог Codex app-server для harness и учетной записи. Если /status выглядит неожиданно, см. устранение неполадок.

Маршрутизация и выбор модели

Держите ссылки на провайдера и политику среды выполнения отдельно:

  • Используйте openai/gpt-* для ходов агента OpenAI через Codex.
  • Не используйте устаревшие ссылки Codex GPT в конфигурации. Запустите openclaw doctor --fix, чтобы исправить устаревшие ссылки и старые закрепления маршрута сессии.
  • agentRuntime.id: "codex" необязателен для обычного автоматического режима OpenAI, но полезен, когда развертывание должно завершаться с ошибкой, если Codex недоступен.
  • agentRuntime.id: "openclaw" явно переводит провайдера или модель во встроенную среду выполнения OpenClaw, когда это намеренно.
  • /codex ... управляет нативными разговорами Codex app-server из чата.
  • ACP/acpx — отдельный путь внешнего harness. Используйте его только тогда, когда пользователь просит ACP/acpx или адаптер внешнего harness.

Обычная маршрутизация команд:

Намерение пользователя Используйте
Прикрепить текущий чат /codex bind [--cwd <path>]
Возобновить существующую ветку Codex /codex resume <thread-id>
Показать или отфильтровать ветки Codex /codex threads [filter]
Показать нативные плагины Codex /codex plugins list
Включить или отключить настроенный нативный плагин Codex /codex plugins enable <name>, /codex plugins disable <name>
Прикрепить существующий сеанс Codex CLI на сопряженном узле /codex sessions --host <node> [filter], затем /codex resume <session-id> --host <node> --bind here
Отправить только отзыв Codex /codex diagnostics [note]
Запустить задачу ACP/acpx Команды сеанса ACP/acpx, не /codex
Сценарий использования Настройка Проверка Примечания
Подписка ChatGPT/Codex с нативной средой выполнения Codex openai/gpt-* плюс включенный плагин codex /status показывает Runtime: OpenAI Codex Рекомендуемый путь
Отказывать закрыто, если Codex недоступен Провайдер или модель agentRuntime.id: "codex" Ход завершается ошибкой вместо встроенного резервного варианта Используйте для развертываний только с Codex
Направлять трафик прямого OpenAI API-ключа через OpenClaw Провайдер или модель agentRuntime.id: "openclaw" и обычная авторизация OpenAI /status показывает среду выполнения OpenClaw Используйте только когда OpenClaw выбран намеренно
Устаревшая конфигурация устаревшие ссылки Codex GPT openclaw doctor --fix переписывает ее Не создавайте новую конфигурацию таким способом
Адаптер ACP/acpx Codex ACP sessions_spawn({ runtime: "acp" }) Статус задачи/сеанса ACP Отдельно от нативной обвязки Codex

agents.defaults.imageModel использует то же разделение по префиксам. Используйте openai/gpt-* для обычного маршрута OpenAI и codex/gpt-* только когда понимание изображений должно выполняться через ограниченный ход сервера приложений Codex. Не используйте устаревшие ссылки Codex GPT; doctor переписывает этот устаревший префикс в openai/gpt-*.

Шаблоны развертывания

Базовое развертывание Codex

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

json5
{  plugins: {    entries: {      codex: {        enabled: true,      },    },  },  agents: {    defaults: {      model: "openai/gpt-5.5",    },  },}

Развертывание со смешанными провайдерами

Эта форма оставляет Claude агентом по умолчанию и добавляет именованного агента Codex:

json5
{  plugins: {    entries: {      codex: {        enabled: true,      },    },  },  agents: {    defaults: {      model: "anthropic/claude-opus-4-6",    },    list: [      {        id: "main",        default: true,        model: "anthropic/claude-opus-4-6",      },      {        id: "codex",        name: "Codex",        model: "openai/gpt-5.5",      },    ],  },}

С этой конфигурацией агент main использует свой обычный путь провайдера, а агент codex использует сервер приложений Codex.

Развертывание Codex с закрытым отказом

Для ходов агента OpenAI openai/gpt-* уже разрешается в Codex, когда доступен встроенный плагин. Добавьте явную политику среды выполнения, когда нужно зафиксировать правило закрытого отказа:

json5
{  models: {    providers: {      openai: {        agentRuntime: {          id: "codex",        },      },    },  },  agents: {    defaults: {      model: "openai/gpt-5.5",    },  },  plugins: {    entries: {      codex: {        enabled: true,      },    },  },}

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

Политика сервера приложений

По умолчанию плагин запускает управляемый OpenClaw бинарный файл Codex локально с транспортом stdio. Задавайте appServer.command только когда намеренно хотите запустить другой исполняемый файл. Используйте WebSocket-транспорт только когда сервер приложений уже запущен где-то еще:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          appServer: {            transport: "websocket",            url: "ws://gateway-host:39175",            authToken: "${CODEX_APP_SERVER_TOKEN}",          },        },      },    },  },}

Локальные сеансы сервера приложений stdio по умолчанию используют доверенную позицию локального оператора: approvalPolicy: "never", approvalsReviewer: "user" и sandbox: "danger-full-access". Если локальные требования Codex запрещают такую неявную позицию YOLO, OpenClaw вместо этого выбирает разрешенные guardian-права. Когда для сеанса активна песочница OpenClaw, OpenClaw отключает нативный Code Mode Codex, пользовательские MCP-серверы и выполнение плагинов на базе приложений для этого хода, вместо того чтобы полагаться на песочницу на стороне хоста Codex. Доступ к оболочке предоставляется через динамические инструменты на базе песочницы OpenClaw, такие как sandbox_exec и sandbox_process, когда доступны обычные инструменты exec/process.

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

json5
{  tools: {    exec: {      mode: "auto",    },  },  plugins: {    entries: {      codex: {        enabled: true,      },    },  },}

Для сеансов сервера приложений Codex OpenClaw сопоставляет tools.exec.mode: "auto" с подтверждениями Codex, проверяемыми Guardian, обычно approvalPolicy: "on-request", approvalsReviewer: "auto_review" и sandbox: "workspace-write", когда локальные требования разрешают эти значения. В tools.exec.mode: "auto" OpenClaw не сохраняет устаревшие небезопасные переопределения Codex approvalPolicy: "never" или sandbox: "danger-full-access"; используйте tools.exec.mode: "full" для намеренной позиции Codex без подтверждений. Устаревший пресет plugins.entries.codex.config.appServer.mode: "guardian" все еще работает, но tools.exec.mode: "auto" является нормализованной поверхностью OpenClaw.

Сравнение на уровне режимов с подтверждениями host exec и разрешениями ACPX см. в разделе Режимы разрешений.

Описание всех полей сервера приложений, порядка авторизации, изоляции окружения, обнаружения и поведения тайм-аутов см. в Справочнике обвязки Codex.

Команды и диагностика

Встроенный плагин регистрирует /codex как slash-команду в любом канале, который поддерживает текстовые команды OpenClaw.

Нативное выполнение и управление требуют владельца или Gateway-клиента operator.admin. Это включает привязку или возобновление веток, отправку или остановку ходов, изменение модели, быстрого режима или состояния разрешений, сжатие или обзор, а также отвязку. Другие авторизованные отправители сохраняют доступ только для чтения к командам проверки статуса, справки, учетной записи, модели, ветки, MCP-сервера, skill и привязки.

Распространенные формы:

  • /codex status проверяет подключение к серверу приложений, модели, учетную запись, лимиты скорости, MCP-серверы и skills.
  • /codex models показывает модели живого сервера приложений Codex.
  • /codex threads [filter] показывает недавние ветки сервера приложений Codex.
  • /codex resume <thread-id> прикрепляет текущий сеанс OpenClaw к существующей ветке Codex.
  • /codex compact просит сервер приложений Codex сжать прикрепленную ветку.
  • /codex review запускает нативный обзор Codex для прикрепленной ветки.
  • /codex diagnostics [note] запрашивает подтверждение перед отправкой отзыва Codex для прикрепленной ветки.
  • /codex account показывает учетную запись и статус лимитов скорости.
  • /codex mcp показывает статус MCP-серверов сервера приложений Codex.
  • /codex skills показывает skills сервера приложений Codex.

Для большинства отчетов в поддержку начните с /diagnostics [note] в разговоре, где произошла ошибка. Это создает один диагностический отчет Gateway и, для сеансов обвязки Codex, запрашивает подтверждение на отправку соответствующего пакета отзыва Codex. См. Экспорт диагностики, чтобы узнать о модели конфиденциальности и поведении в групповых чатах.

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

Локальная проверка веток Codex

Самый быстрый способ изучить неудачный запуск Codex часто состоит в том, чтобы открыть нативную ветку Codex напрямую:

bash
codex resume <thread-id>

Получите идентификатор ветки из завершенного ответа /diagnostics, /codex binding или /codex threads [filter].

Механику загрузки и диагностические границы уровня среды выполнения см. в Среде выполнения обвязки Codex.

В домашнем каталоге по умолчанию для каждого агента авторизация выбирается в таком порядке:

  1. Упорядоченные профили авторизации OpenAI для агента, желательно в auth.order.openai. Запустите openclaw doctor --fix, чтобы перенести старые устаревшие идентификаторы профилей авторизации Codex и устаревший порядок авторизации Codex.
  2. Существующая учетная запись сервера приложений в домашнем каталоге Codex этого агента.
  3. Только для локальных запусков сервера приложений stdio: CODEX_API_KEY, затем OPENAI_API_KEY, когда учетная запись сервера приложений отсутствует, а авторизация OpenAI все еще требуется.

Когда OpenClaw видит профиль авторизации Codex в стиле подписки ChatGPT, он удаляет CODEX_API_KEY и OPENAI_API_KEY из порожденного дочернего процесса Codex. Это сохраняет API-ключи уровня Gateway доступными для embeddings или прямых моделей OpenAI, не позволяя нативным ходам сервера приложений Codex случайно тарифицироваться через API. Явные профили API-ключей Codex и локальный резервный вариант env-ключа stdio используют логин сервера приложений вместо унаследованного окружения дочернего процесса. WebSocket-подключения к серверу приложений не получают резервный API-ключ Gateway из окружения; используйте явный профиль авторизации или собственную учетную запись удаленного сервера приложений. Когда настроены нативные плагины Codex, OpenClaw устанавливает или обновляет эти плагины через подключенный сервер приложений перед тем, как предоставить приложения, принадлежащие плагинам, ветке Codex. app/list остается источником истины для идентификаторов приложений, доступности и метаданных, но OpenClaw владеет решением о включении для каждой ветки: если политика разрешает перечисленное доступное приложение, OpenClaw отправляет thread/start.config.apps[appId].enabled = true, даже когда app/list сейчас сообщает, что это приложение отключено. Этот путь не создает установку приложений для неизвестных идентификаторов; OpenClaw только активирует marketplace-плагины с помощью plugin/install, а затем обновляет инвентарь.

Если профиль подписки достигает лимита использования Codex, OpenClaw записывает время сброса, когда Codex его сообщает, и пробует следующий упорядоченный профиль авторизации для того же запуска Codex. Когда время сброса проходит, профиль подписки снова становится пригодным без изменения выбранной модели openai/gpt-* или среды выполнения Codex.

Для локальных запусков app-server через stdio OpenClaw задает CODEX_HOME на каталог конкретного агента, чтобы конфигурация Codex, файлы auth/account, кеш/данные plugin и состояние нативного треда по умолчанию не читали и не записывали личный ~/.codex оператора. OpenClaw сохраняет обычный процессный HOME; подпроцессы, запускаемые Codex, по-прежнему могут находить конфигурацию и токены в домашнем каталоге пользователя, а Codex может обнаруживать общие записи $HOME/.agents/skills и $HOME/.agents/plugins/marketplace.json. При appServer.homeScope: "user" OpenClaw вместо этого использует нативный пользовательский домашний каталог Codex и его существующую учетную запись без внедрения auth-профиля OpenClaw.

Если развертыванию нужна дополнительная изоляция окружения, добавьте эти переменные в appServer.clearEnv:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          appServer: {            clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"],          },        },      },    },  },}

appServer.clearEnv влияет только на дочерний процесс Codex app-server, который был запущен. OpenClaw удаляет CODEX_HOME и HOME из этого списка во время нормализации локального запуска: CODEX_HOME остается направленным на выбранную область агента или пользователя, а HOME остается унаследованным, чтобы подпроцессы могли использовать обычное состояние домашнего каталога пользователя.

Динамические инструменты Codex по умолчанию используют загрузку searchable. OpenClaw не предоставляет динамические инструменты, которые дублируют нативные операции Codex с рабочей областью: read, write, edit, apply_patch, exec, process и update_plan. Большинство оставшихся инструментов интеграции OpenClaw, таких как сообщения, медиа, Cron, браузер, узлы, Gateway и heartbeat_respond, доступны через поиск инструментов Codex в пространстве имен openclaw, что уменьшает начальный контекст модели. Веб-поиск по умолчанию использует размещенный инструмент Codex web_search, когда поиск включен и не выбран управляемый провайдер. Нативный размещенный поиск и управляемый динамический инструмент OpenClaw web_search взаимоисключающие, поэтому управляемый поиск не может обходить нативные ограничения доменов. OpenClaw использует управляемый инструмент, когда размещенный поиск недоступен, явно отключен или заменен выбранным управляемым провайдером. OpenClaw держит самостоятельное расширение Codex web.run отключенным, потому что производственный трафик app-server отклоняет его пользовательское пространство имен web. tools.web.search.enabled: false отключает оба пути, как и LLM-only запуски с отключенными инструментами. Codex рассматривает "cached" как предпочтение и разрешает его в живой внешний доступ для неограниченных ходов app-server. Автоматический управляемый fallback отказывает в закрытом режиме, когда заданы нативные allowedDomains, чтобы allowlist нельзя было обойти. Постоянные изменения эффективной политики поиска ротируют привязанный тред Codex перед следующим ходом. Временные ограничения для отдельного хода используют временный ограниченный тред и сохраняют существующую привязку для последующего возобновления. Ответы источников sessions_yield и только через инструмент сообщений остаются прямыми, потому что это контракты управления ходом. sessions_spawn остается searchable, поэтому нативный spawn_agent Codex остается основной поверхностью субагентов Codex, а явная делегация OpenClaw или ACP по-прежнему доступна через пространство имен динамических инструментов openclaw. Инструкции по совместной работе Heartbeat указывают Codex искать heartbeat_respond перед завершением хода Heartbeat, когда инструмент еще не загружен.

Задавайте codexDynamicToolsLoading: "direct" только при подключении к пользовательскому Codex app-server, который не может искать отложенные динамические инструменты, или при отладке полного набора инструментов.

Поддерживаемые поля верхнего уровня Plugin Codex:

Поле По умолчанию Значение
codexDynamicToolsLoading "searchable" Используйте "direct", чтобы поместить динамические инструменты OpenClaw прямо в начальный контекст инструментов Codex.
codexDynamicToolsExclude [] Дополнительные имена динамических инструментов OpenClaw, которые нужно исключить из ходов Codex app-server.
codexPlugins отключено Нативная поддержка plugin/app Codex для перенесенных curated plugins, установленных из исходного кода.

Поддерживаемые поля appServer:

Поле По умолчанию Значение
transport "stdio" "stdio" запускает Codex; "websocket" подключается к url.
homeScope "agent" "agent" изолирует состояние Codex для каждого агента OpenClaw. "user" использует общий нативный $CODEX_HOME или ~/.codex, применяет нативную аутентификацию и включает управление потоками только владельцем. Пользовательская область требует stdio.
command управляемый бинарный файл Codex Исполняемый файл для транспорта stdio. Оставьте незаданным, чтобы использовать управляемый бинарный файл; задавайте только для явного переопределения.
args ["app-server", "--listen", "stdio://"] Аргументы для транспорта stdio.
url не задано URL WebSocket app-server.
authToken не задано Bearer-токен для транспорта WebSocket. Принимает строковый литерал или SecretInput, например ${CODEX_APP_SERVER_TOKEN}.
headers {} Дополнительные заголовки WebSocket. Значения заголовков принимают строковые литералы или значения SecretInput, например x-codex-client-session-token: "${CODEX_CLIENT_SESSION_TOKEN}".
clearEnv [] Дополнительные имена переменных среды, удаляемые из порожденного процесса stdio app-server после того, как OpenClaw сформирует унаследованную среду. OpenClaw сохраняет выбранный CODEX_HOME и унаследованный HOME для локальных запусков.
codeModeOnly false Включает только кодовый режим поверхности инструментов Codex. Динамические инструменты OpenClaw остаются зарегистрированными в Codex, поэтому вложенные вызовы tools.* возвращаются через мост app-server item/tool/call.
remoteWorkspaceRoot не задано Корень рабочей области удаленного Codex app-server. Если задан, OpenClaw выводит локальный корень рабочей области из разрешенной рабочей области OpenClaw, сохраняет текущий суффикс cwd под этим удаленным корнем и отправляет в Codex только итоговый cwd app-server. Если cwd находится вне разрешенного корня рабочей области OpenClaw, OpenClaw отказывает закрыто, а не отправляет локальный для Gateway путь удаленному app-server.
requestTimeoutMs 60000 Тайм-аут для вызовов плоскости управления app-server.
turnCompletionIdleTimeoutMs 60000 Окно тишины после того, как Codex принимает ход, или после ограниченного ходом запроса app-server, пока OpenClaw ожидает turn/completed.
postToolRawAssistantCompletionIdleTimeoutMs 300000 Защита простоя завершения и прогресса, используемая после передачи инструменту, завершения нативного инструмента, прогресса сырого ответа ассистента после инструмента, завершения сырого рассуждения или прогресса рассуждения, пока OpenClaw ожидает turn/completed. Используйте для доверенных или тяжелых нагрузок, где синтез после инструмента может обоснованно молчать дольше, чем бюджет финального выпуска ассистента.
mode "yolo", если локальные требования Codex не запрещают YOLO Предустановка для выполнения YOLO или выполнения с проверкой хранителем. Локальные требования stdio, в которых отсутствуют danger-full-access, подтверждение never или рецензент user, делают неявным значением по умолчанию хранителя.
approvalPolicy "never" или разрешенная политика подтверждения хранителя Нативная политика подтверждения Codex, отправляемая при старте/возобновлении потока/ходе. Значения по умолчанию хранителя предпочитают "on-request", когда это разрешено.
sandbox "danger-full-access" или разрешенная песочница хранителя Нативный режим песочницы Codex, отправляемый при старте/возобновлении потока. Значения по умолчанию хранителя предпочитают "workspace-write", когда это разрешено, иначе "read-only". Когда активна песочница OpenClaw, ходы danger-full-access используют Codex workspace-write с сетевым доступом, выведенным из настройки исходящего трафика песочницы OpenClaw.
approvalsReviewer "user" или разрешенный рецензент хранителя Используйте "auto_review", чтобы Codex проверял нативные запросы подтверждения, когда это разрешено; иначе guardian_subagent или user. guardian_subagent остается устаревшим псевдонимом.
serviceTier не задано Необязательный уровень сервиса Codex app-server. "priority" включает маршрутизацию быстрого режима, "flex" запрашивает гибкую обработку, null очищает переопределение, а устаревшее "fast" принимается как "priority".
networkProxy отключено Включает сетевое взаимодействие профиля разрешений Codex для команд app-server. OpenClaw определяет выбранную конфигурацию permissions.<profile>.network и выбирает ее через default_permissions вместо отправки sandbox.
experimental.sandboxExecServer false Предварительное включение, которое регистрирует среду Codex на базе песочницы OpenClaw в Codex app-server 0.132.0 или новее, чтобы нативное выполнение Codex могло работать внутри активной песочницы OpenClaw.

appServer.networkProxy является явным, потому что меняет контракт песочницы Codex. При включении OpenClaw также задает features.network_proxy.enabled и default_permissions в конфигурации потока Codex, чтобы сгенерированный профиль разрешений мог запустить управляемую сеть Codex. По умолчанию OpenClaw генерирует устойчивое к коллизиям имя профиля openclaw-network-<fingerprint> из тела профиля; используйте profileName только когда требуется стабильное локальное имя.

js
export default {  plugins: {    entries: {      codex: {        config: {          appServer: {            sandbox: "workspace-write",            networkProxy: {              enabled: true,              domains: {                "api.openai.com": "allow",                "blocked.example.com": "deny",              },              unixSockets: {                "/tmp/proxy.sock": "allow",                "/tmp/blocked.sock": "none",              },              allowUpstreamProxy: true,              proxyUrl: "http://127.0.0.1:3128",            },          },        },      },    },  },};

Если обычная среда выполнения app-server была бы danger-full-access, включение networkProxy использует доступ к файловой системе в стиле рабочей области для созданного профиля разрешений. Управляемое Codex применение сетевых правил — это песочница для сети, поэтому профиль с полным доступом не защищал бы исходящий трафик. Записи доменов используют allow или deny; записи Unix-сокетов используют значения Codex allow или none.

Динамические вызовы инструментов, принадлежащие OpenClaw, ограничиваются независимо от appServer.requestTimeoutMs: запросы Codex item/tool/call по умолчанию используют 90-секундный сторожевой таймер OpenClaw. Положительный аргумент timeoutMs для отдельного вызова увеличивает или уменьшает бюджет именно этого инструмента. Инструмент image_generate использует agents.defaults.imageGenerationModel.timeoutMs, когда вызов инструмента не предоставляет собственный тайм-аут, либо иначе использует 120-секундное значение по умолчанию для генерации изображений. Инструмент распознавания медиа image использует tools.media.image.timeoutSeconds или свое 60-секундное значение по умолчанию для медиа. Для понимания изображений этот тайм-аут применяется к самому запросу и не уменьшается из-за предыдущей подготовительной работы. Бюджеты динамических инструментов ограничены 600000 мс. При тайм-ауте OpenClaw прерывает сигнал инструмента там, где это поддерживается, и возвращает Codex ответ о сбое динамического инструмента, чтобы ход мог продолжиться, а не оставлять сессию в состоянии processing. Этот сторожевой таймер является внешним бюджетом динамического item/tool/call; тайм-ауты запросов, специфичные для провайдера, выполняются внутри этого вызова и сохраняют собственную семантику тайм-аутов.

После того как Codex принимает ход, и после того как OpenClaw отвечает на ограниченный ходом запрос app-server, обвязка ожидает, что Codex будет продвигаться в рамках текущего хода и в итоге завершит нативный ход через turn/completed. Если app-server молчит в течение appServer.turnCompletionIdleTimeoutMs, OpenClaw по возможности прерывает ход Codex, записывает диагностический тайм-аут и освобождает полосу сессии OpenClaw, чтобы последующие сообщения чата не вставали в очередь за устаревшим нативным ходом. Большинство нетерминальных уведомлений для того же хода отключают этот короткий сторожевой таймер, потому что Codex доказал, что ход все еще активен. Передачи инструментам используют более длинный бюджет простоя после инструмента: после того как OpenClaw возвращает ответ item/tool/call, после завершения нативных элементов инструментов, таких как commandExecution, после завершений сырых custom_tool_call_output, а также после сырого прогресса ассистента после инструмента, завершений рассуждений или прогресса рассуждений. Защита использует appServer.postToolRawAssistantCompletionIdleTimeoutMs, если он настроен, и иначе по умолчанию равна пяти минутам. Тот же бюджет после инструмента также расширяет сторожевой таймер прогресса для тихого окна синтеза до того, как Codex выдаст следующее событие текущего хода. Глобальные уведомления app-server, например обновления лимитов частоты, не сбрасывают прогресс простоя хода. Завершения рассуждений, завершения комментарийных agentMessage и сырой прогресс рассуждений или ассистента до инструмента могут сопровождаться автоматическим финальным ответом, поэтому они используют защиту ответа после прогресса вместо немедленного освобождения полосы сессии. Только финальные/некомментарийные завершенные элементы agentMessage и сырые завершения ассистента до инструмента включают освобождение по выводу ассистента: если после этого Codex замолкает без turn/completed, OpenClaw по возможности прерывает нативный ход и освобождает полосу сессии. Если другая проверка хода выигрывает эту гонку освобождения, OpenClaw все равно принимает завершенный финальный элемент ассистента, когда не остается активного нативного запроса, элемента или завершения динамического инструмента, а освобождение по выводу ассистента все еще относится к последнему завершенному элементу без более позднего завершения элемента. Это может сохранить финальный ответ после завершенной работы инструмента без повторного проигрывания хода. Частичные дельты ассистента, устаревшие более ранние ответы и пустые более поздние завершения не подходят. Безопасные для повтора сбои stdio app-server, включая тайм-ауты простоя завершения хода без свидетельств ассистента, инструмента, активного элемента или побочных эффектов, повторяются один раз в новой попытке app-server. Небезопасные тайм-ауты все равно выводят зависший клиент app-server из работы и освобождают полосу сессии OpenClaw. Они также очищают устаревшую привязку нативного потока вместо автоматического повторного проигрывания. Тайм-ауты наблюдения за завершением показывают текст тайм-аута, специфичный для Codex: безопасные для повтора случаи говорят, что ответ может быть неполным, а небезопасные случаи просят пользователя проверить текущее состояние перед повторной попыткой. Публичная диагностика тайм-аутов включает структурные поля, такие как последний метод уведомления app-server, id/type/role элемента сырого ответа ассистента, счетчики активных запросов/элементов и состояние включенных проверок. Когда последнее уведомление является элементом сырого ответа ассистента, она также включает ограниченный предпросмотр текста ассистента. Она не включает сырое содержимое промпта или инструмента.

Переопределения окружения остаются доступны для локального тестирования:

  • OPENCLAW_CODEX_APP_SERVER_BIN
  • OPENCLAW_CODEX_APP_SERVER_ARGS
  • OPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardian
  • OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY
  • OPENCLAW_CODEX_APP_SERVER_SANDBOX

OPENCLAW_CODEX_APP_SERVER_BIN обходит управляемый бинарный файл, когда appServer.command не задан.

OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 был удален. Вместо него используйте plugins.entries.codex.config.appServer.mode: "guardian" или OPENCLAW_CODEX_APP_SERVER_MODE=guardian для разового локального тестирования. Конфигурация предпочтительнее для воспроизводимых развертываний, потому что она сохраняет поведение плагина в том же проверяемом файле, что и остальная настройка обвязки Codex.

Нативные плагины Codex

Поддержка нативных плагинов Codex использует собственные возможности приложения и плагинов Codex app-server в том же потоке Codex, что и ход обвязки OpenClaw. OpenClaw не преобразует плагины Codex в синтетические динамические инструменты OpenClaw codex_plugin_*.

codexPlugins влияет только на сессии, которые выбирают нативную обвязку Codex. Он не влияет на запуски встроенной обвязки, обычные запуски провайдера OpenAI, привязки диалогов ACP или другие обвязки.

Минимальная перенесенная конфигурация:

json5
{  plugins: {    entries: {      codex: {        enabled: true,        config: {          codexPlugins: {            enabled: true,            allow_destructive_actions: true,            plugins: {              "google-calendar": {                enabled: true,                marketplaceName: "openai-curated",                pluginName: "google-calendar",              },            },          },        },      },    },  },}

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

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

Доступ к приложениям и плагинам на стороне OpenAI контролируется учетной записью Codex, в которую выполнен вход, а для рабочих областей Business и Enterprise/Edu — элементами управления приложениями рабочей области. См. Использование Codex с вашим планом ChatGPT для обзора учетной записи и элементов управления рабочей областью OpenAI.

Computer Use

Computer Use описан в отдельном руководстве по настройке: Codex Computer Use.

Кратко: OpenClaw не поставляет встроенное приложение управления рабочим столом и не выполняет действия на рабочем столе сам. Он подготавливает Codex app-server, проверяет, что MCP-сервер computer-use доступен, а затем позволяет Codex владеть нативными вызовами инструментов MCP во время ходов в режиме Codex.

Границы среды выполнения

Обвязка Codex изменяет только низкоуровневый встроенный исполнитель агента.

  • Динамические инструменты OpenClaw поддерживаются. Codex просит OpenClaw выполнить эти инструменты, поэтому OpenClaw остается в пути выполнения.
  • Нативные инструменты shell, patch, MCP и приложения Codex принадлежат Codex. OpenClaw может наблюдать или блокировать выбранные нативные события через поддерживаемую ретрансляцию, но он не переписывает аргументы нативных инструментов.
  • Codex владеет нативным Compaction. OpenClaw сохраняет зеркало транскрипта для истории каналов, поиска, /new, /reset и будущего переключения модели или обвязки, но не заменяет Compaction Codex суммаризатором OpenClaw или context-engine.
  • Генерация медиа, понимание медиа, TTS, подтверждения и вывод инструментов обмена сообщениями продолжают проходить через соответствующие настройки провайдера/модели OpenClaw.
  • tool_result_persist применяется к результатам инструментов транскрипта, принадлежащим OpenClaw, а не к нативным записям результатов инструментов Codex.

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

Устранение неполадок

Codex не отображается как обычный провайдер /model: это ожидаемо для новых конфигураций. Выберите модель openai/gpt-*, включите plugins.entries.codex.enabled и проверьте, не исключает ли plugins.allow codex.

OpenClaw использует встроенную обвязку вместо Codex: убедитесь, что ссылка на модель — openai/gpt-* на официальном провайдере OpenAI, а плагин Codex установлен и включен. Если при тестировании нужно строгое доказательство, задайте для провайдера или модели agentRuntime.id: "codex". Принудительная среда выполнения Codex завершается сбоем вместо отката к OpenClaw.

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

bash
(  pattern='openai/gpt-5\.[45]|openai[-]codex|agentRuntime(\.id)?|harnessRuntime|Runtime: OpenAI Codex|legacy OpenAI Codex prefix|resolveSelectedOpenAIRuntimeProvider|candidateProvider[": ]+openai|status[": ]+401|Incorrect API key|No API key|api-key path|API-key path|OAuth'   if ls /tmp/openclaw/openclaw-*.log >/dev/null 2>&1; then    grep -E -i -n "$pattern" /tmp/openclaw/openclaw-*.log 2>/dev/null || true  else    journalctl --user -u openclaw-gateway --since today --no-pager 2>/dev/null \      | grep -E -i "$pattern" || true  fi) | sed -E \    -e 's/(Authorization: Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \    -e 's/(Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \    -e 's/(api[_ -]?key[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \    -e 's/(OPENAI_API_KEY[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \    -e 's/sk-[A-Za-z0-9_-]{12,}/sk-[REDACTED]/g' \    -e 's/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/[EMAIL-REDACTED]/g' \  | tail -200

Полезные фрагменты обычно включают openai/gpt-5.5 или openai/gpt-5.4, Runtime: OpenAI Codex, agentRuntime.id или harnessRuntime, candidateProvider: "openai" и результат 401, Incorrect API key или No API key. Исправленный запуск должен показывать путь OpenAI OAuth вместо обычного сбоя API-ключа OpenAI.

Остается конфигурация устаревших ссылок на модели Codex: выполните openclaw doctor --fix. Doctor переписывает устаревшие ссылки на модели в openai/*, удаляет устаревшие закрепления среды выполнения для сессий и всего агента, а также сохраняет существующие переопределения профилей аутентификации.

app-server отклонен: используйте Codex app-server 0.125.0 или новее. Предрелизы той же версии или версии с суффиксом сборки, такие как 0.125.0-alpha.2 или 0.125.0+custom, отклоняются, потому что OpenClaw проверяет стабильный нижний порог протокола 0.125.0.

/codex status не может подключиться: проверьте, что встроенный плагин codex включен, что plugins.allow включает его, когда настроен список разрешенных, и что любые пользовательские appServer.command, url, authToken или заголовки корректны.

Обнаружение моделей работает медленно: уменьшите plugins.entries.codex.config.discovery.timeoutMs или отключите обнаружение. См. Справочник обвязки Codex.

Транспорт WebSocket сразу завершается сбоем: проверьте appServer.url, authToken, заголовки и то, что удаленный app-server использует ту же версию протокола Codex app-server.

Нативная оболочка или инструменты patch заблокированы с Native hook relay unavailable: поток Codex все еще пытается использовать идентификатор ретранслятора нативного hook, который OpenClaw больше не зарегистрировал. Это проблема транспорта нативных hook Codex, а не сбой бэкенда ACP, провайдера, GitHub или shell-команды. Запустите новый сеанс в затронутом чате с помощью /new или /reset, затем повторите безопасную команду. Если это сработает один раз, но следующий нативный вызов инструмента снова завершится ошибкой, считайте /new только временным обходным решением: скопируйте prompt в новый сеанс после перезапуска app-server Codex или OpenClaw Gateway, чтобы старые потоки были удалены, а регистрации нативных hook созданы заново.

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

Computer Use установлен, но инструменты не запускаются: проверьте /codex computer-use status из нового сеанса. Если инструмент сообщает Native hook relay unavailable, используйте восстановление ретранслятора нативных hook выше. См. Codex Computer Use.

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

Was this useful?
On this page

On this page