> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Довідник із тестового середовища Codex

Цей довідник охоплює детальну конфігурацію для вбудованого Plugin `codex`.
Щодо налаштування та рішень маршрутизації почніть із
[Codex harness](/uk/plugins/codex-harness).

## Поверхня конфігурації Plugin

Усі налаштування Codex harness розміщені в `plugins.entries.codex.config`.

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          discovery: {
            enabled: true,
            timeoutMs: 2500,
          },
          appServer: {
            mode: "guardian",
          },
        },
      },
    },
  },
}
```

Підтримувані поля верхнього рівня:

| Поле                       | Типове значення            | Значення                                                                                                                                                                   |
| -------------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `discovery`                | увімкнено                  | Налаштування виявлення моделей для Codex app-server `model/list`.                                                                                                          |
| `appServer`                | керований stdio app-server | Налаштування транспорту, команди, автентифікації, схвалення, пісочниці та часу очікування.                                                                                 |
| `codexDynamicToolsLoading` | `"searchable"`             | Використовуйте `"direct"`, щоб розмістити динамічні інструменти OpenClaw безпосередньо в початковому контексті інструментів Codex.                                         |
| `codexDynamicToolsExclude` | `[]`                       | Додаткові назви динамічних інструментів OpenClaw, які потрібно пропустити в ходах Codex app-server.                                                                        |
| `codexPlugins`             | вимкнено                   | Нативна підтримка Plugin/застосунків Codex для перенесених curated plugins, встановлених із вихідного коду. Див. [Нативні Plugin Codex](/uk/plugins/codex-native-plugins). |
| `computerUse`              | вимкнено                   | Налаштування Codex Computer Use. Див. [Codex Computer Use](/uk/plugins/codex-computer-use).                                                                                |

## Транспорт app-server

За замовчуванням OpenClaw запускає керований бінарний файл Codex, що постачається з вбудованим
Plugin:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
codex app-server --listen stdio://
```

Це прив’язує версію app-server до вбудованого Plugin `codex`, а не до
будь-якого окремого Codex CLI, який випадково встановлено локально. Установлюйте
`appServer.command` лише тоді, коли ви навмисно хочете запускати інший
виконуваний файл.

Для app-server, який уже запущено, використовуйте транспорт WebSocket:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            transport: "websocket",
            url: "ws://gateway-host:39175",
            authToken: "${CODEX_APP_SERVER_TOKEN}",
            requestTimeoutMs: 60000,
          },
        },
      },
    },
  },
}
```

Підтримувані поля `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 app-server WebSocket.                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `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 сформує успадковане середовище.                                                                                                                                                                                                                                                                                                                    |
| `remoteWorkspaceRoot`                         | не задано                                                | Корінь робочого простору віддаленого Codex app-server. Коли задано, OpenClaw виводить локальний корінь робочого простору з розв’язаного робочого простору OpenClaw, зберігає поточний суфікс cwd під цим віддаленим коренем і надсилає до Codex лише фінальний cwd app-server. Якщо cwd перебуває поза розв’язаним коренем робочого простору OpenClaw, OpenClaw аварійно завершує операцію замість надсилання локального для Gateway шляху до віддаленого app-server. |
| `requestTimeoutMs`                            | `60000`                                                  | Тайм-аут для викликів control-plane app-server.                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `turnCompletionIdleTimeoutMs`                 | `60000`                                                  | Вікно тиші після того, як Codex приймає хід, або після запиту app-server у межах ходу, поки OpenClaw очікує на `turn/completed`.                                                                                                                                                                                                                                                                                                                                      |
| `postToolRawAssistantCompletionIdleTimeoutMs` | `300000`                                                 | Захист простою завершення та прогресу, який використовується після передавання інструменту, завершення нативного інструменту, прогресу raw assistant після інструменту, завершення raw reasoning або прогресу reasoning, поки OpenClaw очікує на `turn/completed`. Використовуйте це для довірених або важких навантажень, де синтез після інструменту може правомірно залишатися тихим довше, ніж фінальний бюджет випуску assistant.                                |
| `mode`                                        | `"yolo"`, якщо локальні вимоги Codex не забороняють YOLO | Пресет для YOLO або виконання з перевіркою guardian.                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `approvalPolicy`                              | `"never"` або дозволена політика схвалення guardian      | Нативна політика схвалення Codex, яку надсилають під час запуску потоку, відновлення та ходу.                                                                                                                                                                                                                                                                                                                                                                         |
| `sandbox`                                     | `"danger-full-access"` або дозволена пісочниця guardian  | Нативний режим пісочниці Codex, який надсилають під час запуску та відновлення потоку. Активні пісочниці OpenClaw звужують ходи `danger-full-access` до Codex `workspace-write`; прапорець мережі ходу наслідує вихідний трафік пісочниці OpenClaw.                                                                                                                                                                                                                   |
| `approvalsReviewer`                           | `"user"` або дозволений рецензент guardian               | Використовуйте `"auto_review"`, щоб дозволити Codex перевіряти нативні запити схвалення, коли це дозволено.                                                                                                                                                                                                                                                                                                                                                           |
| `defaultWorkspaceDir`                         | каталог поточного процесу                                | Робочий простір, який використовує `/codex bind`, коли `--cwd` пропущено.                                                                                                                                                                                                                                                                                                                                                                                             |
| `serviceTier`                                 | не задано                                                | Необов’язковий рівень сервісу Codex app-server. `"priority"` вмикає маршрутизацію fast-mode, `"flex"` запитує обробку flex, а `null` очищає перевизначення. Застаріле `"fast"` приймається як `"priority"`.                                                                                                                                                                                                                                                           |
| `networkProxy`                                | вимкнено                                                 | Дозволяє використовувати мережу профілю дозволів Codex для команд app-server. OpenClaw визначає вибрану конфігурацію `permissions.<profile>.network` і вибирає її через `default_permissions` замість надсилання `sandbox`.                                                                                                                                                                                                                                           |
| `experimental.sandboxExecServer`              | `false`                                                  | Попередній 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` лише тоді, коли потрібна стабільна локальна назва.

```js theme={"theme":{"light":"min-light","dark":"min-dark"}}
export default {
  plugins: {
    entries: {
      codex: {
        config: {
          appServer: {
            sandbox: "workspace-write",
            networkProxy: {
              enabled: true,
              domains: {
                "api.openai.com": "allow",
                "blocked.example.com": "deny",
              },
              allowUpstreamProxy: true,
              proxyUrl: "http://127.0.0.1:3128",
            },
          },
        },
      },
    },
  },
};
```

Якщо звичайним середовищем виконання сервера застосунків було б `danger-full-access`, увімкнення
`networkProxy` використовує доступ до файлової системи в стилі робочої області для згенерованого
профілю дозволів. Кероване Codex мережеве примусове застосування є ізольованою мережею,
тому профіль повного доступу не захищав би вихідний трафік.

Plugin блокує старіші або неверсіоновані рукостискання сервера застосунків. Сервер застосунків Codex
має повідомляти стабільну версію `0.125.0` або новішу.

OpenClaw трактує WebSocket URL-и сервера застосунків, що не є loopback, як віддалені й вимагає
WebSocket-автентифікацію з ідентифікацією через `appServer.authToken` або
заголовок `Authorization`. `appServer.authToken` і кожне значення `appServer.headers.*`
можуть бути SecretInput; середовище виконання секретів розв’язує SecretRefs і скорочення env
до того, як OpenClaw створює параметри запуску сервера застосунків, а нерозв’язані
структуровані SecretRefs завершуються помилкою до надсилання будь-якого токена чи заголовка. Коли налаштовано нативні
plugins Codex, OpenClaw використовує площину керування plugins підключеного сервера застосунків,
щоб установити або оновити ці plugins, а потім оновлює інвентар застосунків, щоб
застосунки, якими володіють plugins, були видимі для потоку Codex. `app/list` і далі є
авторитетним джерелом інвентарю та метаданих, але політика OpenClaw вирішує, чи
`thread/start` надсилає `config.apps[appId].enabled = true` для переліченого доступного
застосунку, навіть якщо Codex зараз позначає його як вимкнений. Невідомі або відсутні id застосунків залишаються
закритими з відмовою; цей шлях лише активує marketplace plugins через `plugin/install`
і оновлює інвентар. Підключайте OpenClaw лише до тих віддалених серверів застосунків, яким
довіряєте приймати керовані OpenClaw встановлення plugins і оновлення інвентарю застосунків.

## Режими схвалення та sandbox

Локальні stdio-сеанси сервера застосунків за замовчуванням використовують режим YOLO:
`approvalPolicy: "never"`, `approvalsReviewer: "user"` і
`sandbox: "danger-full-access"`. Така довірена позиція локального оператора дає змогу
автономним зверненням OpenClaw і Heartbeat просуватися без нативних запитів схвалення,
на які нікому відповісти.

Якщо локальний файл системних вимог Codex забороняє неявні значення YOLO для схвалення,
рецензента або sandbox, OpenClaw натомість трактує неявне значення за замовчуванням як guardian
і вибирає дозволені дозволи guardian. `tools.exec.mode: "auto"`
також примусово вмикає схвалення Codex із guardian-рецензуванням і не зберігає небезпечні
застарілі перевизначення `approvalPolicy: "never"` або `sandbox: "danger-full-access"`;
задайте `tools.exec.mode: "full"` для навмисної позиції без схвалень.
Записи
`[[remote_sandbox_config]]` у тому самому файлі вимог, що збігаються з hostname,
враховуються під час ухвалення рішення про sandbox за замовчуванням.

Задайте `appServer.mode: "guardian"` для схвалень Codex із guardian-рецензуванням:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            mode: "guardian",
            serviceTier: "priority",
          },
        },
      },
    },
  },
}
```

Пресет `guardian` розгортається в `approvalPolicy: "on-request"`,
`approvalsReviewer: "auto_review"` і `sandbox: "workspace-write"`, коли ці
значення дозволені. Окремі поля політики перевизначають `mode`. Старіше
значення рецензента `guardian_subagent` досі приймається як сумісний псевдонім,
але нові конфігурації мають використовувати `auto_review`.

Коли активний sandbox OpenClaw, локальний процес сервера застосунків Codex усе одно
працює на хості Gateway. Тому OpenClaw вимикає нативний Code Mode Codex,
користувацькі MCP-сервери та виконання plugins на основі застосунків для цього звернення,
замість того щоб трактувати sandboxing на боці хоста Codex як еквівалент backend sandbox
OpenClaw. Доступ до shell надається через динамічні інструменти на основі sandbox OpenClaw,
такі як `sandbox_exec` і `sandbox_process`, коли звичайні інструменти exec/process
доступні.

На хостах Ubuntu/AppArmor Codex bwrap може завершитися помилкою в `workspace-write` до
запуску shell-команди, коли ви навмисно запускаєте нативний Codex
`workspace-write` без активного sandbox OpenClaw. Якщо ви бачите
`bwrap: setting up uid map: Permission denied` або
`bwrap: loopback: Failed RTM_NEWADDR: Operation not permitted`, запустіть
`openclaw doctor` і виправте повідомлену політику namespace хоста для користувача служби OpenClaw
замість надання ширших привілеїв Docker-контейнеру. Надавайте перевагу
обмеженому профілю AppArmor для процесу служби; fallback
`kernel.apparmor_restrict_unprivileged_userns=0` діє на весь хост і має
компроміси безпеки.

## Ізольоване нативне виконання

Стабільне значення за замовчуванням є fail-closed: активний sandbox OpenClaw вимикає нативні
поверхні виконання Codex, які інакше запускалися б із хоста сервера застосунків Codex.
Використовуйте `appServer.experimental.sandboxExecServer: true` лише тоді, коли хочете
спробувати підтримку віддаленого середовища Codex із backend sandbox OpenClaw. Цей
preview-шлях потребує сервера застосунків Codex 0.132.0 або новішого.

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            experimental: {
              sandboxExecServer: true,
            },
          },
        },
      },
    },
  },
}
```

Коли прапорець увімкнено й поточний сеанс OpenClaw перебуває в sandbox, OpenClaw
запускає local loopback exec-сервер на основі активного sandbox, реєструє його
в сервері застосунків Codex і запускає потік та звернення Codex із цим
середовищем, яким володіє OpenClaw. Якщо сервер застосунків не може зареєструвати середовище,
запуск завершується fail-closed замість тихого fallback до виконання на хості.

Цей preview-шлях лише локальний. Віддалений WebSocket-сервер застосунків не може дістатися
loopback exec-сервера, якщо він не працює на тому самому хості, тому OpenClaw відхиляє
таке поєднання.

## Автентифікація та ізоляція середовища

У типовому домашньому каталозі для кожного агента автентифікація вибирається в такому порядку:

1. Явний профіль автентифікації OpenClaw Codex для агента.
2. Наявний обліковий запис сервера застосунків у Codex home цього агента.
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 і локальний stdio fallback env-ключів використовують вхід сервера застосунків
замість успадкованого env дочірнього процесу. WebSocket-підключення сервера застосунків
не отримують fallback API-ключів env Gateway; використовуйте явний профіль автентифікації або
власний обліковий запис віддаленого сервера застосунків.

Stdio-запуски сервера застосунків за замовчуванням успадковують середовище процесу OpenClaw.
OpenClaw володіє мостом облікового запису сервера застосунків Codex і задає `CODEX_HOME` як
каталог для кожного агента в стані OpenClaw цього агента. Це утримує конфігурацію Codex,
облікові записи, кеш/дані plugins і стан потоків у межах агента OpenClaw
замість витоку з особистого домашнього каталогу оператора `~/.codex`.

Задайте `appServer.homeScope: "user"`, щоб спільно використовувати нативний стан Codex із Codex
Desktop і CLI. Цей режим лише для локального stdio використовує `$CODEX_HOME`, якщо задано,
і `~/.codex` інакше, включно з нативною автентифікацією, конфігурацією, plugins і потоками.
OpenClaw пропускає свій міст профілю автентифікації для сервера застосунків. Перевірені звернення власника
можуть використовувати `codex_threads`, щоб перелічувати, шукати, читати, fork, перейменовувати, архівувати й відновлювати
ці потоки. Fork потік перед продовженням його в OpenClaw; незалежні
процеси Codex не координують конкурентних авторів для того самого потоку.

OpenClaw не переписує `HOME` для звичайних локальних запусків сервера застосунків. Підпроцеси, запущені Codex,
такі як `openclaw`, `gh`, `git`, хмарні CLI та shell-команди, бачать
звичайний домашній каталог процесу й можуть знаходити конфігурацію та токени в домашньому каталозі користувача. Codex також може
виявляти `$HOME/.agents/skills` і `$HOME/.agents/plugins/marketplace.json`;
це виявлення `.agents` навмисно спільне з домашнім каталогом оператора й
окреме від ізольованого стану `~/.codex`.

У типовій області агента OpenClaw plugins і знімки Skills OpenClaw і далі
проходять через власний реєстр plugins і завантажувач Skills OpenClaw; особисті ресурси Codex
`~/.codex` не проходять. Якщо у вас є корисні Skills або plugins Codex CLI з
Codex home, які мають стати частиною ізольованого агента OpenClaw, явно
інвентаризуйте їх:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw migrate codex --dry-run
openclaw migrate apply codex --yes
```

Якщо розгортанню потрібна додаткова ізоляція середовища, додайте ці змінні до
`appServer.clearEnv`:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          appServer: {
            clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"],
          },
        },
      },
    },
  },
}
```

`appServer.clearEnv` впливає лише на породжений дочірній процес сервера застосунків Codex.
OpenClaw видаляє `CODEX_HOME` і `HOME` із цього списку під час нормалізації локального запуску:
`CODEX_HOME` залишається спрямованим на вибрану область агента або користувача,
а `HOME` залишається успадкованим, щоб підпроцеси могли використовувати звичайний стан домашнього каталогу користувача.

## Динамічні інструменти

Динамічні інструменти Codex за замовчуванням використовують завантаження `searchable`. OpenClaw не надає
динамічні інструменти, які дублюють нативні операції робочої області Codex:

* `read`
* `write`
* `edit`
* `apply_patch`
* `exec`
* `process`
* `update_plan`

Більшість інших інтеграційних інструментів OpenClaw, таких як messaging, media, Cron,
browser, nodes, Gateway, `heartbeat_respond` і `web_search`, доступні
через пошук інструментів Codex у namespace `openclaw`. Це зменшує початковий
контекст моделі. `sessions_yield` і відповіді джерела лише для message-tool
залишаються прямими, бо це контракти керування зверненням. `sessions_spawn` залишається
searchable, щоб нативний `spawn_agent` Codex залишався основною поверхнею subagent Codex,
тоді як явне делегування OpenClaw або ACP і далі доступне через
namespace динамічних інструментів `openclaw`.

Задавайте `codexDynamicToolsLoading: "direct"` лише під час підключення до кастомного сервера застосунків Codex,
який не може шукати відкладені динамічні інструменти, або під час налагодження повного
payload інструментів.

## Тайм-аути

Виклики динамічних інструментів, якими володіє OpenClaw, обмежені незалежно від
`appServer.requestTimeoutMs`. Кожен запит Codex `item/tool/call` використовує перший
доступний тайм-аут у такому порядку:

* Додатний аргумент `timeoutMs` для окремого виклику.
* Для `image_generate`, `agents.defaults.imageGenerationModel.timeoutMs`.
* Для `image_generate` без налаштованого тайм-ауту, типовий тайм-аут генерації зображень 120 секунд.
* Для інструмента розуміння медіа `image`, `tools.media.image.timeoutSeconds`
  перетворений у мілісекунди, або типовий тайм-аут медіа 60 секунд. Для розуміння зображень
  це застосовується до самого запиту й не зменшується через попередню підготовчу роботу.
* Типовий тайм-аут динамічного інструмента 90 секунд.

Цей watchdog є зовнішнім бюджетом динамічного `item/tool/call`. Тайм-аути запитів,
специфічні для провайдера, працюють усередині цього виклику й зберігають власну семантику тайм-аутів.
Бюджети динамічних інструментів обмежені 600000 мс. У разі тайм-ауту OpenClaw перериває
сигнал інструмента, де це підтримується, і повертає Codex невдалу відповідь динамічного інструмента,
щоб звернення могло продовжитися замість залишення сеансу в `processing`.

Після того як Codex приймає звернення, і після того як OpenClaw відповідає на запит сервера застосунків
у межах звернення, harness очікує, що Codex виконуватиме прогрес поточного звернення й
зрештою завершить нативне звернення через `turn/completed`. Якщо сервер застосунків замовкає
на `appServer.turnCompletionIdleTimeoutMs`, OpenClaw у режимі best-effort
перериває звернення Codex, записує діагностичний тайм-аут і звільняє
смугу сеансу OpenClaw, щоб наступні повідомлення чату не стояли в черзі за застарілим
нативним зверненням.

Більшість нетермінальних сповіщень для того самого ходу вимикають цей короткий watchdog,
оскільки Codex уже довів, що хід досі активний. Передавання керування інструментам використовує довший
бюджет простою після інструмента: після того як OpenClaw повертає відповідь `item/tool/call`, після
завершення нативних елементів інструментів, як-от `commandExecution`, після сирих
завершень `custom_tool_call_output`, а також після сирого прогресу асистента після інструмента,
завершень сирого reasoning або прогресу reasoning. Захист використовує
`appServer.postToolRawAssistantCompletionIdleTimeoutMs`, коли його налаштовано, а інакше
типово становить п’ять хвилин. Той самий бюджет після інструмента також подовжує
watchdog прогресу для тихого вікна синтезу перед тим, як Codex видасть наступну
подію поточного ходу. Завершення reasoning, завершення commentary
`agentMessage`, а також сирий прогрес reasoning або асистента до інструмента можуть
супроводжуватися автоматичною фінальною відповіддю, тому вони використовують захист відповіді
після прогресу замість негайного звільнення смуги сеансу. Лише
фінальні/не-commentary завершені елементи `agentMessage` і сирі завершення асистента до інструмента
вмикають звільнення виводу асистента: якщо після цього Codex замовкає без
`turn/completed`, OpenClaw у режимі best-effort перериває нативний хід і звільняє
смугу сеансу. Replay-safe збої app-server stdio, зокрема
тайм-аути простою завершення ходу без ознак асистента, інструмента, активного елемента або
побічного ефекту, повторюються один раз із новою спробою app-server. Небезпечні
тайм-аути все одно виводять застряглий клієнт app-server з роботи й звільняють смугу
сеансу OpenClaw. Вони також очищають застаріле прив’язування нативного потоку замість
автоматичного повторного відтворення. Тайм-аути спостереження за завершенням показують
специфічний для Codex текст тайм-ауту: replay-safe випадки повідомляють, що відповідь може бути неповною,
а небезпечні випадки кажуть користувачу перевірити поточний стан перед повторною спробою.
Публічна діагностика тайм-аутів містить структурні поля, як-от останній метод
сповіщення app-server, id/type/role сирого елемента відповіді асистента, кількість активних
запитів/елементів і стан увімкненого спостереження. Коли останнє сповіщення є сирим
елементом відповіді асистента, вона також містить обмежений попередній перегляд тексту асистента.
Вона не містить сирий prompt або вміст інструментів.

## Виявлення моделей

Типово Plugin Codex запитує в app-server доступні моделі. Доступністю моделей
керує Codex app-server, тому список може змінюватися, коли OpenClaw
оновлює вбудовану версію `@openai/codex` або коли розгортання вказує
`appServer.command` на інший бінарний файл Codex. Доступність також може бути
обмежена обліковим записом. Використайте `/codex models` на запущеному Gateway, щоб побачити живий каталог
для цього harness і облікового запису.

Якщо виявлення не вдається або перевищує час очікування, OpenClaw використовує вбудований резервний каталог для:

* GPT-5.5
* GPT-5.4 mini

Поточний вбудований harness — `@openai/codex` `0.142.5`. Проба `model/list`
проти цього вбудованого app-server повернула такі публічні рядки вибору:

| Id моделі             | Вхідні модальності | Зусилля reasoning        |
| --------------------- | ------------------ | ------------------------ |
| `gpt-5.5`             | text, image        | low, medium, high, xhigh |
| `gpt-5.4`             | text, image        | low, medium, high, xhigh |
| `gpt-5.4-mini`        | text, image        | low, medium, high, xhigh |
| `gpt-5.3-codex-spark` | text               | low, medium, high, xhigh |

Приховані моделі можуть повертатися каталогом app-server для внутрішніх або
спеціалізованих потоків, але вони не є звичайними варіантами у виборі моделей.

Налаштуйте виявлення в `plugins.entries.codex.config.discovery`:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          discovery: {
            enabled: true,
            timeoutMs: 2500,
          },
        },
      },
    },
  },
}
```

Вимкніть виявлення, коли потрібно, щоб запуск не зондував Codex і використовував лише
резервний каталог:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          discovery: {
            enabled: false,
          },
        },
      },
    },
  },
}
```

## Файли bootstrap робочого простору

Codex сам обробляє `AGENTS.md` через нативне виявлення документації проєкту. OpenClaw
не записує синтетичні файли документації проєкту Codex і не залежить від резервних
імен файлів Codex для persona-файлів, оскільки резервні варіанти Codex застосовуються лише тоді, коли
`AGENTS.md` відсутній.

Для parity робочого простору OpenClaw harness Codex розв’язує інші bootstrap-файли.
`SOUL.md`, `IDENTITY.md`, `TOOLS.md` і `USER.md` передаються як
інструкції розробника OpenClaw Codex, оскільки вони визначають активного агента,
доступні настанови робочого простору й профіль користувача. Компактний список OpenClaw Skills
передається як обмежені ходом інструкції розробника для співпраці.
Вміст `HEARTBEAT.md` не ін’єктується; ходи heartbeat отримують вказівник режиму співпраці
прочитати файл, коли він існує й не є порожнім. Вміст `MEMORY.md`
із налаштованого робочого простору агента не вставляється у вхід нативного ходу Codex,
коли для цього робочого простору доступні інструменти пам’яті; коли він існує, harness
додає невеликий вказівник workspace-memory до обмежених ходом інструкцій розробника
для співпраці, і Codex має використовувати `memory_search` або `memory_get`, коли довготривала
пам’ять є релевантною. Якщо інструменти вимкнені, пошук у пам’яті недоступний або
активний робочий простір відрізняється від робочого простору пам’яті агента, `MEMORY.md` використовує
звичайний обмежений шлях контексту ходу.
`BOOTSTRAP.md`, якщо наявний, передається як довідковий контекст входу ходу OpenClaw.

## Перевизначення середовища

Перевизначення середовища залишаються доступними для локального тестування:

* `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 у тому самому
перевіреному файлі, що й решта налаштування harness Codex.

## Пов’язане

* [Codex harness](/uk/plugins/codex-harness)
* [Середовище виконання Codex harness](/uk/plugins/codex-harness-runtime)
* [Нативні Plugin Codex](/uk/plugins/codex-native-plugins)
* [Codex Computer Use](/uk/plugins/codex-computer-use)
* [Провайдер OpenAI](/uk/providers/openai)
* [Довідник конфігурації](/uk/gateway/configuration-reference)
