diff --git a/docs/uk/plugins/codex-harness.md b/docs/uk/plugins/codex-harness.md index 1c435c986..61f727360 100644 --- a/docs/uk/plugins/codex-harness.md +++ b/docs/uk/plugins/codex-harness.md @@ -1,66 +1,66 @@ --- read_when: - - Ви хочете використовувати вбудований каркас app-server Codex - - Вам потрібні посилання на моделі Codex і приклади конфігурації - - Ви хочете вимкнути резервний перехід на Pi для розгортань лише з Codex -summary: Запускайте вбудовані ходи агента OpenClaw через вбудований каркас app-server Codex -title: Каркас Codex + - Ви хочете використовувати комплектний app-server harness Codex + - Вам потрібні посилання на модель Codex і приклади конфігурації + - Ви хочете вимкнути резервний перехід до PI для розгортань лише з Codex +summary: Запускайте вбудовані ходи агента OpenClaw через комплектний app-server harness Codex +title: Harness Codex x-i18n: - generated_at: "2026-04-10T23:15:03Z" + generated_at: "2026-04-21T00:08:16Z" model: gpt-5.4 provider: openai - source_hash: 60e1dcf4f1a00c63c3ef31d72feac44bce255421c032c58fa4fd67295b3daf23 + source_hash: 3f0cdaf68be3b2257de1046103ff04f53f9d3a65ffc15ab7af5ab1f425643d6c source_path: plugins/codex-harness.md workflow: 15 --- -# Каркас Codex +# Harness Codex -Вбудований плагін `codex` дає OpenClaw змогу запускати вбудовані ходи агента через -app-server Codex замість вбудованого каркаса PI. +Комплектний plugin `codex` дає OpenClaw змогу запускати вбудовані ходи агента через +app-server Codex замість вбудованого harness PI. Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням -моделей, нативним відновленням потоку, нативною компакцією та виконанням через app-server. -OpenClaw і надалі керує каналами чату, файлами сесій, вибором моделі, інструментами, -погодженнями, доставкою медіа та видимим дзеркалом стенограми. +моделей, нативним відновленням потоку, нативною Compaction і виконанням app-server. +OpenClaw і далі керує каналами чату, файлами сесії, вибором моделі, інструментами, +схваленнями, доставкою медіа та видимим дзеркалом транскрипту. -Цей каркас вимкнений за замовчуванням. Його буде вибрано лише тоді, коли плагін `codex` -увімкнений і розв’язана модель є моделлю `codex/*`, або коли ви явно примусово задаєте -`embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`. +За замовчуванням harness вимкнений. Він вибирається лише тоді, коли plugin `codex` +увімкнений і розв’язана модель є моделлю `codex/*`, або коли ви явно +примусово задаєте `embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`. Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local і custom-provider зберігають свою поточну поведінку. ## Виберіть правильний префікс моделі -OpenClaw має окремі маршрути для доступу у стилі OpenAI і Codex: +OpenClaw має окремі маршрути для доступу у формі OpenAI та Codex: -| Посилання на модель | Шлях середовища виконання | Використовуйте, коли | -| ------------------- | ------------------------------------------- | --------------------------------------------------------------------------- | -| `openai/gpt-5.4` | Провайдер OpenAI через конвеєр OpenClaw/PI | Вам потрібен прямий доступ до API OpenAI Platform з `OPENAI_API_KEY`. | -| `openai-codex/gpt-5.4` | Провайдер OpenAI Codex OAuth через PI | Вам потрібен ChatGPT/Codex OAuth без каркаса app-server Codex. | -| `codex/gpt-5.4` | Вбудований провайдер Codex плюс каркас Codex | Вам потрібне нативне виконання через app-server Codex для вбудованого ходу агента. | +| Посилання на модель | Шлях runtime | Використовуйте, коли | +| --------------------- | ------------------------------------------- | ------------------------------------------------------------------------ | +| `openai/gpt-5.4` | Провайдер OpenAI через конвеєр OpenClaw/PI | Вам потрібен прямий доступ до OpenAI Platform API з `OPENAI_API_KEY`. | +| `openai-codex/gpt-5.4` | Провайдер OpenAI Codex OAuth через PI | Вам потрібен ChatGPT/Codex OAuth без harness app-server Codex. | +| `codex/gpt-5.4` | Комплектний провайдер Codex плюс harness Codex | Вам потрібне нативне виконання app-server Codex для вбудованого ходу агента. | -Каркас Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`, +Harness Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`, `openai-codex/*`, Anthropic, Gemini, xAI, local і custom provider зберігають свої звичайні шляхи. ## Вимоги -- OpenClaw із доступним вбудованим плагіном `codex`. -- app-server Codex версії `0.118.0` або новішої. +- OpenClaw із доступним комплектним plugin `codex`. +- app-server Codex `0.118.0` або новіший. - Доступна автентифікація Codex для процесу app-server. -Плагін блокує старіші або неверсіоновані узгодження app-server. Це утримує -OpenClaw на поверхні протоколу, з якою його було протестовано. +Plugin блокує старіші або безверсійні handshake app-server. Це утримує +OpenClaw на поверхні протоколу, з якою його тестували. -Для живих і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також -з необов’язкових файлів Codex CLI, таких як `~/.codex/auth.json` і -`~/.codex/config.toml`. Використовуйте ті самі автентифікаційні матеріали, які використовує -ваш локальний app-server Codex. +Для live і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також +необов’язкових файлів Codex CLI, таких як `~/.codex/auth.json` і +`~/.codex/config.toml`. Використовуйте ті самі дані автентифікації, що й ваш локальний +app-server Codex. ## Мінімальна конфігурація -Використовуйте `codex/gpt-5.4`, увімкніть вбудований плагін і примусово задайте каркас `codex`: +Використовуйте `codex/gpt-5.4`, увімкніть комплектний plugin і примусово задайте harness `codex`: ```json5 { @@ -83,7 +83,7 @@ OpenClaw на поверхні протоколу, з якою його було } ``` -Якщо ваша конфігурація використовує `plugins.allow`, додайте туди також `codex`: +Якщо у вашій конфігурації використовується `plugins.allow`, додайте туди також `codex`: ```json5 { @@ -99,12 +99,12 @@ OpenClaw на поверхні протоколу, з якою його було ``` Установлення `agents.defaults.model` або моделі агента в `codex/` також -автоматично вмикає вбудований плагін `codex`. Явний запис плагіна все одно -корисний у спільних конфігураціях, оскільки робить намір розгортання очевидним. +автоматично вмикає комплектний plugin `codex`. Явний запис plugin усе ще +корисний у спільних конфігураціях, бо робить намір розгортання очевидним. ## Додайте Codex без заміни інших моделей -Залиште `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI для +Залишайте `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI — для всього іншого: ```json5 @@ -137,17 +137,17 @@ OpenClaw на поверхні протоколу, з якою його було } ``` -Із такою структурою: +З такою структурою: -- `/model codex` або `/model codex/gpt-5.4` використовує каркас app-server Codex. +- `/model codex` або `/model codex/gpt-5.4` використовує harness app-server Codex. - `/model gpt` або `/model openai/gpt-5.4` використовує шлях провайдера OpenAI. - `/model opus` використовує шлях провайдера Anthropic. -- Якщо вибрано не-Codex модель, PI залишається каркасом сумісності. +- Якщо вибрано модель не Codex, PI залишається harness сумісності. ## Розгортання лише з Codex -Вимкніть резервний перехід на PI, якщо вам потрібно підтвердити, що кожен вбудований хід агента використовує -каркас Codex: +Вимкніть резервний перехід до PI, якщо вам потрібно довести, що кожен вбудований хід агента використовує +harness Codex: ```json5 { @@ -171,13 +171,13 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \ openclaw gateway run ``` -Якщо резервний перехід вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо плагін Codex вимкнено, +Коли резервний перехід вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо plugin Codex вимкнений, потрібна модель не є посиланням `codex/*`, app-server надто старий або app-server не може запуститися. ## Codex для окремого агента -Ви можете зробити одного агента лише для Codex, тоді як агент за замовчуванням зберігатиме звичайний +Ви можете зробити одного агента лише Codex, а для агента за замовчуванням залишити звичайний автовибір: ```json5 @@ -209,14 +209,14 @@ app-server не може запуститися. } ``` -Використовуйте звичайні команди сесії, щоб перемикати агентів і моделі. `/new` створює нову -сесію OpenClaw, а каркас Codex за потреби створює або відновлює свій побічний потік app-server. -`/reset` очищає прив’язку сесії OpenClaw для цього потоку. +Використовуйте звичайні команди сесії для перемикання агентів і моделей. `/new` створює нову +сесію OpenClaw, а harness Codex за потреби створює або відновлює свій sidecar app-server +потік. `/reset` очищає прив’язку сесії OpenClaw для цього потоку. ## Виявлення моделей -За замовчуванням плагін Codex запитує app-server про доступні моделі. Якщо -виявлення завершується помилкою або перевищує час очікування, використовується вбудований резервний каталог: +За замовчуванням plugin Codex запитує app-server про доступні моделі. Якщо +виявлення завершується помилкою або спливає час очікування, він використовує комплектний резервний каталог: - `codex/gpt-5.4` - `codex/gpt-5.4-mini` @@ -264,13 +264,15 @@ app-server не може запуститися. ## Підключення до app-server і політика -За замовчуванням плагін локально запускає Codex так: +За замовчуванням plugin локально запускає Codex командою: ```bash codex app-server --listen stdio:// ``` -Ви можете залишити це значення за замовчуванням і налаштувати лише нативну політику Codex: +За замовчуванням OpenClaw просить Codex запитувати нативні схвалення. Ви можете додатково +налаштувати цю політику, наприклад посилити її та направляти перевірки через +guardian: ```json5 { @@ -280,7 +282,8 @@ codex app-server --listen stdio:// enabled: true, config: { appServer: { - approvalPolicy: "on-request", + approvalPolicy: "untrusted", + approvalsReviewer: "guardian_subagent", sandbox: "workspace-write", serviceTier: "priority", }, @@ -315,21 +318,21 @@ codex app-server --listen stdio:// Підтримувані поля `appServer`: -| Поле | За замовчуванням | Значення | -| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------- | -| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. | -| `command` | `"codex"` | Виконуваний файл для транспорту stdio. | -| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. | -| `url` | unset | URL WebSocket app-server. | -| `authToken` | unset | Bearer-токен для транспорту WebSocket. | -| `headers` | `{}` | Додаткові заголовки WebSocket. | -| `requestTimeoutMs` | `60000` | Час очікування для викликів площини керування app-server. | -| `approvalPolicy` | `"never"` | Нативна політика погодження Codex, що надсилається до start/resume/turn потоку. | -| `sandbox` | `"workspace-write"` | Нативний режим sandbox Codex, що надсилається до start/resume потоку. | -| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб нативні погодження переглядав guardian Codex. | -| `serviceTier` | unset | Необов’язковий рівень сервісу Codex, наприклад `"priority"`. | +| Поле | За замовчуванням | Значення | +| ------------------- | ------------------------------------------ | ------------------------------------------------------------------------ | +| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. | +| `command` | `"codex"` | Виконуваний файл для транспорту stdio. | +| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. | +| `url` | не задано | URL app-server WebSocket. | +| `authToken` | не задано | Bearer token для транспорту WebSocket. | +| `headers` | `{}` | Додаткові заголовки WebSocket. | +| `requestTimeoutMs` | `60000` | Час очікування для викликів control-plane app-server. | +| `approvalPolicy` | `"on-request"` | Нативна політика схвалення Codex, що надсилається до запуску/відновлення/ходу потоку. | +| `sandbox` | `"workspace-write"` | Нативний режим sandbox Codex, що надсилається до запуску/відновлення потоку. | +| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб guardian Codex перевіряв нативні схвалення. | +| `serviceTier` | не задано | Необов’язковий рівень сервісу Codex, наприклад `"priority"`. | -Старі змінні середовища все ще працюють як резервні значення для локального тестування, коли +Старіші змінні середовища все ще працюють як резервні варіанти для локального тестування, коли відповідне поле конфігурації не задане: - `OPENCLAW_CODEX_APP_SERVER_BIN` @@ -338,11 +341,11 @@ codex app-server --listen stdio:// - `OPENCLAW_CODEX_APP_SERVER_SANDBOX` - `OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` -Для відтворюваних розгортань перевага надається конфігурації. +Для відтворюваних розгортань рекомендовано використовувати конфігурацію. ## Поширені рецепти -Локальний Codex із типовим транспортом stdio: +Локальний Codex зі стандартним транспортом stdio: ```json5 { @@ -356,7 +359,7 @@ codex app-server --listen stdio:// } ``` -Перевірка каркаса лише Codex, із вимкненим резервним переходом на PI: +Перевірка harness лише Codex із вимкненим резервним переходом до PI: ```json5 { @@ -373,7 +376,7 @@ codex app-server --listen stdio:// } ``` -Погодження Codex із переглядом guardian: +Схвалення Codex із перевіркою guardian: ```json5 { @@ -417,66 +420,67 @@ codex app-server --listen stdio:// } ``` -Перемикання моделей і далі контролює OpenClaw. Коли сесію OpenClaw прив’язано +Перемикання моделей залишається під контролем OpenClaw. Коли сесію OpenClaw приєднано до наявного потоку Codex, наступний хід знову надсилає до -app-server поточні вибрані `codex/*` модель, провайдера, політику погодження, sandbox і service tier. -Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає прив’язку -до потоку, але просить Codex продовжити з нововибраною моделлю. +app-server поточні вибрані `codex/*` модель, провайдера, політику схвалення, sandbox і рівень сервісу. +Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає прив’язку до потоку, але просить Codex +продовжити роботу з новою вибраною моделлю. ## Команда Codex -Вбудований плагін реєструє `/codex` як авторизовану slash-команду. Вона є -загальною і працює в будь-якому каналі, який підтримує текстові команди OpenClaw. +Комплектний plugin реєструє `/codex` як авторизовану slash-команду. Вона +є загальною і працює на будь-якому каналі, що підтримує текстові команди OpenClaw. Поширені форми: -- `/codex status` показує живе підключення до app-server, моделі, обліковий запис, ліміти швидкості, сервери MCP і Skills. -- `/codex models` перелічує живі моделі app-server Codex. +- `/codex status` показує підключення до app-server у реальному часі, моделі, обліковий запис, ліміти швидкості, сервери MCP і skills. +- `/codex models` перелічує моделі app-server Codex у реальному часі. - `/codex threads [filter]` перелічує нещодавні потоки Codex. -- `/codex resume ` прив’язує поточну сесію OpenClaw до наявного потоку Codex. -- `/codex compact` просить app-server Codex виконати компакцію прив’язаного потоку. -- `/codex review` запускає нативну перевірку Codex для прив’язаного потоку. +- `/codex resume ` приєднує поточну сесію OpenClaw до наявного потоку Codex. +- `/codex compact` просить app-server Codex виконати Compaction для приєднаного потоку. +- `/codex review` запускає нативну перевірку Codex для приєднаного потоку. - `/codex account` показує стан облікового запису та лімітів швидкості. - `/codex mcp` перелічує стан серверів MCP app-server Codex. -- `/codex skills` перелічує Skills app-server Codex. +- `/codex skills` перелічує skills app-server Codex. -`/codex resume` записує той самий файл побічної прив’язки, який каркас використовує для -звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає поточну -вибрану в OpenClaw модель `codex/*` до app-server і зберігає ввімкнену -розширену історію. +`/codex resume` записує той самий файл sidecar binding, який harness використовує для +звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає +поточну вибрану в OpenClaw модель `codex/*` до app-server і залишає розширену +історію увімкненою. -Поверхня команд вимагає app-server Codex версії `0.118.0` або новішої. Для окремих -методів керування буде показано `unsupported by this Codex app-server`, якщо -майбутній або кастомний app-server не надає цей метод JSON-RPC. +Поверхня команд потребує app-server Codex `0.118.0` або новішого. Окремі +методи керування позначаються як `unsupported by this Codex app-server`, якщо +майбутній або custom app-server не надає цей метод JSON-RPC. -## Інструменти, медіа та компакція +## Інструменти, медіа та Compaction -Каркас Codex змінює лише низькорівневий виконавець вбудованого агента. +Harness Codex змінює лише низькорівневий виконавець вбудованого агента. -OpenClaw, як і раніше, формує список інструментів і отримує динамічні результати інструментів від -каркаса. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів обміну повідомленнями +OpenClaw і далі будує список інструментів і отримує динамічні результати інструментів від +harness. Текст, зображення, відео, музика, TTS, схвалення та вивід інструментів обміну повідомленнями і далі проходять через звичайний шлях доставки OpenClaw. -Коли вибрана модель використовує каркас Codex, нативна компакція потоку делегується app-server Codex. -OpenClaw зберігає дзеркало стенограми для історії каналу, пошуку, `/new`, `/reset` і майбутнього -перемикання моделі або каркаса. Дзеркало включає запит користувача, фінальний текст помічника та -полегшені записи міркувань або плану Codex, коли app-server їх надсилає. +Коли вибрана модель використовує harness Codex, нативна Compaction потоку +делегується app-server Codex. OpenClaw зберігає дзеркало транскрипту для історії каналу, +пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness. Дзеркало +включає запит користувача, фінальний текст асистента та полегшені записи міркувань або плану Codex, +коли їх видає app-server. Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і -аналіз медіа й надалі використовують відповідні налаштування провайдера/моделі, такі як +розуміння медіа й далі використовують відповідні налаштування провайдера/моделі, такі як `agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і `messages.tts`. ## Усунення несправностей **Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`, -задайте посилання на модель `codex/*` або перевірте, чи не виключає `plugins.allow` `codex`. +задайте посилання на модель `codex/*` або перевірте, чи `plugins.allow` не виключає `codex`. -**OpenClaw переходить на PI:** установіть `embeddedHarness.fallback: "none"` або +**OpenClaw переходить до PI:** задайте `embeddedHarness.fallback: "none"` або `OPENCLAW_AGENT_HARNESS_FALLBACK=none` під час тестування. -**app-server відхиляється:** оновіть Codex, щоб узгодження app-server -повідомляло версію `0.118.0` або новішу. +**app-server відхиляється:** оновіть Codex, щоб handshake app-server +повідомляв версію `0.118.0` або новішу. **Виявлення моделей повільне:** зменште `plugins.entries.codex.config.discovery.timeoutMs` або вимкніть виявлення. @@ -484,12 +488,12 @@ OpenClaw зберігає дзеркало стенограми для істо **Транспорт WebSocket одразу завершується з помилкою:** перевірте `appServer.url`, `authToken` і що віддалений app-server використовує ту саму версію протоколу app-server Codex. -**Не-Codex модель використовує PI:** це очікувана поведінка. Каркас Codex обробляє лише +**Модель не Codex використовує PI:** це очікувана поведінка. Harness Codex обробляє лише посилання на моделі `codex/*`. ## Пов’язане -- [Плагіни каркаса агента](/uk/plugins/sdk-agent-harness) +- [Plugins harness агента](/uk/plugins/sdk-agent-harness) - [Провайдери моделей](/uk/concepts/model-providers) - [Довідник із конфігурації](/uk/gateway/configuration-reference) - [Тестування](/uk/help/testing#live-codex-app-server-harness-smoke)