chore(i18n): refresh uk translations
This commit is contained in:
parent
63632de758
commit
edb70acf47
File diff suppressed because it is too large
Load Diff
@ -1,59 +1,66 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете використовувати вбудований app-server harness Codex
|
||||
- Ви хочете використовувати вбудований каркас app-server Codex
|
||||
- Вам потрібні посилання на моделі Codex і приклади конфігурації
|
||||
- Ви хочете вимкнути резервний перехід на PI для розгортань лише з Codex
|
||||
summary: Запустіть ходи вбудованого агента OpenClaw через вбудований app-server harness Codex
|
||||
title: Codex Harness
|
||||
- Ви хочете вимкнути резервний перехід на Pi для розгортань лише з Codex
|
||||
summary: Запускайте вбудовані ходи агента OpenClaw через вбудований каркас app-server Codex
|
||||
title: Каркас Codex
|
||||
x-i18n:
|
||||
generated_at: "2026-04-10T22:09:02Z"
|
||||
generated_at: "2026-04-10T23:15:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 71f4f8e67cfc8f573ad8f082dd4fc36ce6524f7bf235e2757117d4653cbb3d71
|
||||
source_hash: 60e1dcf4f1a00c63c3ef31d72feac44bce255421c032c58fa4fd67295b3daf23
|
||||
source_path: plugins/codex-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Codex Harness
|
||||
# Каркас Codex
|
||||
|
||||
Вбудований плагін `codex` дає OpenClaw змогу запускати ходи вбудованого агента через Codex app-server замість вбудованого harness PI.
|
||||
Вбудований плагін `codex` дає OpenClaw змогу запускати вбудовані ходи агента через
|
||||
app-server Codex замість вбудованого каркаса PI.
|
||||
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням моделей, нативним відновленням thread, нативною компакцією та виконанням app-server.
|
||||
OpenClaw, як і раніше, керує каналами чату, файлами сесій, вибором моделей, інструментами, погодженнями, доставкою медіа та видимим дзеркалом транскрипту.
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням
|
||||
моделей, нативним відновленням потоку, нативною компакцією та виконанням через app-server.
|
||||
OpenClaw і надалі керує каналами чату, файлами сесій, вибором моделі, інструментами,
|
||||
погодженнями, доставкою медіа та видимим дзеркалом стенограми.
|
||||
|
||||
Harness вимкнений за замовчуванням. Він вибирається лише тоді, коли плагін `codex` увімкнено і визначена модель є моделлю `codex/*`, або коли ви явно примусово задаєте `embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local і custom-provider зберігають свою поточну поведінку.
|
||||
Цей каркас вимкнений за замовчуванням. Його буде вибрано лише тоді, коли плагін `codex`
|
||||
увімкнений і розв’язана модель є моделлю `codex/*`, або коли ви явно примусово задаєте
|
||||
`embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local
|
||||
і custom-provider зберігають свою поточну поведінку.
|
||||
|
||||
## Виберіть правильний префікс моделі
|
||||
|
||||
OpenClaw має окремі маршрути для доступу у форматі OpenAI та Codex:
|
||||
OpenClaw має окремі маршрути для доступу у стилі OpenAI і Codex:
|
||||
|
||||
| Model ref | Шлях 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 без Codex app-server harness. |
|
||||
| `codex/gpt-5.4` | Вбудований провайдер Codex плюс Codex harness | Ви хочете нативне виконання Codex app-server для ходу вбудованого агента. |
|
||||
| Посилання на модель | Шлях середовища виконання | Використовуйте, коли |
|
||||
| ------------------- | ------------------------------------------- | --------------------------------------------------------------------------- |
|
||||
| `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 для вбудованого ходу агента. |
|
||||
|
||||
Codex harness обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`,
|
||||
Каркас Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`,
|
||||
`openai-codex/*`, Anthropic, Gemini, xAI, local і custom provider зберігають
|
||||
свої звичайні шляхи.
|
||||
|
||||
## Вимоги
|
||||
|
||||
- OpenClaw із доступним вбудованим плагіном `codex`.
|
||||
- Codex app-server `0.118.0` або новіший.
|
||||
- Автентифікація Codex, доступна для процесу app-server.
|
||||
- app-server Codex версії `0.118.0` або новішої.
|
||||
- Доступна автентифікація Codex для процесу app-server.
|
||||
|
||||
Плагін блокує старіші або неверсійовані handshakes app-server. Це гарантує, що
|
||||
OpenClaw працює з поверхнею протоколу, з якою його тестували.
|
||||
Плагін блокує старіші або неверсіоновані узгодження app-server. Це утримує
|
||||
OpenClaw на поверхні протоколу, з якою його було протестовано.
|
||||
|
||||
Для live- і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також
|
||||
необов’язкових файлів Codex CLI, таких як `~/.codex/auth.json` і
|
||||
`~/.codex/config.toml`. Використовуйте ті самі автентифікаційні матеріали, що й ваш локальний Codex app-server.
|
||||
Для живих і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також
|
||||
з необов’язкових файлів Codex CLI, таких як `~/.codex/auth.json` і
|
||||
`~/.codex/config.toml`. Використовуйте ті самі автентифікаційні матеріали, які використовує
|
||||
ваш локальний app-server Codex.
|
||||
|
||||
## Мінімальна конфігурація
|
||||
|
||||
Використовуйте `codex/gpt-5.4`, увімкніть вбудований плагін і примусово задайте harness `codex`:
|
||||
Використовуйте `codex/gpt-5.4`, увімкніть вбудований плагін і примусово задайте каркас `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -76,7 +83,7 @@ OpenClaw працює з поверхнею протоколу, з якою йо
|
||||
}
|
||||
```
|
||||
|
||||
Якщо у вашій конфігурації використовується `plugins.allow`, додайте туди також `codex`:
|
||||
Якщо ваша конфігурація використовує `plugins.allow`, додайте туди також `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -91,13 +98,13 @@ OpenClaw працює з поверхнею протоколу, з якою йо
|
||||
}
|
||||
```
|
||||
|
||||
Встановлення `agents.defaults.model` або моделі агента в `codex/<model>` також
|
||||
Установлення `agents.defaults.model` або моделі агента в `codex/<model>` також
|
||||
автоматично вмикає вбудований плагін `codex`. Явний запис плагіна все одно
|
||||
корисний у спільних конфігураціях, оскільки робить намір розгортання очевидним.
|
||||
|
||||
## Додати Codex без заміни інших моделей
|
||||
## Додайте Codex без заміни інших моделей
|
||||
|
||||
Залишайте `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI — для
|
||||
Залиште `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI для
|
||||
всього іншого:
|
||||
|
||||
```json5
|
||||
@ -130,17 +137,17 @@ OpenClaw працює з поверхнею протоколу, з якою йо
|
||||
}
|
||||
```
|
||||
|
||||
За такої конфігурації:
|
||||
Із такою структурою:
|
||||
|
||||
- `/model codex` або `/model codex/gpt-5.4` використовує Codex app-server harness.
|
||||
- `/model codex` або `/model codex/gpt-5.4` використовує каркас app-server Codex.
|
||||
- `/model gpt` або `/model openai/gpt-5.4` використовує шлях провайдера OpenAI.
|
||||
- `/model opus` використовує шлях провайдера Anthropic.
|
||||
- Якщо вибрано не-Codex модель, PI залишається harness сумісності.
|
||||
- Якщо вибрано не-Codex модель, PI залишається каркасом сумісності.
|
||||
|
||||
## Розгортання лише з Codex
|
||||
|
||||
Вимкніть резервний перехід на PI, якщо вам потрібно підтвердити, що кожен хід вбудованого агента використовує
|
||||
Codex harness:
|
||||
Вимкніть резервний перехід на PI, якщо вам потрібно підтвердити, що кожен вбудований хід агента використовує
|
||||
каркас Codex:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -166,11 +173,11 @@ openclaw gateway run
|
||||
|
||||
Якщо резервний перехід вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо плагін Codex вимкнено,
|
||||
потрібна модель не є посиланням `codex/*`, app-server надто старий або
|
||||
app-server не вдається запустити.
|
||||
app-server не може запуститися.
|
||||
|
||||
## Codex для окремого агента
|
||||
|
||||
Ви можете зробити одного агента Codex-only, а для агента за замовчуванням залишити звичайний
|
||||
Ви можете зробити одного агента лише для Codex, тоді як агент за замовчуванням зберігатиме звичайний
|
||||
автовибір:
|
||||
|
||||
```json5
|
||||
@ -203,13 +210,13 @@ app-server не вдається запустити.
|
||||
```
|
||||
|
||||
Використовуйте звичайні команди сесії, щоб перемикати агентів і моделі. `/new` створює нову
|
||||
сесію OpenClaw, а Codex harness за потреби створює або відновлює свій sidecar app-server
|
||||
thread. `/reset` очищає прив’язку сесії OpenClaw для цього thread.
|
||||
сесію OpenClaw, а каркас Codex за потреби створює або відновлює свій побічний потік app-server.
|
||||
`/reset` очищає прив’язку сесії OpenClaw для цього потоку.
|
||||
|
||||
## Виявлення моделей
|
||||
|
||||
За замовчуванням плагін Codex запитує app-server про доступні моделі. Якщо
|
||||
виявлення завершується помилкою або перевищує час очікування, він використовує вбудований резервний каталог:
|
||||
виявлення завершується помилкою або перевищує час очікування, використовується вбудований резервний каталог:
|
||||
|
||||
- `codex/gpt-5.4`
|
||||
- `codex/gpt-5.4-mini`
|
||||
@ -235,7 +242,7 @@ thread. `/reset` очищає прив’язку сесії OpenClaw для ц
|
||||
}
|
||||
```
|
||||
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалась перевірка Codex і використовувався
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалася перевірка Codex і використовувався
|
||||
резервний каталог:
|
||||
|
||||
```json5
|
||||
@ -255,9 +262,9 @@ thread. `/reset` очищає прив’язку сесії OpenClaw для ц
|
||||
}
|
||||
```
|
||||
|
||||
## Підключення app-server і політика
|
||||
## Підключення до app-server і політика
|
||||
|
||||
За замовчуванням плагін локально запускає Codex командою:
|
||||
За замовчуванням плагін локально запускає Codex так:
|
||||
|
||||
```bash
|
||||
codex app-server --listen stdio://
|
||||
@ -308,22 +315,22 @@ codex app-server --listen stdio://
|
||||
|
||||
Підтримувані поля `appServer`:
|
||||
|
||||
| Field | Default | Значення |
|
||||
| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `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` | Тайм-аут для викликів control-plane app-server. |
|
||||
| `approvalPolicy` | `"never"` | Нативна політика погодження Codex, що надсилається до start/resume/turn thread. |
|
||||
| `sandbox` | `"workspace-write"` | Нативний режим sandbox Codex, що надсилається до start/resume thread. |
|
||||
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб Codex guardian перевіряв нативні погодження. |
|
||||
| `serviceTier` | unset | Необов’язковий рівень сервісу Codex, наприклад `"priority"`. |
|
||||
| Поле | За замовчуванням | Значення |
|
||||
| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------- |
|
||||
| `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"`. |
|
||||
|
||||
Старі змінні середовища все ще працюють як резервні значення для локального тестування, коли
|
||||
відповідне поле конфігурації не задано:
|
||||
відповідне поле конфігурації не задане:
|
||||
|
||||
- `OPENCLAW_CODEX_APP_SERVER_BIN`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
|
||||
@ -335,7 +342,7 @@ codex app-server --listen stdio://
|
||||
|
||||
## Поширені рецепти
|
||||
|
||||
Локальний Codex зі стандартним транспортом stdio:
|
||||
Локальний Codex із типовим транспортом stdio:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -349,7 +356,7 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Перевірка harness лише для Codex, з вимкненим резервним переходом на PI:
|
||||
Перевірка каркаса лише Codex, із вимкненим резервним переходом на PI:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -366,7 +373,7 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Погодження Codex, що перевіряються guardian:
|
||||
Погодження Codex із переглядом guardian:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -387,7 +394,7 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Віддалений app-server з явними заголовками:
|
||||
Віддалений app-server із явними заголовками:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -410,78 +417,79 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Перемикання моделей залишається під керуванням OpenClaw. Коли сесію OpenClaw прив’язано
|
||||
до наявного Codex thread, наступний хід знову надсилає до
|
||||
app-server поточну вибрану модель `codex/*`, провайдера, політику погодження, sandbox і service tier.
|
||||
Перехід з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає прив’язку до
|
||||
thread, але просить Codex продовжити з новою вибраною моделлю.
|
||||
Перемикання моделей і далі контролює OpenClaw. Коли сесію OpenClaw прив’язано
|
||||
до наявного потоку Codex, наступний хід знову надсилає до
|
||||
app-server поточні вибрані `codex/*` модель, провайдера, політику погодження, sandbox і service tier.
|
||||
Перемикання з `codex/gpt-5.4` на `codex/gpt-5.2` зберігає прив’язку
|
||||
до потоку, але просить Codex продовжити з нововибраною моделлю.
|
||||
|
||||
## Команда Codex
|
||||
|
||||
Вбудований плагін реєструє `/codex` як авторизовану slash-команду. Вона є
|
||||
універсальною і працює на будь-якому каналі, що підтримує текстові команди OpenClaw.
|
||||
загальною і працює в будь-якому каналі, який підтримує текстові команди OpenClaw.
|
||||
|
||||
Поширені форми:
|
||||
|
||||
- `/codex status` показує в реальному часі підключення до app-server, моделі, обліковий запис, ліміти швидкості, MCP servers і skills.
|
||||
- `/codex models` виводить список моделей Codex app-server у реальному часі.
|
||||
- `/codex threads [filter]` виводить список нещодавніх thread Codex.
|
||||
- `/codex resume <thread-id>` прив’язує поточну сесію OpenClaw до наявного thread Codex.
|
||||
- `/codex compact` просить Codex app-server виконати компакцію прив’язаного thread.
|
||||
- `/codex review` запускає нативну перевірку Codex для прив’язаного thread.
|
||||
- `/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 виконати компакцію прив’язаного потоку.
|
||||
- `/codex review` запускає нативну перевірку Codex для прив’язаного потоку.
|
||||
- `/codex account` показує стан облікового запису та лімітів швидкості.
|
||||
- `/codex mcp` показує стан MCP server Codex app-server.
|
||||
- `/codex skills` виводить список skills Codex app-server.
|
||||
- `/codex mcp` перелічує стан серверів MCP app-server Codex.
|
||||
- `/codex skills` перелічує Skills app-server Codex.
|
||||
|
||||
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для
|
||||
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей thread Codex, передає
|
||||
поточну вибрану в OpenClaw модель `codex/*` до app-server і зберігає
|
||||
увімкнену розширену історію.
|
||||
`/codex resume` записує той самий файл побічної прив’язки, який каркас використовує для
|
||||
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає поточну
|
||||
вибрану в OpenClaw модель `codex/*` до app-server і зберігає ввімкнену
|
||||
розширену історію.
|
||||
|
||||
Поверхня команд вимагає Codex app-server `0.118.0` або новішої версії. Для окремих
|
||||
методів керування повідомляється `unsupported by this Codex app-server`, якщо
|
||||
Поверхня команд вимагає app-server Codex версії `0.118.0` або новішої. Для окремих
|
||||
методів керування буде показано `unsupported by this Codex app-server`, якщо
|
||||
майбутній або кастомний app-server не надає цей метод JSON-RPC.
|
||||
|
||||
## Інструменти, медіа та компакція
|
||||
|
||||
Codex harness змінює лише низькорівневий виконавець вбудованого агента.
|
||||
Каркас Codex змінює лише низькорівневий виконавець вбудованого агента.
|
||||
|
||||
OpenClaw, як і раніше, формує список інструментів і отримує динамічні результати інструментів від
|
||||
harness. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів обміну повідомленнями
|
||||
каркаса. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів обміну повідомленнями
|
||||
і далі проходять через звичайний шлях доставки OpenClaw.
|
||||
|
||||
Коли вибрана модель використовує Codex harness, нативна компакція thread делегується
|
||||
Codex app-server. OpenClaw зберігає дзеркало транскрипту для історії каналу,
|
||||
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness.
|
||||
Коли вибрана модель використовує каркас Codex, нативна компакція потоку делегується app-server Codex.
|
||||
OpenClaw зберігає дзеркало стенограми для історії каналу, пошуку, `/new`, `/reset` і майбутнього
|
||||
перемикання моделі або каркаса. Дзеркало включає запит користувача, фінальний текст помічника та
|
||||
полегшені записи міркувань або плану 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, щоб handshake app-server
|
||||
повідомляв версію `0.118.0` або новішу.
|
||||
**app-server відхиляється:** оновіть Codex, щоб узгодження app-server
|
||||
повідомляло версію `0.118.0` або новішу.
|
||||
|
||||
**Виявлення моделей повільне:** зменште `plugins.entries.codex.config.discovery.timeoutMs`
|
||||
або вимкніть виявлення.
|
||||
|
||||
**Транспорт WebSocket відразу завершується помилкою:** перевірте `appServer.url`, `authToken`
|
||||
і те, що віддалений app-server використовує ту саму версію протоколу Codex app-server.
|
||||
**Транспорт WebSocket одразу завершується з помилкою:** перевірте `appServer.url`, `authToken`
|
||||
і що віддалений app-server використовує ту саму версію протоколу app-server Codex.
|
||||
|
||||
**Не-Codex модель використовує PI:** це очікувана поведінка. Codex harness обробляє лише
|
||||
**Не-Codex модель використовує PI:** це очікувана поведінка. Каркас Codex обробляє лише
|
||||
посилання на моделі `codex/*`.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Плагіни Agent Harness](/uk/plugins/sdk-agent-harness)
|
||||
- [Плагіни каркаса агента](/uk/plugins/sdk-agent-harness)
|
||||
- [Провайдери моделей](/uk/concepts/model-providers)
|
||||
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
|
||||
- [Тестування](/uk/help/testing#live-codex-app-server-harness-smoke)
|
||||
|
||||
@ -1,53 +1,60 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви змінюєте вбудований рантайм агента або реєстр harnessів
|
||||
- Ви змінюєте вбудоване середовище виконання агента або реєстр harness агентів
|
||||
- Ви реєструєте harness агента з вбудованого або довіреного плагіна
|
||||
- Вам потрібно зрозуміти, як плагін Codex пов’язаний із постачальниками моделей
|
||||
sidebarTitle: Agent Harness
|
||||
summary: Експериментальна поверхня SDK для плагінів, які замінюють низькорівневий вбудований виконавець агентів
|
||||
summary: Експериментальна поверхня SDK для плагінів, які замінюють низькорівневий вбудований виконавець агента
|
||||
title: Плагіни Agent Harness
|
||||
x-i18n:
|
||||
generated_at: "2026-04-10T21:05:18Z"
|
||||
generated_at: "2026-04-10T23:15:01Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 3abada0b89609c80edf3b66dfbd5951e812523c31d758643edb92e01f86e6dae
|
||||
source_hash: 43c1f2c087230398b0162ed98449f239c8db1e822e51c7dcd40c54fa6c3374e1
|
||||
source_path: plugins/sdk-agent-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Плагіни Agent Harness
|
||||
|
||||
**Agent harness** — це низькорівневий виконавець для одного підготовленого ходу агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
|
||||
**Agent harness** — це низькорівневий виконавець для одного підготовленого ходу
|
||||
агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
|
||||
|
||||
Використовуйте цю поверхню лише для вбудованих або довірених нативних плагінів. Контракт усе ще є експериментальним, оскільки типи параметрів навмисно віддзеркалюють поточний вбудований раннер.
|
||||
Використовуйте цю поверхню лише для вбудованих або довірених нативних плагінів. Контракт
|
||||
досі є експериментальним, оскільки типи параметрів навмисно віддзеркалюють поточний
|
||||
вбудований виконавець.
|
||||
|
||||
## Коли використовувати harness
|
||||
|
||||
Реєструйте agent harness, коли сімейство моделей має власний нативний рантайм сесій і звичайний транспорт постачальника OpenClaw є хибною абстракцією.
|
||||
Реєструйте agent harness, коли сімейство моделей має власне нативне середовище
|
||||
виконання сесії, а звичайний транспорт постачальника OpenClaw є хибною абстракцією.
|
||||
|
||||
Приклади:
|
||||
|
||||
- нативний сервер coding-agent, який керує потоками й компакцією
|
||||
- локальний CLI або демон, який має транслювати нативні події плану/міркування/інструментів
|
||||
- рантайм моделі, якому потрібен власний resume id на додачу до транскрипту сесії OpenClaw
|
||||
- нативний сервер coding-agent, який керує потоками та компакцією
|
||||
- локальний CLI або демон, який має потоково передавати нативні події плану/міркувань/інструментів
|
||||
- середовище виконання моделі, якому потрібен власний id відновлення на додачу до
|
||||
транскрипту сесії OpenClaw
|
||||
|
||||
**Не** реєструйте harness лише для того, щоб додати новий LLM API. Для звичайних HTTP або WebSocket API моделей створіть [плагін постачальника](/uk/plugins/sdk-provider-plugins).
|
||||
**Не** реєструйте harness лише для додавання нового API LLM. Для звичайних HTTP- або
|
||||
WebSocket-API моделей створіть [плагін постачальника](/uk/plugins/sdk-provider-plugins).
|
||||
|
||||
## Чим і далі керує ядро
|
||||
## Що все ще належить core
|
||||
|
||||
Перш ніж буде вибрано harness, OpenClaw уже визначив:
|
||||
|
||||
- постачальника й модель
|
||||
- стан автентифікації рантайму
|
||||
- рівень міркування й бюджет контексту
|
||||
- транскрипт OpenClaw/файл сесії
|
||||
- постачальника і модель
|
||||
- стан автентифікації середовища виконання
|
||||
- рівень thinking і бюджет контексту
|
||||
- файл транскрипту/сесії OpenClaw
|
||||
- робочий простір, sandbox і політику інструментів
|
||||
- колбеки відповіді каналу та колбеки потокової передачі
|
||||
- політику резервного переходу між моделями й перемикання на живу модель
|
||||
- зворотні виклики відповіді каналу та потокові зворотні виклики
|
||||
- резервну модель і політику перемикання live-моделей
|
||||
|
||||
Такий поділ є навмисним. Harness виконує підготовлену спробу; він не вибирає постачальників, не замінює доставку через канали й не перемикає моделі непомітно.
|
||||
Цей розподіл є навмисним. Harness виконує підготовлену спробу; він не вибирає
|
||||
постачальників, не замінює доставку через канал і не перемикає моделі непомітно.
|
||||
|
||||
## Зареєструвати harness
|
||||
## Реєстрація harness
|
||||
|
||||
**Імпорт:** `openclaw/plugin-sdk/agent-harness`
|
||||
|
||||
@ -87,38 +94,61 @@ export default definePluginEntry({
|
||||
|
||||
OpenClaw вибирає harness після визначення постачальника/моделі:
|
||||
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстрований harness з таким id.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудований harness PI.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані harness-и, чи підтримують вони визначеного постачальника/модель.
|
||||
4. Якщо жоден зареєстрований harness не підходить, OpenClaw використовує PI, якщо резервний перехід до PI не вимкнено.
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вказує зареєстрований harness із цим id.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` примусово вказує вбудований harness PI.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані harness, чи підтримують вони
|
||||
визначеного постачальника/модель.
|
||||
4. Якщо жоден зареєстрований harness не підходить, OpenClaw використовує PI, якщо резервний варіант PI не вимкнено.
|
||||
|
||||
Помилки примусово вибраного harness плагіна відображаються як помилки виконання. У режимі `auto` OpenClaw може повернутися до PI, якщо вибраний harness плагіна зазнає збою до того, як хід створить побічні ефекти. Встановіть `OPENCLAW_AGENT_HARNESS_FALLBACK=none` або `embeddedHarness.fallback: "none"`, щоб зробити такий резервний перехід жорсткою помилкою.
|
||||
Збої примусово вказаного harness плагіна відображаються як збої виконання. У режимі `auto`
|
||||
OpenClaw може перейти на PI, якщо вибраний harness плагіна зазнає збою до того,
|
||||
як хід спричинить побічні ефекти. Установіть `OPENCLAW_AGENT_HARNESS_FALLBACK=none` або
|
||||
`embeddedHarness.fallback: "none"`, щоб зробити такий перехід жорсткою помилкою.
|
||||
|
||||
Вбудований плагін Codex реєструє `codex` як id свого harness. Для сумісності `codex-app-server` і `app-server` також указують на цей самий harness, коли ви вручну встановлюєте `OPENCLAW_AGENT_RUNTIME`.
|
||||
Вбудований плагін Codex реєструє `codex` як свій id harness. Core розглядає його
|
||||
як звичайний id harness плагіна; специфічні для Codex псевдоніми мають належати
|
||||
плагіну або конфігурації оператора, а не спільному селектору середовища виконання.
|
||||
|
||||
## Поєднання постачальника й harness
|
||||
## Зіставлення постачальника та harness
|
||||
|
||||
Більшість harness-ів також мають реєструвати постачальника. Постачальник робить посилання на моделі, статус автентифікації, метадані моделей і вибір `/model` видимими для решти OpenClaw. Потім harness заявляє про цей постачальник у `supports(...)`.
|
||||
Більшість harness також мають реєструвати постачальника. Постачальник робить
|
||||
посилання на моделі, стан автентифікації, метадані моделей і вибір `/model`
|
||||
видимими для решти OpenClaw. Потім harness заявляє цей постачальник у `supports(...)`.
|
||||
|
||||
Вбудований плагін Codex дотримується цього шаблону:
|
||||
|
||||
- id постачальника: `codex`
|
||||
- посилання користувача на моделі: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, яку повертає сервер застосунку Codex
|
||||
- посилання користувача на моделі: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, яку повертає
|
||||
сервер застосунку Codex
|
||||
- id harness: `codex`
|
||||
- автентифікація: синтетична доступність постачальника, оскільки harness Codex керує нативним входом/сесією Codex
|
||||
- запит до app-server: OpenClaw надсилає до Codex лише id моделі й дозволяє harness-у взаємодіяти з нативним протоколом app-server
|
||||
- автентифікація: синтетична доступність постачальника, оскільки harness Codex керує
|
||||
нативним входом/сесією Codex
|
||||
- запит до app-server: OpenClaw надсилає до Codex базовий id моделі й дозволяє
|
||||
harness взаємодіяти з нативним протоколом app-server
|
||||
|
||||
Плагін Codex є доповненням. Звичайні посилання `openai/gpt-*` залишаються посиланнями постачальника OpenAI й продовжують використовувати звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні автентифікація під керуванням Codex, виявлення моделей Codex, нативні потоки та виконання через app-server Codex. `/model` може перемикатися між моделями Codex, які повертає app-server Codex, без потреби в облікових даних постачальника OpenAI.
|
||||
Плагін Codex є доповнювальним. Звичайні посилання `openai/gpt-*` залишаються
|
||||
посиланнями постачальника OpenAI і продовжують використовувати звичайний шлях
|
||||
постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні автентифікація під керуванням Codex,
|
||||
виявлення моделей Codex, нативні потоки та виконання через app-server Codex. `/model` може перемикатися між моделями Codex, які повертає app server Codex, не вимагаючи облікових даних постачальника OpenAI.
|
||||
|
||||
Налаштування оператором, приклади префіксів моделей і конфігурації лише для Codex дивіться в [Codex Harness](/uk/plugins/codex-harness).
|
||||
Налаштування для операторів, приклади префіксів моделей і конфігурації лише для Codex див. у
|
||||
[Codex Harness](/uk/plugins/codex-harness).
|
||||
|
||||
OpenClaw вимагає Codex app-server версії `0.118.0` або новішої. Плагін Codex перевіряє initialize-handshake app-server і блокує старіші сервери або сервери без версії, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
OpenClaw вимагає Codex app-server версії `0.118.0` або новішої. Плагін Codex перевіряє
|
||||
ініціалізаційне рукостискання app-server і блокує старіші сервери або сервери без версії, щоб
|
||||
OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
|
||||
## Вимкнення резервного переходу до PI
|
||||
## Вимкнення резервного PI
|
||||
|
||||
Типово OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, установленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані harness-и плагінів можуть заявити підтримку пари постачальник/модель. Якщо жоден не підходить або якщо автоматично вибраний harness плагіна зазнає збою до створення виводу, OpenClaw повертається до PI.
|
||||
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`,
|
||||
встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані
|
||||
harness плагінів можуть заявляти пари постачальник/модель. Якщо жоден не підходить
|
||||
або якщо автоматично вибраний harness плагіна зазнає збою до створення виводу,
|
||||
OpenClaw переходить на PI.
|
||||
|
||||
Установіть `fallback: "none"`, якщо вам потрібно довести, що виконується лише рантайм harness плагіна. Це вимикає автоматичний резервний перехід до PI; це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
Установіть `fallback: "none"`, коли потрібно довести, що єдиним середовищем
|
||||
виконання, яке використовується, є harness плагіна. Це вимикає автоматичний резервний перехід на PI;
|
||||
це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
|
||||
Для вбудованих запусків лише з Codex:
|
||||
|
||||
@ -136,7 +166,9 @@ OpenClaw вимагає Codex app-server версії `0.118.0` або нові
|
||||
}
|
||||
```
|
||||
|
||||
Якщо ви хочете, щоб будь-який зареєстрований harness плагіна міг заявити підтримку відповідних моделей, але ніколи не хочете, щоб OpenClaw непомітно повертався до PI, залиште `runtime: "auto"` і вимкніть резервний перехід:
|
||||
Якщо ви хочете, щоб будь-який зареєстрований harness плагіна міг заявляти
|
||||
відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно переходив на PI, залиште
|
||||
`runtime: "auto"` і вимкніть резервний перехід:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -151,7 +183,7 @@ OpenClaw вимагає Codex app-server версії `0.118.0` або нові
|
||||
}
|
||||
```
|
||||
|
||||
Перевизначення на рівні окремого агента використовують ту саму форму:
|
||||
Перевизначення для окремого агента використовують ту саму форму:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -176,7 +208,9 @@ OpenClaw вимагає Codex app-server версії `0.118.0` або нові
|
||||
}
|
||||
```
|
||||
|
||||
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштований рантайм. Використайте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути резервний перехід до PI через середовище.
|
||||
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване середовище виконання. Використовуйте
|
||||
`OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути резервний перехід на PI через
|
||||
змінну середовища.
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -184,39 +218,53 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Якщо резервний перехід вимкнено, сесія завершується помилкою на ранньому етапі, коли запитаний harness не зареєстровано, не підтримує визначеного постачальника/модель або зазнає збою до створення побічних ефектів ходу. Це зроблено навмисно для середовищ лише з Codex і для live-тестів, які мають довести, що фактично використовується шлях app-server Codex.
|
||||
Із вимкненим резервним переходом сесія завершується помилкою на ранньому етапі, якщо запитаний harness не
|
||||
зареєстровано, не підтримує визначеного постачальника/модель або зазнає збою до
|
||||
створення побічних ефектів ходу. Це навмисно для розгортань лише з Codex і
|
||||
для live-тестів, які мають довести, що шлях через app-server Codex справді використовується.
|
||||
|
||||
Цей параметр керує лише вбудованим agent harness. Він не вимикає маршрутизацію моделей, специфічну для постачальника, для зображень, відео, музики, TTS, PDF або інших типів.
|
||||
Цей параметр керує лише вбудованим harness агента. Він не вимикає маршрутизацію
|
||||
зображень, відео, музики, TTS, PDF або інших специфічних для постачальника моделей.
|
||||
|
||||
## Нативні сесії та дзеркалення транскрипту
|
||||
## Нативні сесії та дзеркалювання транскрипту
|
||||
|
||||
Harness може зберігати нативний id сесії, id потоку або daemon-side токен відновлення. Явно пов’язуйте таку прив’язку із сесією OpenClaw і продовжуйте віддзеркалювати видимий користувачу вивід помічника/інструментів у транскрипт OpenClaw.
|
||||
Harness може зберігати нативний id сесії, id потоку або токен відновлення на боці демона.
|
||||
Явно пов’язуйте цю прив’язку із сесією OpenClaw і продовжуйте
|
||||
дзеркалювати видимий користувачу вивід помічника/інструментів у транскрипт OpenClaw.
|
||||
|
||||
Транскрипт OpenClaw залишається шаром сумісності для:
|
||||
|
||||
- історії сесії, видимої в каналі
|
||||
- пошуку та індексації транскрипту
|
||||
- повернення до вбудованого harness PI на наступному ході
|
||||
- узагальненої поведінки `/new`, `/reset` і видалення сесії
|
||||
- пошуку та індексації транскриптів
|
||||
- перемикання назад на вбудований harness PI у наступному ході
|
||||
- загальної поведінки `/new`, `/reset` і видалення сесії
|
||||
|
||||
Якщо ваш harness зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її, коли відповідну сесію OpenClaw буде скинуто.
|
||||
Якщо ваш harness зберігає прив’язку sidecar, реалізуйте `reset(...)`, щоб OpenClaw міг
|
||||
очищати її, коли пов’язану сесію OpenClaw скинуто.
|
||||
|
||||
## Результати інструментів і медіа
|
||||
|
||||
Ядро формує список інструментів OpenClaw і передає його в підготовлену спробу. Коли harness виконує динамічний виклик інструмента, повертайте результат інструмента через форму результату harness, а не надсилайте медіа в канал самостійно.
|
||||
Core формує список інструментів OpenClaw і передає його в підготовлену спробу.
|
||||
Коли harness виконує виклик динамічного інструмента, повертайте результат інструмента
|
||||
назад через форму результату harness замість того, щоб самостійно надсилати медіа в канал.
|
||||
|
||||
Це дозволяє тексту, зображенням, відео, музиці, TTS, погодженням і результатам інструментів обміну повідомленнями проходити тим самим шляхом доставки, що й запуски на основі PI.
|
||||
Це зберігає текст, зображення, відео, музику, TTS, погодження та виводи інструментів обміну повідомленнями
|
||||
на тому самому шляху доставки, що й у запусках на основі PI.
|
||||
|
||||
## Поточні обмеження
|
||||
|
||||
- Публічний шлях імпорту є загальним, але деякі псевдоніми типів спроб/результатів усе ще містять назви `Pi` для сумісності.
|
||||
- Встановлення сторонніх harness-ів є експериментальним. Надавайте перевагу плагінам постачальників, доки вам не знадобиться нативний рантайм сесій.
|
||||
- Перемикання harness-ів між ходами підтримується. Не перемикайте harness посеред ходу після того, як уже почалися нативні інструменти, погодження, текст помічника або надсилання повідомлень.
|
||||
- Публічний шлях імпорту є узагальненим, але деякі псевдоніми типів спроби/результату все ще
|
||||
містять назви `Pi` для сумісності.
|
||||
- Встановлення сторонніх harness є експериментальним. Надавайте перевагу плагінам постачальників,
|
||||
доки вам не знадобиться нативне середовище виконання сесії.
|
||||
- Перемикання harness між ходами підтримується. Не перемикайте harness посеред
|
||||
ходу після того, як уже почалися нативні інструменти, погодження, текст помічника або
|
||||
надсилання повідомлень.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview)
|
||||
- [Допоміжні засоби рантайму](/uk/plugins/sdk-runtime)
|
||||
- [Допоміжні засоби середовища виконання](/uk/plugins/sdk-runtime)
|
||||
- [Плагіни постачальників](/uk/plugins/sdk-provider-plugins)
|
||||
- [Codex Harness](/uk/plugins/codex-harness)
|
||||
- [Постачальники моделей](/uk/concepts/model-providers)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user