chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-22 23:34:50 +00:00
parent 4cdeca9fbe
commit 8177939bfb
3 changed files with 673 additions and 610 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,70 +1,74 @@
---
read_when:
- Ви хочете використовувати комплектний каркас app-server Codex
- Ви хочете використовувати комплектний harness app-server Codex
- Вам потрібні посилання на моделі Codex і приклади конфігурації
- Ви хочете вимкнути резервний перехід на PI для розгортань лише з Codex
summary: Запускайте вбудовані ходи агента OpenClaw через комплектний каркас app-server Codex
title: Каркас Codex
summary: Запускайте вбудовані ходи агента OpenClaw через комплектний harness app-server Codex
title: Harness Codex
x-i18n:
generated_at: "2026-04-22T23:11:34Z"
generated_at: "2026-04-22T23:30:52Z"
model: gpt-5.4
provider: openai
source_hash: 1807184a085f4b54e1b722e02c1f47f059dc393a0ba7ecb0ec5903f74495267f
source_hash: ffd539ad6544284a31bc32f2e506fa46b7ba70d2994ef80eb422ae6cb459d8fa
source_path: plugins/codex-harness.md
workflow: 15
---
# Каркас Codex
# Harness Codex
Комплектний plugin `codex` дає OpenClaw змогу запускати вбудовані ходи агента через
app-server Codex замість вбудованого каркаса PI.
app-server Codex замість вбудованого harness PI.
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням
моделей, нативним відновленням потоку, нативною Compaction і виконанням через app-server.
OpenClaw і далі керує каналами чату, файлами сесій, вибором моделей, інструментами,
погодженнями, доставкою медіа та видимим дзеркалом транскрипту.
Використовуйте це, коли ви хочете, щоб Codex керував низькорівневою сесією агента: виявленням
моделей, нативним відновленням потоку, нативною Compaction і виконанням app-server.
OpenClaw, як і раніше, керує каналами чату, файлами сесій, вибором моделей, інструментами,
погодженнями, доставленням медіа та видимим дзеркалом стенограми.
Нативні ходи Codex також поважають спільні plugin-хуки `before_prompt_build`,
`before_compaction` і `after_compaction`, тож шими prompt і автоматизація з урахуванням
Compaction можуть залишатися узгодженими з каркасом PI.
Нативні ходи Codex також підтримують спільні хоки plugin `before_prompt_build`,
`before_compaction` і `after_compaction`, тож шими підказок і
автоматизація з урахуванням Compaction можуть залишатися узгодженими з harness PI.
Нативні ходи Codex також підтримують спільні хоки plugin `before_prompt_build`,
`before_compaction`, `after_compaction`, `llm_input`, `llm_output` і
`agent_end`, тож шими підказок, автоматизація з урахуванням Compaction і
спостерігачі життєвого циклу можуть залишатися узгодженими з harness PI.
Каркас вимкнений типово. Він вибирається лише тоді, коли plugin `codex` увімкнено і
визначена модель є моделлю `codex/*`, або коли ви явно примусово задаєте
`embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
Якщо ви взагалі не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local
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 | Вам потрібен прямий доступ до OpenAI Platform API за допомогою `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 із доступним комплектним plugin `codex`.
- app-server Codex версії `0.118.0` або новішої.
- Codex app-server `0.118.0` або новіший.
- Автентифікація Codex, доступна процесу app-server.
Plugin блокує старіші або безверсійні рукостискання app-server. Це гарантує, що
OpenClaw працює в межах поверхні протоколу, з якою його було протестовано.
Plugin блокує старіші або неверсіоновані handshake app-server. Це утримує
OpenClaw у межах поверхні протоколу, з якою його було протестовано.
Для live- і Docker-smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також
за потреби з файлів CLI Codex, таких як `~/.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`, увімкніть комплектний plugin і примусово задайте каркас `codex`:
Використайте `codex/gpt-5.4`, увімкніть комплектний plugin і примусово задайте harness `codex`:
```json5
{
@ -87,7 +91,7 @@ app-server Codex.
}
```
Якщо у вашій конфігурації використовується `plugins.allow`, також додайте туди `codex`:
Якщо у вашій конфігурації використовується `plugins.allow`, додайте туди також `codex`:
```json5
{
@ -103,12 +107,12 @@ app-server Codex.
```
Установлення `agents.defaults.model` або моделі агента в `codex/<model>` також
автоматично вмикає комплектний plugin `codex`. Явний запис plugin усе одно
автоматично вмикає комплектний plugin `codex`. Явний запис plugin усе ще
корисний у спільних конфігураціях, бо робить намір розгортання очевидним.
## Додайте Codex без заміни інших моделей
Залиште `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*` і PI для
Залишайте `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI — для
всього іншого:
```json5
@ -141,17 +145,17 @@ app-server Codex.
}
```
З такою структурою:
За такої конфігурації:
- `/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
{
@ -167,7 +171,7 @@ app-server Codex.
}
```
Перевизначення через середовище:
Перевизначення через змінні середовища:
```bash
OPENCLAW_AGENT_RUNTIME=codex \
@ -175,13 +179,13 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
openclaw gateway run
```
За вимкненого fallback OpenClaw завершується з помилкою на ранньому етапі, якщо plugin Codex вимкнено,
потрібна модель не є посиланням `codex/*`, app-server занадто старий або
Коли резервний перехід вимкнено, OpenClaw завершує роботу на ранньому етапі, якщо plugin Codex вимкнено,
потрібна модель не є посиланням `codex/*`, app-server надто старий або
app-server не може запуститися.
## Codex для окремого агента
Ви можете зробити один агент лише-Codex, тоді як типовий агент зберігатиме звичайний
Ви можете зробити одного агента лише з Codex, тоді як агент за замовчуванням зберігатиме звичайний
автовибір:
```json5
@ -213,14 +217,14 @@ app-server не може запуститися.
}
```
Використовуйте звичайні команди сесії, щоб перемикати агентів і моделі. `/new` створює нову
сесію OpenClaw, а каркас Codex за потреби створює або відновлює свій sidecar-потік app-server.
`/reset` очищає прив’язку сесії OpenClaw для цього потоку.
Використовуйте звичайні команди сесії для перемикання агентів і моделей. `/new` створює нову
сесію OpenClaw, а harness Codex створює або відновлює свій sidecar app-server
потік за потреби. `/reset` очищає прив’язку сесії OpenClaw для цього потоку.
## Виявлення моделей
Типово plugin Codex запитує app-server про доступні моделі. Якщо
виявлення не вдається або перевищує час очікування, він використовує комплектний резервний каталог:
За замовчуванням plugin Codex запитує app-server про доступні моделі. Якщо
виявлення завершується помилкою або перевищує час очікування, він використовує комплектний резервний каталог:
- `codex/gpt-5.4`
- `codex/gpt-5.4-mini`
@ -246,8 +250,8 @@ app-server не може запуститися.
}
```
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалося зондування Codex і
використовувався резервний каталог:
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалося опитування Codex і використовувався
лише резервний каталог:
```json5
{
@ -266,20 +270,22 @@ app-server не може запуститися.
}
```
## З’єднання app-server і політика
## Підключення app-server і політика
Типово plugin локально запускає Codex так:
За замовчуванням plugin запускає Codex локально за допомогою:
```bash
codex app-server --listen stdio://
```
Типово OpenClaw запускає локальні сесії каркаса Codex повністю без обмежень:
`approvalPolicy: "never"` і `sandbox: "danger-full-access"`. Це відповідає
позиції довіреного локального оператора, яку використовує CLI Codex, і дозволяє автономним
Heartbeat використовувати мережеві та shell-інструменти без очікування на невидимий нативний
шлях погодження. Ви можете посилити цю політику, наприклад, спрямовуючи перевірки
через guardian:
За замовчуванням OpenClaw запускає локальні сесії harness Codex у режимі YOLO:
`approvalPolicy: "never"`, `approvalsReviewer: "user"` і
`sandbox: "danger-full-access"`. Це позиція довіреного локального оператора, яка використовується
для автономних Heartbeat: Codex може користуватися shell- та network-інструментами без
зупинки на нативних запитах погодження, на які нікому відповідати.
Щоб увімкнути погодження Codex із перевіркою Guardian, задайте `appServer.mode:
"guardian"`:
```json5
{
@ -289,9 +295,7 @@ Heartbeat використовувати мережеві та shell-інстр
enabled: true,
config: {
appServer: {
approvalPolicy: "untrusted",
approvalsReviewer: "guardian_subagent",
sandbox: "workspace-write",
mode: "guardian",
serviceTier: "priority",
},
},
@ -301,7 +305,46 @@ Heartbeat використовувати мережеві та shell-інстр
}
```
Для app-server, який уже працює, використовуйте транспорт WebSocket:
Режим Guardian розгортається до:
```json5
{
plugins: {
entries: {
codex: {
enabled: true,
config: {
appServer: {
mode: "guardian",
approvalPolicy: "on-request",
approvalsReviewer: "guardian_subagent",
sandbox: "workspace-write",
},
},
},
},
},
}
```
Guardian — це нативний рецензент погоджень Codex. Коли Codex просить вийти за межі
sandbox, записати поза межами workspace або додати дозволи, такі як доступ до мережі,
Codex спрямовує цей запит на погодження до підлеглого агента-рецензента, а не до підказки людині.
Рецензент збирає контекст і застосовує рамки оцінки ризиків Codex, а потім
схвалює або відхиляє конкретний запит. Guardian корисний, коли вам потрібно більше
запобіжників, ніж у режимі YOLO, але водночас потрібно, щоб агенти та Heartbeat без нагляду
могли просуватися далі.
Docker live harness містить перевірку Guardian, коли
`OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1`. Він запускає harness Codex у
режимі Guardian, перевіряє, що безпечну shell-команду з підвищеними правами схвалено, і
перевіряє, що вивантаження фальшивого секрету до ненадійного зовнішнього призначення відхилено,
щоб агент повернувся із запитом на явне погодження.
Окремі поля політики все одно мають пріоритет над `mode`, тож розширені розгортання можуть
поєднувати цей preset із явними параметрами.
Для уже запущеного app-server використовуйте транспорт WebSocket:
```json5
{
@ -325,34 +368,39 @@ Heartbeat використовувати мережеві та shell-інстр
Підтримувані поля `appServer`:
| Поле | Типове значення | Значення |
| ------------------- | ----------------------------------------- | ------------------------------------------------------------------------ |
| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. |
| `command` | `"codex"` | Виконуваний файл для транспорту stdio. |
| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. |
| `url` | не задано | URL WebSocket app-server. |
| `authToken` | не задано | Bearer-токен для транспорту WebSocket. |
| `headers` | `{}` | Додаткові заголовки WebSocket. |
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control-plane app-server. |
| `approvalPolicy` | `"never"` | Нативна політика погодження Codex, що надсилається під час start/resume/turn потоку. |
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що надсилається під час start/resume потоку. |
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб guardian Codex перевіряв нативні погодження. |
| `serviceTier` | не задано | Необов’язковий рівень сервісу Codex, наприклад `"priority"`. |
| Поле | За замовчуванням | Значення |
| ------------------- | ---------------------------------------- | --------------------------------------------------------------- |
| `transport` | `"stdio"` | `"stdio"` запускає Codex; `"websocket"` підключається до `url`. |
| `command` | `"codex"` | Виконуваний файл для транспорту stdio. |
| `args` | `["app-server", "--listen", "stdio://"]` | Аргументи для транспорту stdio. |
| `url` | не задано | URL app-server WebSocket. |
| `authToken` | не задано | Bearer-токен для транспорту WebSocket. |
| `headers` | `{}` | Додаткові заголовки WebSocket. |
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control-plane до app-server. |
| `mode` | `"yolo"` | Preset для виконання YOLO або з перевіркою Guardian. |
| `approvalPolicy` | `"never"` | Нативна політика погоджень Codex, що передається під час start/resume/turn потоку. |
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що передається під час start/resume. |
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб дозволити Codex Guardian перевіряти підказки. |
| `serviceTier` | не задано | Необов’язковий рівень сервісу Codex, наприклад `"priority"`. |
Старі змінні середовища все ще працюють як резервні варіанти для локального тестування, коли
Старіші змінні середовища все ще працюють як резервні варіанти для локального тестування, коли
відповідне поле конфігурації не задано:
- `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_GUARDIAN=1`
Для відтворюваних розгортань краще використовувати конфігурацію.
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` видалено. Натомість використовуйте
`plugins.entries.codex.config.appServer.mode: "guardian"` або
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для разового локального тестування. Конфігурація є
бажаною для відтворюваних розгортань, бо зберігає поведінку plugin у тому самому
перевіреному файлі, що й решту налаштувань harness Codex.
## Поширені рецепти
Локальний Codex зі стандартним транспортом stdio:
Локальний Codex із транспортом stdio за замовчуванням:
```json5
{
@ -366,7 +414,7 @@ Heartbeat використовувати мережеві та shell-інстр
}
```
Перевірка каркаса лише-Codex із вимкненим резервним переходом на PI:
Перевірка harness лише з Codex, із вимкненим резервним переходом на PI:
```json5
{
@ -383,7 +431,7 @@ Heartbeat використовувати мережеві та shell-інстр
}
```
Погодження Codex, перевірені guardian:
Погодження Codex із перевіркою Guardian:
```json5
{
@ -393,6 +441,7 @@ Heartbeat використовувати мережеві та shell-інстр
enabled: true,
config: {
appServer: {
mode: "guardian",
approvalPolicy: "on-request",
approvalsReviewer: "guardian_subagent",
sandbox: "workspace-write",
@ -427,87 +476,87 @@ Heartbeat використовувати мережеві та shell-інстр
}
```
Перемикання моделей і далі контролюється OpenClaw. Коли сесію OpenClaw прив’язано
до наявного потоку Codex, наступний хід знову надсилає в app-server поточну вибрану
модель `codex/*`, провайдера, політику погодження, sandbox і рівень сервісу.
Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає прив’язку потоку, але просить Codex
продовжити роботу з новою вибраною моделлю.
Перемикання моделей і далі контролюється OpenClaw. Коли сесію OpenClaw приєднано
до наявного потоку Codex, наступний хід знову надсилає до
app-server поточні вибрані `codex/*` модель, провайдера, політику погоджень, sandbox і
рівень сервісу. Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає
прив’язку до потоку, але просить Codex продовжити з новою вибраною моделлю.
## Команда Codex
Комплектний plugin реєструє `/codex` як авторизовану slash-команду. Вона
є загальною і працює в будь-якому каналі, який підтримує текстові команди OpenClaw.
Комплектний plugin реєструє `/codex` як авторизовану slash-команду. Вона є
узагальненою і працює на будь-якому каналі, що підтримує текстові команди OpenClaw.
Поширені форми:
- `/codex status` показує живе підключення до app-server, моделі, обліковий запис, ліміти швидкості, MCP-сервери та Skills.
- `/codex models` виводить список живих моделей app-server Codex.
- `/codex threads [filter]` виводить список нещодавніх потоків Codex.
- `/codex resume <thread-id>` прив’язує поточну сесію 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 status` показує поточне підключення до app-server, моделі, обліковий запис, ліміти швидкості, сервери MCP і skills.
- `/codex models` показує список поточних моделей app-server Codex.
- `/codex threads [filter]` показує список недавніх потоків Codex.
- `/codex resume <thread-id>` приєднує поточну сесію OpenClaw до наявного потоку Codex.
- `/codex compact` просить app-server Codex виконати Compaction приєднаного потоку.
- `/codex review` запускає нативний review Codex для приєднаного потоку.
- `/codex account` показує стан облікового запису й лімітів швидкості.
- `/codex mcp` показує стан серверів MCP app-server Codex.
- `/codex skills` показує Skills app-server Codex.
`/codex resume` записує той самий sidecar-файл прив’язки, який каркас використовує для
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає
поточну вибрану в OpenClaw модель `codex/*` в app-server і зберігає ввімкненою
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає поточну
вибрану модель OpenClaw `codex/*` до app-server і зберігає увімкнену
розширену історію.
Поверхня команд вимагає app-server Codex версії `0.118.0` або новішої. Окремі
методи керування позначаються як `unsupported by this Codex app-server`, якщо
майбутній або кастомний app-server не надає цей JSON-RPC-метод.
Поверхня команд вимагає Codex app-server `0.118.0` або новішої версії. Про окремі
методи керування повідомляється як `unsupported by this Codex app-server`, якщо
майбутній або кастомний app-server не надає цей метод JSON-RPC.
## Інструменти, медіа та Compaction
Каркас Codex змінює лише низькорівневий виконавець вбудованого агента.
Harness Codex змінює лише низькорівневий виконавець вбудованого агента.
OpenClaw і далі формує список інструментів і отримує динамічні результати інструментів із
каркаса. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів повідомлень
і далі проходять через звичайний шлях доставки OpenClaw.
OpenClaw, як і раніше, формує список інструментів і отримує динамічні результати інструментів від
harness. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів повідомлень
і далі проходять через звичайний шлях доставлення OpenClaw.
Коли вибрана модель використовує каркас Codex, нативна Compaction потоку
делегується app-server Codex. OpenClaw зберігає дзеркало транскрипту для історії каналу,
пошуку, `/new`, `/reset` і майбутнього перемикання моделей або каркасів. Дзеркало
включає prompt користувача, фінальний текст асистента та полегшені записи міркувань
або плану Codex, коли їх видає app-server. Наразі OpenClaw записує лише сигнали
початку та завершення нативної Compaction. Він ще не показує людинозрозумілий
підсумок Compaction або придатний для аудиту список записів, які Codex
залишив після Compaction.
Коли вибрана модель використовує harness Codex, нативна Compaction потоку
делегується app-server Codex. OpenClaw зберігає дзеркало стенограми для історії каналу,
пошуку, `/new`, `/reset` і майбутнього перемикання моделей або harness. Дзеркало
містить підказку користувача, фінальний текст помічника та полегшені записи міркувань або плану Codex,
коли їх надсилає app-server. Наразі OpenClaw записує лише сигнали початку й завершення
нативної Compaction. Він поки що не надає
людинозрозумілого підсумку Compaction або придатного до аудиту списку того, які записи Codex
зберіг після Compaction.
Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і
розуміння медіа й далі використовують відповідні налаштування провайдера/моделі, як-от
Генерація медіа не потребує PI. Зображення, відео, музика, PDF, TTS і розуміння медіа
і далі використовують відповідні налаштування провайдера/моделі, такі як
`agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і
`messages.tts`.
## Усунення неполадок
## Усунення проблем
**Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`,
задайте посилання на модель `codex/*` або перевірте, чи `plugins.allow` не виключає `codex`.
**OpenClaw використовує PI замість Codex:** якщо жоден каркас Codex не обробляє запуск,
OpenClaw може використовувати PI як backend сумісності. Установіть
**OpenClaw використовує PI замість Codex:** якщо жоден harness Codex не обробляє запуск,
OpenClaw може використовувати PI як backend сумісності. Задайте
`embeddedHarness.runtime: "codex"`, щоб примусово вибрати Codex під час тестування, або
`embeddedHarness.fallback: "none"`, щоб завершуватися з помилкою, коли жоден plugin-каркас не підходить. Щойно
вибрано app-server Codex, його помилки передаються безпосередньо без додаткової
конфігурації fallback.
`embeddedHarness.fallback: "none"`, щоб завершуватися з помилкою, коли жоден plugin harness не підходить. Щойно
вибрано app-server Codex, його збої відображаються безпосередньо без додаткової
конфігурації резервного переходу.
**app-server відхиляється:** оновіть Codex, щоб рукостискання app-server
повідомляло версію `0.118.0` або новішу.
**app-server відхиляється:** оновіть Codex, щоб handshake app-server
повідомляв версію `0.118.0` або новішу.
**Виявлення моделей повільне:** зменште `plugins.entries.codex.config.discovery.timeoutMs`
або вимкніть виявлення.
**Транспорт WebSocket одразу завершується з помилкою:** перевірте `appServer.url`, `authToken`
і чи віддалений app-server використовує ту саму версію протоколу app-server Codex.
**Транспорт WebSocket відразу завершується помилкою:** перевірте `appServer.url`, `authToken`
і те, що віддалений app-server використовує ту саму версію протоколу app-server Codex.
**Не-Codex модель використовує PI:** це очікувана поведінка. Каркас Codex обробляє лише
посилання на моделі `codex/*`.
**Не-Codex модель використовує PI:** це очікувано. Harness Codex працює лише з
посиланнями на моделі `codex/*`.
## Пов’язане
- [Plugins каркаса агента](/uk/plugins/sdk-agent-harness)
- [Plugin-и harness агента](/uk/plugins/sdk-agent-harness)
- [Провайдери моделей](/uk/concepts/model-providers)
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
- [Тестування](/uk/help/testing#live-codex-app-server-harness-smoke)

View File

@ -1,51 +1,51 @@
---
read_when:
- Ви змінюєте вбудоване середовище виконання агента або реєстр обв’язки агента
- Ви змінюєте вбудоване середовище виконання агента або реєстр обв’язок агента
- Ви реєструєте обв’язку агента з bundled або trusted plugin
- Вам потрібно зрозуміти, як plugin Codex пов’язаний із постачальниками моделей
sidebarTitle: Agent Harness
summary: Експериментальна поверхня SDK для plugin, які замінюють низькорівневий вбудований виконавець агента
title: Plugin обв’язки агента
summary: Експериментальна поверхня SDK для plugins, які замінюють низькорівневий вбудований виконавець агента
title: Plugins обв’язки агента
x-i18n:
generated_at: "2026-04-22T05:35:02Z"
generated_at: "2026-04-22T23:30:48Z"
model: gpt-5.4
provider: openai
source_hash: 728fef59ae3cce29a3348842820f1f71a2eac98ae6b276179bce6c85d16613df
source_hash: efaecca18210af0e9e641bd888c1edb55e08e96299158ff021d6c2dd0218ec25
source_path: plugins/sdk-agent-harness.md
workflow: 15
---
# Plugin обв’язки агента
# Plugins обв’язки агента
**Обв’язка агента** — це низькорівневий виконавець одного підготовленого ходу агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
Використовуйте цю поверхню лише для bundled або trusted native plugin. Контракт усе ще експериментальний, оскільки типи параметрів навмисно віддзеркалюють поточний вбудований виконавець.
Використовуйте цю поверхню лише для bundled або trusted native plugins. Контракт усе ще експериментальний, тому що типи параметрів навмисно віддзеркалюють поточний вбудований виконавець.
## Коли використовувати обв’язку
Реєструйте обв’язку агента, коли сімейство моделей має власне native середовище виконання сесії і звичайний транспорт постачальника OpenClaw є хибною абстракцією.
Реєструйте обв’язку агента, коли сімейство моделей має власне native session runtime і звичайний транспорт постачальника OpenClaw є хибною абстракцією.
Приклади:
- native сервер coding-agent, який керує потоками та Compaction
- локальний CLI або демон, який має транслювати native події плану/міркувань/інструментів
- native server кодувального агента, який керує потоками та Compaction
- локальний CLI або демон, який має потоково передавати native plan/reasoning/tool events
- середовище виконання моделі, якому потрібен власний resume id на додачу до транскрипту сесії OpenClaw
**Не** реєструйте обв’язку лише для того, щоб додати новий API LLM. Для звичайних HTTP або WebSocket API моделей створіть [plugin постачальника](/uk/plugins/sdk-provider-plugins).
**Не** реєструйте обв’язку лише для додавання нового API LLM. Для звичайних HTTP або WebSocket API моделей створіть [provider plugin](/uk/plugins/sdk-provider-plugins).
## Що все ще належить core
## Чим усе ще керує ядро
Перш ніж буде вибрано обв’язку, OpenClaw уже визначив:
До того, як обв’язка буде вибрана, OpenClaw уже визначив:
- постачальника і модель
- стан auth середовища виконання
- рівень thinking і бюджет контексту
- постачальника й модель
- стан автентифікації середовища виконання
- рівень мислення та бюджет контексту
- файл транскрипту/сесії OpenClaw
- workspace, sandbox і політику інструментів
- callback-функції відповіді каналу та callback-функції трансляції
- політику fallback моделі та живого перемикання моделі
- робочий простір, sandbox і політику інструментів
- зворотні виклики відповіді каналу та потокові зворотні виклики
- політику резервної моделі та live-перемикання моделей
Цей поділ є навмисним. Обв’язка виконує підготовлену спробу; вона не вибирає постачальників, не замінює доставку каналу і не перемикає моделі непомітно.
Такий поділ є навмисним. Обв’язка виконує підготовлену спробу; вона не вибирає постачальників, не замінює доставку через канал і не перемикає моделі непомітно.
## Зареєструвати обв’язку
@ -89,45 +89,50 @@ OpenClaw вибирає обв’язку після визначення пос
1. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстровану обв’язку з цим id.
2. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудовану обв’язку PI.
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані обв’язки, чи підтримують вони визначеного постачальника/модель.
4. Якщо жодна зареєстрована обв’язка не підходить, OpenClaw використовує PI, якщо fallback до PI не вимкнено.
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує в зареєстрованих обв’язок, чи підтримують вони визначеного постачальника/модель.
4. Якщо жодна зареєстрована обв’язка не підходить, OpenClaw використовує PI, якщо резервний перехід на PI не вимкнено.
Збої обв’язок plugin відображаються як збої виконання. У режимі `auto` fallback до PI використовується лише тоді, коли жодна зареєстрована обв’язка plugin не підтримує визначеного постачальника/модель. Щойно обв’язка plugin заявила про виконання, OpenClaw не повторює той самий хід через PI, оскільки це може змінити семантику auth/середовища виконання або продублювати побічні ефекти.
Збої plugin-обв’язки відображаються як збої виконання. У режимі `auto` резервний перехід на PI використовується лише тоді, коли жодна зареєстрована plugin-обв’язка не підтримує визначеного постачальника/модель. Щойно plugin-обв’язка взяла виконання на себе, OpenClaw не повторює той самий хід через PI, тому що це може змінити семантику автентифікації/середовища виконання або продублювати побічні ефекти.
Bundled plugin Codex реєструє `codex` як свій id обв’язки. Core розглядає це як звичайний id обв’язки plugin; специфічні для Codex псевдоніми мають належати plugin або конфігурації оператора, а не спільному селектору середовища виконання.
Bundled plugin Codex реєструє `codex` як id своєї обв’язки. Ядро розглядає це як звичайний id plugin-обв’язки; специфічні для Codex псевдоніми мають належати plugin або конфігурації оператора, а не спільному селектору середовища виконання.
## Поєднання постачальника й обв’язки
Більшість обв’язок також мають реєструвати постачальника. Постачальник робить посилання на моделі, стан auth, метадані моделі й вибір `/model` видимими для решти OpenClaw. Потім обв’язка заявляє про цей постачальник у `supports(...)`.
Більшість обв’язок також мають реєструвати постачальника. Постачальник робить посилання на моделі, стан автентифікації, метадані моделей і вибір `/model` видимими для решти OpenClaw. Потім обв’язка заявляє про підтримку цього постачальника в `supports(...)`.
Bundled plugin Codex дотримується цього шаблону:
- id постачальника: `codex`
- посилання користувацьких моделей: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, яку повертає сервер застосунку Codex
- посилання користувача на моделі: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, повернена Codex app server
- id обв’язки: `codex`
- auth: синтетична доступність постачальника, оскільки обв’язка Codex керує native входом/сесією Codex
- запит до app-server: OpenClaw надсилає Codex базовий id моделі й дозволяє обв’язці спілкуватися з native протоколом app-server
- автентифікація: синтетична доступність постачальника, тому що обв’язка Codex керує native login/session Codex
- запит до app-server: OpenClaw надсилає в Codex bare model id і дозволяє обв’язці працювати з native app-server protocol
Plugin Codex є адитивним. Звичайні посилання `openai/gpt-*` залишаються посиланнями постачальника OpenAI і продовжують використовувати звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні auth під керуванням Codex, виявлення моделей Codex, native потоки та виконання через app-server Codex. `/model` може перемикатися між моделями Codex, які повертає app-server Codex, без потреби в облікових даних постачальника OpenAI.
Plugin Codex є адитивним. Звичайні посилання `openai/gpt-*` лишаються посиланнями постачальника OpenAI й далі використовують звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні керована Codex автентифікація, виявлення моделей Codex, native threads і виконання через Codex app-server. `/model` може перемикатися між моделями Codex, які повертає Codex app server, без потреби в облікових даних постачальника OpenAI.
Щоб дізнатися про налаштування оператора, приклади префіксів моделей і конфігурації лише для Codex, див. [Обв’язка Codex](/uk/plugins/codex-harness).
Щоб дізнатися про налаштування для операторів, приклади префіксів моделей і конфігурації лише для Codex, див. [Codex Harness](/uk/plugins/codex-harness).
OpenClaw вимагає Codex app-server `0.118.0` або новішої версії. Plugin Codex перевіряє initialize handshake app-server і блокує старіші або неверсіоновані сервери, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
OpenClaw вимагає Codex app-server `0.118.0` або новішої версії. Plugin Codex перевіряє initialize handshake app-server і блокує старіші сервери або сервери без версії, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
### Middleware tool-result Codex app-server
Bundled plugins також можуть підключати middleware `tool_result`, специфічний для Codex app-server, через `api.registerCodexAppServerExtensionFactory(...)`, коли їхній manifest оголошує `contracts.embeddedExtensionFactories: ["codex-app-server"]`.
Це seam trusted-plugin для асинхронних перетворень tool-result, які мають виконуватися всередині native обв’язки Codex до того, як вивід інструмента буде спроєктовано назад у транскрипт OpenClaw.
### Режим native обв’язки Codex
Bundled обв’язка `codex` — це native режим Codex для вбудованих ходів агента OpenClaw. Спочатку увімкніть bundled plugin `codex` і додайте `codex` у `plugins.allow`, якщо ваша конфігурація використовує обмежувальний allowlist. Він відрізняється від `openai-codex/*`:
Bundled обв’язка `codex` — це native режим Codex для вбудованих ходів агента OpenClaw. Спочатку ввімкніть bundled plugin `codex` і додайте `codex` до `plugins.allow`, якщо у вашій конфігурації використовується обмежувальний allowlist. Це відрізняється від `openai-codex/*`:
- `openai-codex/*` використовує OAuth ChatGPT/Codex через звичайний шлях постачальника OpenClaw.
- `codex/*` використовує bundled постачальник Codex і маршрутизує хід через app-server Codex.
- `codex/*` використовує bundled постачальника Codex і маршрутизує хід через Codex app-server.
Коли цей режим працює, Codex керує native id потоку, поведінкою resume, Compaction і виконанням app-server. OpenClaw усе ще керує каналом чату, видимим дзеркалом транскрипту, політикою інструментів, схваленнями, доставкою медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли вам потрібно довести, що лише шлях app-server Codex може заявити про виконання. Ця конфігурація є лише захистом вибору: збої app-server Codex і так завершуються помилкою напряму, а не повторною спробою через PI.
Коли цей режим виконується, Codex керує native thread id, поведінкою resume, Compaction і виконанням app-server. OpenClaw усе ще керує каналом чату, видимим дзеркалом транскрипту, політикою інструментів, підтвердженнями, доставкою медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли вам потрібно довести, що лише шлях Codex app-server може взяти виконання на себе. Ця конфігурація є лише захистом вибору: збої Codex app-server уже напряму завершуються помилкою замість повторної спроби через PI.
## Вимкнути fallback до PI
## Вимкнути резервний перехід на PI
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані обв’язки plugin можуть заявляти про пару постачальник/модель. Якщо жодна не підходить, OpenClaw повертається до PI.
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані plugin-обв’язки можуть взяти на себе пару постачальник/модель. Якщо жодна не підходить, OpenClaw переходить на PI.
Установіть `fallback: "none"`, коли вам потрібно, щоб відсутність вибору обв’язки plugin завершувалася помилкою замість використання PI. Збої вже вибраних обв’язок plugin і так призводять до жорсткої помилки. Це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
Установіть `fallback: "none"`, коли вам потрібно, щоб відсутність вибору plugin-обв’язки завершувалася помилкою замість використання PI. Збої вже вибраних plugin-обв’язок і так завершуються жорсткою помилкою. Це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
Для вбудованих запусків лише з Codex:
@ -145,7 +150,7 @@ Bundled обв’язка `codex` — це native режим Codex для вбу
}
```
Якщо ви хочете, щоб будь-яка зареєстрована обв’язка plugin могла заявляти про відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно повертався до PI, залиште `runtime: "auto"` і вимкніть fallback:
Якщо ви хочете, щоб будь-яка зареєстрована plugin-обв’язка брала на себе відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно переходив на PI, залиште `runtime: "auto"` і вимкніть резервний перехід:
```json
{
@ -185,7 +190,7 @@ Bundled обв’язка `codex` — це native режим Codex для вбу
}
```
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване середовище виконання. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути fallback до PI з оточення.
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване середовище виконання. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути резервний перехід на PI через середовище.
```bash
OPENCLAW_AGENT_RUNTIME=codex \
@ -193,39 +198,41 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
openclaw gateway run
```
Якщо fallback вимкнено, сесія завершується помилкою рано, коли запитана обв’язка не зареєстрована, не підтримує визначеного постачальника/модель або завершується помилкою до створення побічних ефектів ходу. Це зроблено навмисно для розгортань лише з Codex і для live-тестів, які мають довести, що шлях app-server Codex справді використовується.
Якщо резервний перехід вимкнено, сесія завершується помилкою рано, коли запитана обв’язка не зареєстрована, не підтримує визначеного постачальника/модель або завершується помилкою до створення побічних ефектів ходу. Це навмисно для розгортань лише з Codex і для live-тестів, які мають довести, що шлях Codex app-server справді використовується.
Це налаштування керує лише вбудованою обв’язкою агента. Воно не вимикає маршрутизацію моделей постачальників для image, video, music, TTS, PDF або інших специфічних для постачальника типів.
Цей параметр керує лише вбудованою обв’язкою агента. Він не вимикає маршрутизацію image, video, music, TTS, PDF або іншої модельної маршрутизації, специфічної для постачальника.
## Native сесії та дзеркало транскрипту
## Native sessions і дзеркало транскрипту
Обв’язка може зберігати native id сесії, id потоку або токен resume на боці демона. Явно пов’язуйте цю прив’язку із сесією OpenClaw і продовжуйте віддзеркалювати видимий для користувача вивід assistant/tool у транскрипт OpenClaw.
Обв’язка може зберігати native session id, thread id або daemon-side resume token.
Явно зберігайте цю прив’язку пов’язаною із сесією OpenClaw і продовжуйте дзеркалити видимий користувачеві вивід assistant/tool у транскрипт OpenClaw.
Транскрипт OpenClaw залишається шаром сумісності для:
- видимої в каналі історії сесії
- пошуку та індексації транскрипту
- повернення до вбудованої обв’язки PI на пізнішому ході
- узагальненої поведінки `/new`, `/reset` і видалення сесії
- пошуку та індексації транскриптів
- перемикання назад на вбудовану обв’язку PI на наступному ході
- загальної поведінки `/new`, `/reset` і видалення сесії
Якщо ваша обв’язка зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її, коли пов’язану сесію OpenClaw скинуто.
Якщо ваша обв’язка зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її, коли пов’язану сесію OpenClaw буде скинуто.
## Результати інструментів і медіа
Core формує список інструментів OpenClaw і передає його в підготовлену спробу. Коли обв’язка виконує динамічний виклик інструмента, повертайте результат інструмента назад через форму результату обв’язки замість того, щоб самостійно надсилати медіа в канал.
Ядро створює список інструментів OpenClaw і передає його в підготовлену спробу.
Коли обв’язка виконує dynamic tool call, поверніть результат інструмента назад через форму результату обв’язки замість самостійного надсилання канального медіа.
Це зберігає text, image, video, music, TTS, approval і виводи інструментів обміну повідомленнями на тому самому шляху доставки, що й для запусків на базі PI.
Це зберігає text, image, video, music, TTS, approval і виводи messaging-tool на тому самому шляху доставки, що й у запусків на базі PI.
## Поточні обмеження
- Публічний шлях імпорту є узагальненим, але деякі псевдоніми типів спроб/результатів усе ще містять назви `Pi` заради сумісності.
- Встановлення сторонніх обв’язок є експериментальним. Надавайте перевагу plugin постачальників, доки вам не знадобиться native середовище виконання сесії.
- Перемикання обв’язок між ходами підтримується. Не перемикайте обв’язки посеред ходу після того, як уже почалися native інструменти, схвалення, текст assistant або надсилання повідомлень.
- Публічний шлях імпорту є загальним, але деякі псевдоніми типів attempt/result усе ще містять назви `Pi` для сумісності.
- Встановлення сторонніх обв’язок є експериментальним. Віддавайте перевагу provider plugins, доки вам не знадобиться native session runtime.
- Перемикання обв’язок між ходами підтримується. Не перемикайте обв’язки посеред ходу після того, як уже почалися native tools, approvals, текст assistant або надсилання повідомлень.
## Пов’язане
- [Огляд SDK](/uk/plugins/sdk-overview)
- [Runtime Helpers](/uk/plugins/sdk-runtime)
- [Plugin постачальника](/uk/plugins/sdk-provider-plugins)
- [Обв’язка Codex](/uk/plugins/codex-harness)
- [Допоміжні засоби середовища виконання](/uk/plugins/sdk-runtime)
- [Provider Plugins](/uk/plugins/sdk-provider-plugins)
- [Codex Harness](/uk/plugins/codex-harness)
- [Постачальники моделей](/uk/concepts/model-providers)