Перейти к основному содержанию
Встроенный Plugin codex позволяет OpenClaw запускать встроенные ходы агента OpenAI через Codex app-server вместо встроенной среды OpenClaw. Используйте среду Codex, когда хотите, чтобы 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, который является opt-in средой выполнения 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 не влияют на обычный запуск среды.
  • Авторизация Codex доступна через openclaw models auth login --provider openai, учетную запись app-server в домашнем каталоге Codex агента или явный профиль авторизации Codex с API-ключом.
Сведения о приоритете авторизации, изоляции окружения, пользовательских командах app-server, обнаружении моделей и всех полях конфигурации см. в Справочнике по среде Codex.

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

Большинству пользователей, которым нужен Codex в OpenClaw, подходит этот путь: войдите с подпиской ChatGPT/Codex, включите встроенный Plugin codex и используйте каноническую ссылку на модель openai/gpt-*. Войдите через Codex OAuth:
openclaw models auth login --provider openai
Включите встроенный Plugin codex и выберите агентскую модель OpenAI:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
    },
  },
}
Если ваша конфигурация использует plugins.allow, добавьте туда и codex:
{
  plugins: {
    allow: ["codex"],
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
}
Перезапустите Gateway после изменения конфигурации Plugin. Если у существующего чата уже есть сессия, используйте /new или /reset перед тестированием изменений среды выполнения, чтобы следующий ход выбрал среду из текущей конфигурации.

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

Конфигурация из быстрого старта — это минимально жизнеспособная конфигурация среды Codex. Настраивайте параметры среды Codex в конфигурации OpenClaw, а CLI используйте только для авторизации Codex:
ПотребностьЧто задатьГде
Включить средуplugins.entries.codex.enabled: trueКонфигурация OpenClaw
Сохранить установку Plugin из списка разрешенныхВключите codex в plugins.allowКонфигурация OpenClaw
Направлять ходы агента OpenAI через Codexagents.defaults.model или agents.list[].model как openai/gpt-*Конфигурация агента OpenClaw
Войти через ChatGPT/Codex OAuthopenclaw models auth login --provider openaiПрофиль авторизации CLI
Добавить резервный API-ключ для запусков CodexПрофиль API-ключа openai:*, указанный после авторизации по подписке в auth.order.openaiПрофиль авторизации CLI + конфигурация OpenClaw
Завершаться отказом, когда Codex недоступенagentRuntime.id: "codex" у провайдера или моделиКонфигурация модели/провайдера OpenClaw
Использовать прямой трафик OpenAI APIagentRuntime.id: "openclaw" у провайдера или модели с обычной авторизацией OpenAIКонфигурация модели/провайдера OpenClaw
Настроить поведение app-serverplugins.entries.codex.config.appServer.*Конфигурация Plugin Codex
Включить нативные Plugin-приложения Codexplugins.entries.codex.config.codexPlugins.*Конфигурация Plugin Codex
Включить Codex Computer Useplugins.entries.codex.config.computerUse.*Конфигурация Plugin Codex
Используйте ссылки на модели 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 поддерживает движки контекста, которым требуется предварительная сборка промпта. Обычные CLI-бэкенды, включая codex-cli, не предоставляют такой возможности хоста. Для агентов, обслуживаемых Codex, /compact запускает нативную Compaction Codex app-server в привязанном потоке. OpenClaw не ждет завершения, не накладывает тайм-аут OpenClaw, не перезапускает общий app-server и не переключается на движок контекста или публичный суммаризатор OpenAI. Если нативная привязка потока Codex отсутствует или устарела, команда завершается отказом, чтобы оператор видел реальную границу среды выполнения, а не тихое переключение бэкендов Compaction.
{
  auth: {
    order: {
      openai: ["openai:user@example.com", "openai:api-key-backup"],
    },
  },
}
В такой форме оба профиля по-прежнему проходят через Codex для ходов агента openai/gpt-*. API-ключ является только резервным способом авторизации, а не запросом на переключение на OpenClaw или обычные OpenAI Responses. Остальная часть этой страницы описывает распространенные варианты, между которыми пользователям нужно выбрать: форма развертывания, маршрутизация с отказом, политика guardian approval, нативные Plugin Codex и Computer Use. Полные списки параметров, значения по умолчанию, перечисления, обнаружение, изоляцию окружения, тайм-ауты и поля транспорта app-server см. в Справочнике по среде Codex.

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

Используйте /status в чате, где ожидаете Codex. Ход агента OpenAI, обслуживаемый Codex, показывает:
Runtime: OpenAI Codex
Затем проверьте состояние Codex app-server:
/codex status
/codex models
/codex status сообщает о подключении app-server, учетной записи, лимитах частоты, серверах MCP и Skills. /codex models выводит живой каталог Codex app-server для среды и учетной записи. Если /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 — отдельный путь внешней среды. Используйте его только тогда, когда пользователь просит ACP/acpx или адаптер внешней среды.
Распространенная маршрутизация команд:
Намерение пользователяИспользуйте
Прикрепить текущий чат/codex bind [--cwd <path>]
Возобновить существующий поток Codex/codex resume <thread-id>
Перечислить или отфильтровать потоки Codex/codex threads [filter]
Перечислить нативные Plugin Codex/codex plugins list
Включить или отключить настроенный нативный Plugin 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 с нативной средой выполнения Codexopenai/gpt-* плюс включенный Plugin codex/status показывает Runtime: OpenAI CodexРекомендуемый путь
Завершаться с ошибкой, если Codex недоступенProvider или модель agentRuntime.id: "codex"Ход завершается ошибкой вместо встроенного резервного путиИспользуйте для развертываний только с Codex
Прямой трафик с API-ключом OpenAI через OpenClawProvider или модель agentRuntime.id: "openclaw" и обычная auth OpenAI/status показывает среду выполнения OpenClawИспользуйте только когда OpenClaw выбран намеренно
Устаревшая конфигурацияустаревшие GPT-ссылки Codexopenclaw doctor --fix переписывает ееНе пишите новую конфигурацию таким способом
Адаптер ACP/acpx CodexACP sessions_spawn({ runtime: "acp" })Статус задачи/сессии ACPОтдельно от нативного harness Codex
agents.defaults.imageModel использует такое же разделение по префиксам. Используйте openai/gpt-* для обычного маршрута OpenAI и codex/gpt-* только когда понимание изображений должно выполняться через ограниченный ход сервера приложения Codex. Не используйте устаревшие GPT-ссылки Codex; doctor переписывает этот устаревший префикс в openai/gpt-*.

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

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

Используйте конфигурацию quickstart, когда все ходы агента OpenAI должны по умолчанию использовать Codex.
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
    },
  },
}

Развертывание со смешанными Provider

Эта форма оставляет Claude агентом по умолчанию и добавляет именованного агента Codex:
{
  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 использует свой обычный путь Provider, а агент codex использует сервер приложения Codex.

Развертывание Codex с отказом без резервного пути

Для ходов агента OpenAI openai/gpt-* уже разрешается в Codex, когда доступен встроенный Plugin. Добавьте явную политику среды выполнения, когда нужна записанная правило отказа без резервного пути:
{
  models: {
    providers: {
      openai: {
        agentRuntime: {
          id: "codex",
        },
      },
    },
  },
  agents: {
    defaults: {
      model: "openai/gpt-5.5",
    },
  },
  plugins: {
    entries: {
      codex: {
        enabled: true,
      },
    },
  },
}
При принудительном использовании Codex OpenClaw завершается раньше, если Plugin Codex отключен, сервер приложения слишком старый или сервер приложения не может запуститься.

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

По умолчанию Plugin запускает локально управляемый OpenClaw бинарный файл Codex с stdio transport. Задавайте appServer.command только когда намеренно хотите запускать другой исполняемый файл. Используйте WebSocket transport только когда сервер приложения уже запущен в другом месте:
{
  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-серверы и выполнение Plugin на базе приложений для этого хода, вместо того чтобы полагаться на песочницу на стороне хоста Codex. Доступ к shell предоставляется через динамические инструменты OpenClaw на базе песочницы, такие как sandbox_exec и sandbox_process, когда доступны обычные инструменты exec/process. Используйте нормализованный режим exec OpenClaw, когда хотите нативную auto-review Codex перед выходами из песочницы или дополнительными разрешениями:
{
  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 см. в Режимы разрешений. Все поля сервера приложения, порядок auth, изоляция окружения, обнаружение и поведение timeout описаны в справочнике по harness Codex.

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

Встроенный Plugin регистрирует /codex как slash-команду в любом канале, который поддерживает текстовые команды OpenClaw. Распространенные формы:
  • /codex status проверяет подключение к серверу приложения, модели, аккаунт, лимиты скорости, MCP-серверы и Skills.
  • /codex models выводит живые модели сервера приложения Codex.
  • /codex threads [filter] выводит недавние потоки сервера приложения Codex.
  • /codex resume <thread-id> присоединяет текущую сессию OpenClaw к существующему потоку Codex.
  • /codex compact просит сервер приложения Codex выполнить compact для присоединенного потока.
  • /codex review запускает нативную review Codex для присоединенного потока.
  • /codex diagnostics [note] спрашивает перед отправкой feedback Codex для присоединенного потока.
  • /codex account показывает статус аккаунта и лимитов скорости.
  • /codex mcp выводит статус MCP-серверов сервера приложения Codex.
  • /codex skills выводит Skills сервера приложения Codex.
Для большинства отчетов в поддержку начинайте с /diagnostics [note] в разговоре, где произошла ошибка. Она создает один диагностический отчет Gateway и, для сессий harness Codex, запрашивает одобрение на отправку соответствующего bundle feedback Codex. См. Экспорт диагностики для модели приватности и поведения в групповых чатах. Используйте /codex diagnostics [note] только когда вам конкретно нужна загрузка feedback Codex для текущего присоединенного потока без полного диагностического bundle Gateway.

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

Самый быстрый способ изучить неудачный запуск Codex часто состоит в том, чтобы открыть нативный поток Codex напрямую:
codex resume <thread-id>
Получите id потока из завершенного ответа /diagnostics, /codex binding или /codex threads [filter]. Механику загрузки и границы диагностики на уровне среды выполнения см. в среде выполнения harness Codex. Auth выбирается в таком порядке:
  1. Упорядоченные профили auth OpenAI для агента, предпочтительно в auth.order.openai. Запустите openclaw doctor --fix, чтобы мигрировать старые устаревшие id профилей auth Codex и устаревший порядок auth Codex.
  2. Существующий аккаунт сервера приложения в Codex home этого агента.
  3. Только для локальных запусков stdio-сервера приложения: CODEX_API_KEY, затем OPENAI_API_KEY, когда аккаунта сервера приложения нет, а auth OpenAI все еще требуется.
Когда OpenClaw видит профиль auth Codex в стиле подписки ChatGPT, он удаляет CODEX_API_KEY и OPENAI_API_KEY из порожденного дочернего процесса Codex. Это сохраняет API-ключи уровня Gateway доступными для embeddings или прямых моделей OpenAI, не позволяя нативным ходам сервера приложения Codex случайно тарифицироваться через API. Явные профили API-ключа Codex и локальный stdio fallback env-key используют login сервера приложения вместо унаследованного env дочернего процесса. WebSocket-подключения к серверу приложения не получают fallback API-ключа Gateway env; используйте явный профиль auth или собственный аккаунт удаленного сервера приложения. Когда настроены нативные Plugins Codex, OpenClaw устанавливает или обновляет эти Plugins через подключенный сервер приложения перед тем, как предоставить принадлежащие Plugin приложения потоку Codex. app/list остается источником истины для id приложений, доступности и метаданных, но OpenClaw владеет решением о включении для каждого потока: если политика разрешает перечисленное доступное приложение, OpenClaw отправляет thread/start.config.apps[appId].enabled = true, даже когда app/list в данный момент сообщает, что это приложение отключено. Этот путь не придумывает установку приложений для неизвестных id; OpenClaw активирует только marketplace Plugins с помощью plugin/install, а затем обновляет inventory. Если профиль подписки достигает лимита использования Codex, OpenClaw записывает время reset, когда Codex его сообщает, и пробует следующий упорядоченный профиль auth для того же запуска Codex. Когда время reset проходит, профиль подписки снова становится пригодным без изменения выбранной модели openai/gpt-* или среды выполнения Codex. Для локальных запусков stdio-сервера приложения OpenClaw задает CODEX_HOME как каталог для каждого агента, чтобы конфигурация Codex, файлы auth/account, кэш/данные Plugin и нативное состояние потоков по умолчанию не читали и не записывали личный ~/.codex оператора. OpenClaw сохраняет обычный процессный HOME; subprocesses, запущенные Codex, по-прежнему могут находить конфигурацию и токены user-home, а Codex может обнаруживать общие записи $HOME/.agents/skills и $HOME/.agents/plugins/marketplace.json. Если развертыванию нужна дополнительная изоляция окружения, добавьте эти переменные в appServer.clearEnv:
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"],
          },
        },
      },
    },
  },
}
appServer.clearEnv влияет только на порожденный дочерний процесс сервера приложения Codex. OpenClaw удаляет CODEX_HOME и HOME из этого списка во время нормализации локального запуска: CODEX_HOME остается отдельным для каждого агента, а HOME остается унаследованным, чтобы subprocesses могли использовать обычное состояние user-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 отключенным, потому что production-трафик app-server отклоняет его пользовательское пространство имен web. tools.web.search.enabled: false отключает оба пути, как и LLM-only-запуски с отключенными инструментами. Codex трактует "cached" как предпочтение и преобразует его в живой внешний доступ для неограниченных ходов app-server. Автоматический управляемый fallback завершается закрыто, когда заданы встроенные allowedDomains, чтобы allowlist нельзя было обойти. Постоянные изменения эффективной политики поиска ротируют привязанный поток Codex перед следующим ходом. Временные ограничения на отдельный ход используют временный ограниченный поток и сохраняют существующую привязку для последующего возобновления. Ответы источника только через sessions_yield и message-tool-only остаются прямыми, потому что это контракты управления ходом. sessions_spawn остается searchable, чтобы встроенный spawn_agent Codex оставался основной поверхностью подагентов Codex, при этом явное делегирование OpenClaw или ACP по-прежнему доступно через пространство имен динамических инструментов openclaw. Инструкции по совместной работе Heartbeat говорят Codex искать heartbeat_respond перед завершением хода Heartbeat, когда инструмент еще не загружен. Задавайте codexDynamicToolsLoading: "direct" только при подключении к пользовательскому app-server Codex, который не может искать отложенные динамические инструменты, или при отладке полной полезной нагрузки инструментов. Поддерживаемые поля верхнего уровня Plugin Codex:
ПолеПо умолчаниюЗначение
codexDynamicToolsLoading"searchable"Используйте "direct", чтобы поместить динамические инструменты OpenClaw прямо в начальный контекст инструментов Codex.
codexDynamicToolsExclude[]Дополнительные имена динамических инструментов OpenClaw, которые нужно исключить из ходов app-server Codex.
codexPluginsотключеноВстроенная поддержка Plugin/app Codex для мигрированных curated plugins, установленных из исходного кода.
Поддерживаемые поля appServer:
ПолеПо умолчаниюЗначение
transport"stdio""stdio" запускает Codex; "websocket" подключается к url.
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 для локальных запусков.
codeModeOnlyfalseВключает только поверхность инструментов 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.
requestTimeoutMs60000Тайм-аут для вызовов плоскости управления app-server.
turnCompletionIdleTimeoutMs60000Тихое окно после того, как Codex принимает ход, или после запроса app-server в области хода, пока OpenClaw ожидает turn/completed.
postToolRawAssistantCompletionIdleTimeoutMs300000Защита простоя завершения и прогресса, используемая после передачи инструменту, завершения нативного инструмента, прогресса сырого ответа ассистента после инструмента, завершения сырого рассуждения или прогресса рассуждения, пока OpenClaw ожидает turn/completed. Используйте это для доверенных или тяжелых рабочих нагрузок, где синтез после инструмента может обоснованно оставаться тихим дольше, чем бюджет финального выпуска ассистента.
mode"yolo", если локальные требования Codex разрешают YOLOПредустановка для YOLO или выполнения с проверкой guardian. Локальные требования stdio, в которых отсутствует danger-full-access, утверждение never или рецензент user, делают неявным значением по умолчанию guardian.
approvalPolicy"never" или разрешенная политика утверждения guardianНативная политика утверждений Codex, отправляемая при старте/возобновлении потока/хода. Значения по умолчанию guardian предпочитают "on-request", когда это разрешено.
sandbox"danger-full-access" или разрешенная песочница guardianНативный режим песочницы Codex, отправляемый при старте/возобновлении потока. Значения по умолчанию guardian предпочитают "workspace-write", когда это разрешено, иначе "read-only". Когда песочница OpenClaw активна, ходы danger-full-access используют Codex workspace-write с доступом к сети, выведенным из настройки egress песочницы OpenClaw.
approvalsReviewer"user" или разрешенный рецензент guardianИспользуйте "auto_review", чтобы Codex проверял нативные запросы утверждения, когда это разрешено, иначе guardian_subagent или user. guardian_subagent остается устаревшим псевдонимом.
serviceTierне заданоНеобязательный уровень сервиса Codex app-server. "priority" включает маршрутизацию fast-mode, "flex" запрашивает flex-обработку, null очищает переопределение, а устаревшее "fast" принимается как "priority".
networkProxyотключеноВключает сетевое взаимодействие профиля разрешений Codex для команд app-server. OpenClaw определяет выбранную конфигурацию permissions.<profile>.network и выбирает ее через default_permissions вместо отправки sandbox.
experimental.sandboxExecServerfalseПредварительная настройка opt-in, которая регистрирует среду 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 только когда требуется стабильное локальное имя.
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 отвечает на запрос сервера приложений, ограниченный областью хода, среда выполнения ожидает, что Codex будет продвигать текущий ход и в итоге завершит нативный ход с turn/completed. Если сервер приложений молчит в течение appServer.turnCompletionIdleTimeoutMs, OpenClaw по мере возможности прерывает ход Codex, записывает диагностический тайм-аут и освобождает полосу сессии OpenClaw, чтобы последующие сообщения чата не ставились в очередь за устаревшим нативным ходом. Большинство нетерминальных уведомлений для того же хода отключают этот короткий сторожевой таймер, потому что Codex доказал, что ход все еще активен. Передачи инструментам используют более длинный бюджет простоя после инструмента: после того как OpenClaw возвращает ответ item/tool/call, после завершения нативных элементов инструментов, таких как commandExecution, после завершений необработанного custom_tool_call_output, а также после необработанного прогресса ассистента после инструмента, завершений рассуждения или прогресса рассуждения. Защита использует appServer.postToolRawAssistantCompletionIdleTimeoutMs, когда он настроен, и иначе по умолчанию использует пять минут. Этот же бюджет после инструмента также продлевает сторожевой таймер прогресса для тихого окна синтеза до того, как Codex выдаст следующее событие текущего хода. Глобальные уведомления сервера приложений, такие как обновления лимитов частоты, не сбрасывают прогресс простоя хода. Завершения рассуждения, завершения комментариев agentMessage и необработанный прогресс рассуждения или ассистента до инструмента могут сопровождаться автоматическим финальным ответом, поэтому они используют защиту ответа после прогресса вместо немедленного освобождения полосы сессии. Только финальные/некомментарийные завершенные элементы agentMessage и необработанные завершения ассистента до инструмента взводят освобождение вывода ассистента: если после этого Codex замолкает без turn/completed, OpenClaw по мере возможности прерывает нативный ход и освобождает полосу сессии. Безопасные для воспроизведения сбои stdio сервера приложений, включая тайм-ауты простоя завершения хода без свидетельств ассистента, инструмента, активного элемента или побочного эффекта, повторяются один раз в новой попытке сервера приложений. Небезопасные тайм-ауты все равно выводят застрявший клиент сервера приложений из обращения и освобождают полосу сессии OpenClaw. Они также очищают устаревшую привязку нативного потока, а не воспроизводятся автоматически. Тайм-ауты наблюдения за завершением показывают текст тайм-аута, специфичный для Codex: в безопасных для воспроизведения случаях говорится, что ответ может быть неполным, а в небезопасных случаях пользователю предлагается проверить текущее состояние перед повторной попыткой. Публичная диагностика тайм-аутов включает структурные поля, такие как последний метод уведомления сервера приложений, id/тип/роль элемента необработанного ответа ассистента, число активных запросов/элементов и состояние взведенного наблюдения. Когда последним уведомлением является элемент необработанного ответа ассистента, она также включает ограниченный предварительный просмотр текста ассистента. Она не включает необработанное содержимое промпта или инструмента. Переопределения окружения остаются доступными для локального тестирования:
  • 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 для разового локального тестирования. Конфигурация предпочтительнее для воспроизводимых развертываний, потому что она хранит поведение Plugin в том же проверяемом файле, что и остальная настройка среды выполнения Codex.

Нативные Plugin Codex

Поддержка нативных Plugin Codex использует собственные возможности приложений и Plugin сервера приложений Codex в том же потоке Codex, что и ход среды выполнения OpenClaw. OpenClaw не преобразует Plugin Codex в синтетические динамические инструменты OpenClaw codex_plugin_*. codexPlugins влияет только на сессии, которые выбирают нативную среду выполнения Codex. Он не влияет на запуски встроенной среды выполнения, обычные запуски провайдера OpenAI, привязки разговоров ACP или другие среды выполнения. Минимальная мигрированная конфигурация:
{
  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 запускались с обновленным набором приложений. Сведения о пригодности к миграции, инвентаре приложений, политике разрушительных действий, элиситациях и диагностике нативных Plugin см. в разделе Нативные Plugin Codex. Доступ к приложениям и Plugin на стороне OpenAI управляется учетной записью Codex, в которую выполнен вход, а для рабочих пространств Business и Enterprise/Edu также средствами управления приложениями рабочего пространства. См. Использование Codex с вашим планом ChatGPT для обзора учетных записей и управления рабочими пространствами OpenAI.

Использование компьютера

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

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

Среда выполнения Codex меняет только низкоуровневый встроенный исполнитель агента.
  • Динамические инструменты OpenClaw поддерживаются. Codex просит OpenClaw выполнить эти инструменты, поэтому OpenClaw остается в пути выполнения.
  • Нативные инструменты оболочки, исправлений, MCP и нативных приложений Codex принадлежат Codex. OpenClaw может наблюдать или блокировать выбранные нативные события через поддерживаемый ретранслятор, но не переписывает аргументы нативных инструментов.
  • Codex владеет нативной Compaction. OpenClaw хранит зеркало транскрипта для истории каналов, поиска, /new, /reset и будущего переключения модели или среды выполнения, но не заменяет Compaction Codex суммаризатором OpenClaw или движка контекста.
  • Генерация медиа, понимание медиа, 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 и что Plugin Codex установлен и включен. Если при тестировании нужны строгие доказательства, задайте для провайдера или модели agentRuntime.id: "codex". Принудительная среда выполнения Codex завершается сбоем вместо отката к OpenClaw. Среда выполнения OpenAI Codex откатывается к пути с API-ключом: соберите отредактированный фрагмент Gateway, который показывает модель, среду выполнения, выбранного провайдера и сбой. Попросите затронутых коллег выполнить эту команду только для чтения на их хосте OpenClaw:
(
  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. Исправленный запуск должен показывать путь OAuth OpenAI вместо обычного сбоя API-ключа OpenAI. Конфигурация устаревших ссылок на модели Codex сохраняется: выполните openclaw doctor --fix. Doctor переписывает устаревшие ссылки на модели в openai/*, удаляет устаревшие закрепления сессии и среды выполнения всего агента и сохраняет существующие переопределения профиля аутентификации. Сервер приложений отклоняется: используйте сервер приложений Codex 0.125.0 или новее. Предрелизы той же версии или версии с суффиксом сборки, такие как 0.125.0-alpha.2 или 0.125.0+custom, отклоняются, потому что OpenClaw проверяет стабильный нижний порог протокола 0.125.0. /codex status не может подключиться: проверьте, что встроенный Plugin codex включен, что plugins.allow включает его, когда настроен список разрешенных, и что любые пользовательские appServer.command, url, authToken или заголовки действительны. Обнаружение моделей работает медленно: уменьшите plugins.entries.codex.config.discovery.timeoutMs или отключите обнаружение. См. Справочник среды выполнения Codex. Транспорт WebSocket сразу завершается сбоем: проверьте appServer.url, authToken, заголовки и то, что удаленный сервер приложений говорит на той же версии протокола сервера приложений Codex. Нативные инструменты оболочки или исправлений заблокированы с Native hook relay unavailable: поток Codex все еще пытается использовать идентификатор нативного ретранслятора хуков, который OpenClaw больше не зарегистрировал. Это проблема нативного транспорта хуков Codex, а не сбой бэкенда ACP, провайдера, GitHub или команды оболочки. Запустите новую сессию в затронутом чате с /new или /reset, затем повторите безвредную команду. Если это сработает один раз, но следующий вызов нативного инструмента снова завершится сбоем, рассматривайте /new только как временный обходной путь: скопируйте промпт в новую сессию после перезапуска сервера приложений Codex или OpenClaw Gateway, чтобы старые потоки были отброшены, а регистрации нативных хуков созданы заново. Модель не Codex использует встроенную среду выполнения: это ожидаемо, если политика среды выполнения провайдера или модели не направляет ее в другую среду выполнения. Обычные ссылки провайдеров не OpenAI остаются на своем обычном пути провайдера в режиме auto. Computer Use установлен, но инструменты не запускаются: проверьте /codex computer-use status в новом сеансе. Если инструмент сообщает Native hook relay unavailable, используйте восстановление native hook relay выше. См. Codex Computer Use.

Связанное