chore(i18n): refresh uk translations
This commit is contained in:
parent
9b04ae2a26
commit
237560254b
File diff suppressed because it is too large
Load Diff
@ -1,62 +1,49 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете використовувати комплектний app-server harness Codex
|
||||
- Вам потрібні посилання на модель Codex і приклади конфігурації
|
||||
- Ви хочете вимкнути резервний перехід до PI для розгортань лише з Codex
|
||||
- Вам потрібні посилання на моделі Codex і приклади конфігурації
|
||||
- Ви хочете вимкнути резервне перемикання на PI для розгортань лише з Codex
|
||||
summary: Запускайте вбудовані ходи агента OpenClaw через комплектний app-server harness Codex
|
||||
title: Harness Codex
|
||||
x-i18n:
|
||||
generated_at: "2026-04-21T00:08:16Z"
|
||||
generated_at: "2026-04-22T05:35:01Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 3f0cdaf68be3b2257de1046103ff04f53f9d3a65ffc15ab7af5ab1f425643d6c
|
||||
source_hash: d45dbd39a7d8ebb3a39d8dca3a5125c07b7168d1658ca07b85792645fb98613c
|
||||
source_path: plugins/codex-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Harness Codex
|
||||
|
||||
Комплектний plugin `codex` дає OpenClaw змогу запускати вбудовані ходи агента через
|
||||
app-server Codex замість вбудованого harness PI.
|
||||
Комплектний plugin `codex` дає OpenClaw змогу запускати вбудовані ходи агента через app-server Codex замість вбудованого harness PI.
|
||||
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням
|
||||
моделей, нативним відновленням потоку, нативною Compaction і виконанням app-server.
|
||||
OpenClaw і далі керує каналами чату, файлами сесії, вибором моделі, інструментами,
|
||||
схваленнями, доставкою медіа та видимим дзеркалом транскрипту.
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням моделей, нативним відновленням потоку, нативною Compaction і виконанням app-server. OpenClaw, як і раніше, керує чат-каналами, файлами сесії, вибором моделі, інструментами, погодженнями, доставкою медіа та видимим дзеркалом транскрипту.
|
||||
|
||||
За замовчуванням harness вимкнений. Він вибирається лише тоді, коли plugin `codex`
|
||||
увімкнений і розв’язана модель є моделлю `codex/*`, або коли ви явно
|
||||
примусово задаєте `embeddedHarness.runtime: "codex"` чи `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
Якщо ви ніколи не налаштовуєте `codex/*`, наявні запуски PI, OpenAI, Anthropic, Gemini, local
|
||||
і custom-provider зберігають свою поточну поведінку.
|
||||
За замовчуванням 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:
|
||||
|
||||
| Посилання на модель | Шлях 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. |
|
||||
| Посилання на модель | Шлях виконання | Використовуйте, коли |
|
||||
| --------------------- | ------------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| `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 для вбудованого ходу агента. |
|
||||
|
||||
Harness Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання `openai/*`,
|
||||
`openai-codex/*`, Anthropic, Gemini, xAI, local і custom provider зберігають
|
||||
свої звичайні шляхи.
|
||||
Harness Codex обробляє лише посилання на моделі `codex/*`. Наявні посилання на провайдери `openai/*`, `openai-codex/*`, Anthropic, Gemini, xAI, local і custom зберігають свої звичайні шляхи.
|
||||
|
||||
## Вимоги
|
||||
|
||||
- OpenClaw із доступним комплектним plugin `codex`.
|
||||
- app-server Codex `0.118.0` або новіший.
|
||||
- Доступна автентифікація Codex для процесу app-server.
|
||||
- Codex app-server `0.118.0` або новіший.
|
||||
- Автентифікація Codex, доступна для процесу app-server.
|
||||
|
||||
Plugin блокує старіші або безверсійні handshake app-server. Це утримує
|
||||
OpenClaw на поверхні протоколу, з якою його тестували.
|
||||
Plugin блокує старі або неверсіоновані handshake app-server. Це гарантує, що OpenClaw працює на поверхні протоколу, з якою його було протестовано.
|
||||
|
||||
Для live і 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.
|
||||
|
||||
## Мінімальна конфігурація
|
||||
|
||||
@ -83,7 +70,7 @@ app-server Codex.
|
||||
}
|
||||
```
|
||||
|
||||
Якщо у вашій конфігурації використовується `plugins.allow`, додайте туди також `codex`:
|
||||
Якщо ваша конфігурація використовує `plugins.allow`, додайте туди також `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -98,14 +85,11 @@ app-server Codex.
|
||||
}
|
||||
```
|
||||
|
||||
Установлення `agents.defaults.model` або моделі агента в `codex/<model>` також
|
||||
автоматично вмикає комплектний plugin `codex`. Явний запис plugin усе ще
|
||||
корисний у спільних конфігураціях, бо робить намір розгортання очевидним.
|
||||
Установлення `agents.defaults.model` або моделі агента в `codex/<model>` також автоматично вмикає комплектний plugin `codex`. Явний запис plugin усе одно корисний у спільних конфігураціях, тому що він робить намір розгортання очевидним.
|
||||
|
||||
## Додайте Codex без заміни інших моделей
|
||||
|
||||
Залишайте `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI — для
|
||||
всього іншого:
|
||||
Залиште `runtime: "auto"`, якщо хочете використовувати Codex для моделей `codex/*`, а PI — для всього іншого:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -137,17 +121,16 @@ 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 залишається harness сумісності.
|
||||
- Якщо вибрано не-Codex-модель, PI залишається harness сумісності.
|
||||
|
||||
## Розгортання лише з Codex
|
||||
|
||||
Вимкніть резервний перехід до PI, якщо вам потрібно довести, що кожен вбудований хід агента використовує
|
||||
harness Codex:
|
||||
Вимкніть резервний перехід на PI, якщо вам потрібно підтвердити, що кожен вбудований хід агента використовує harness Codex:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -171,14 +154,11 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Коли резервний перехід вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо plugin Codex вимкнений,
|
||||
потрібна модель не є посиланням `codex/*`, app-server надто старий або
|
||||
app-server не може запуститися.
|
||||
Якщо резервний перехід вимкнено, OpenClaw завершується з помилкою на ранньому етапі, якщо plugin Codex вимкнено, запитувана модель не є посиланням `codex/*`, app-server надто старий або app-server не вдається запустити.
|
||||
|
||||
## Codex для окремого агента
|
||||
|
||||
Ви можете зробити одного агента лише Codex, а для агента за замовчуванням залишити звичайний
|
||||
автовибір:
|
||||
Ви можете зробити один агент лише для Codex, тоді як агент за замовчуванням зберігатиме звичайний автоматичний вибір:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -209,14 +189,11 @@ app-server не може запуститися.
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте звичайні команди сесії для перемикання агентів і моделей. `/new` створює нову
|
||||
сесію OpenClaw, а harness 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`
|
||||
@ -242,8 +219,7 @@ app-server не може запуститися.
|
||||
}
|
||||
```
|
||||
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалася перевірка Codex і використовувався
|
||||
резервний каталог:
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не було перевірки Codex і використовувався лише резервний каталог:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -264,15 +240,13 @@ app-server не може запуститися.
|
||||
|
||||
## Підключення до app-server і політика
|
||||
|
||||
За замовчуванням plugin локально запускає Codex командою:
|
||||
За замовчуванням plugin запускає Codex локально так:
|
||||
|
||||
```bash
|
||||
codex app-server --listen stdio://
|
||||
```
|
||||
|
||||
За замовчуванням OpenClaw просить Codex запитувати нативні схвалення. Ви можете додатково
|
||||
налаштувати цю політику, наприклад посилити її та направляти перевірки через
|
||||
guardian:
|
||||
За замовчуванням OpenClaw просить Codex запитувати нативні погодження. Ви можете додатково налаштувати цю політику, наприклад зробити її суворішою та спрямовувати перевірки через guardian:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -326,14 +300,13 @@ guardian:
|
||||
| `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 перевіряв нативні схвалення. |
|
||||
| `requestTimeoutMs` | `60000` | Тайм-аут для викликів control plane app-server. |
|
||||
| `approvalPolicy` | `"on-request"` | Нативна політика погодження Codex, що надсилається під час start/resume/turn потоку. |
|
||||
| `sandbox` | `"workspace-write"` | Нативний режим sandbox Codex, що надсилається під час start/resume потоку. |
|
||||
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб дозволити guardian Codex перевіряти нативні погодження. |
|
||||
| `serviceTier` | не задано | Необов’язковий рівень сервісу Codex, наприклад `"priority"`. |
|
||||
|
||||
Старіші змінні середовища все ще працюють як резервні варіанти для локального тестування, коли
|
||||
відповідне поле конфігурації не задане:
|
||||
Старі змінні середовища все ще працюють як резервний варіант для локального тестування, коли відповідне поле конфігурації не задано:
|
||||
|
||||
- `OPENCLAW_CODEX_APP_SERVER_BIN`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
|
||||
@ -341,11 +314,11 @@ guardian:
|
||||
- `OPENCLAW_CODEX_APP_SERVER_SANDBOX`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1`
|
||||
|
||||
Для відтворюваних розгортань рекомендовано використовувати конфігурацію.
|
||||
Для відтворюваних розгортань перевага надається конфігурації.
|
||||
|
||||
## Поширені рецепти
|
||||
|
||||
Локальний Codex зі стандартним транспортом stdio:
|
||||
Локальний Codex із транспортом stdio за замовчуванням:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -359,7 +332,7 @@ guardian:
|
||||
}
|
||||
```
|
||||
|
||||
Перевірка harness лише Codex із вимкненим резервним переходом до PI:
|
||||
Перевірка harness лише з Codex, із вимкненим резервним переходом на PI:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -376,7 +349,7 @@ guardian:
|
||||
}
|
||||
```
|
||||
|
||||
Схвалення Codex із перевіркою guardian:
|
||||
Погодження Codex, перевірені guardian:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -397,7 +370,7 @@ guardian:
|
||||
}
|
||||
```
|
||||
|
||||
Віддалений app-server із явними заголовками:
|
||||
Віддалений app-server з явними заголовками:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -420,80 +393,55 @@ guardian:
|
||||
}
|
||||
```
|
||||
|
||||
Перемикання моделей залишається під контролем 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 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 mcp` перелічує стан MCP-серверів app-server Codex.
|
||||
- `/codex skills` перелічує Skills app-server Codex.
|
||||
|
||||
`/codex resume` записує той самий файл sidecar binding, який harness використовує для
|
||||
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає
|
||||
поточну вибрану в OpenClaw модель `codex/*` до app-server і залишає розширену
|
||||
історію увімкненою.
|
||||
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає в app-server поточну вибрану модель OpenClaw `codex/*` і зберігає розширену історію увімкненою.
|
||||
|
||||
Поверхня команд потребує app-server Codex `0.118.0` або новішого. Окремі
|
||||
методи керування позначаються як `unsupported by this Codex app-server`, якщо
|
||||
майбутній або custom app-server не надає цей метод JSON-RPC.
|
||||
Поверхня команд вимагає Codex app-server `0.118.0` або новішої версії. Окремі методи керування позначаються як `unsupported by this Codex app-server`, якщо майбутній або custom app-server не надає цей JSON-RPC-метод.
|
||||
|
||||
## Інструменти, медіа та Compaction
|
||||
|
||||
Harness Codex змінює лише низькорівневий виконавець вбудованого агента.
|
||||
|
||||
OpenClaw і далі будує список інструментів і отримує динамічні результати інструментів від
|
||||
harness. Текст, зображення, відео, музика, TTS, схвалення та вивід інструментів обміну повідомленнями
|
||||
і далі проходять через звичайний шлях доставки OpenClaw.
|
||||
OpenClaw, як і раніше, формує список інструментів і отримує динамічні результати інструментів від harness. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів обміну повідомленнями продовжують проходити через звичайний шлях доставки OpenClaw.
|
||||
|
||||
Коли вибрана модель використовує harness Codex, нативна Compaction потоку
|
||||
делегується app-server Codex. OpenClaw зберігає дзеркало транскрипту для історії каналу,
|
||||
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness. Дзеркало
|
||||
включає запит користувача, фінальний текст асистента та полегшені записи міркувань або плану 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`.
|
||||
Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і розуміння медіа й надалі використовують відповідні налаштування провайдера/моделі, такі як `agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і `messages.tts`.
|
||||
|
||||
## Усунення несправностей
|
||||
|
||||
**Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`,
|
||||
задайте посилання на модель `codex/*` або перевірте, чи `plugins.allow` не виключає `codex`.
|
||||
**Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`, задайте посилання на модель `codex/*` або перевірте, чи не виключає `plugins.allow` значення `codex`.
|
||||
|
||||
**OpenClaw переходить до PI:** задайте `embeddedHarness.fallback: "none"` або
|
||||
`OPENCLAW_AGENT_HARNESS_FALLBACK=none` під час тестування.
|
||||
**OpenClaw використовує PI замість Codex:** якщо жоден harness Codex не обробляє запуск, OpenClaw може використовувати PI як backend сумісності. Установіть `embeddedHarness.runtime: "codex"`, щоб примусово вибрати Codex під час тестування, або `embeddedHarness.fallback: "none"`, щоб отримувати помилку, коли жоден plugin harness не підходить. Щойно вибрано app-server Codex, його збої відображаються безпосередньо без додаткового налаштування резервного переходу.
|
||||
|
||||
**app-server відхиляється:** оновіть Codex, щоб handshake app-server
|
||||
повідомляв версію `0.118.0` або новішу.
|
||||
**app-server відхиляється:** оновіть Codex, щоб handshake app-server повідомляв версію `0.118.0` або новішу.
|
||||
|
||||
**Виявлення моделей повільне:** зменште `plugins.entries.codex.config.discovery.timeoutMs`
|
||||
або вимкніть виявлення.
|
||||
**Виявлення моделей повільне:** зменште `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:** це очікувана поведінка. Harness Codex обробляє лише
|
||||
посилання на моделі `codex/*`.
|
||||
**Не-Codex-модель використовує PI:** це очікувана поведінка. Harness Codex обробляє лише посилання на моделі `codex/*`.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Plugins harness агента](/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)
|
||||
|
||||
@ -1,53 +1,53 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви змінюєте вбудоване середовище виконання агента або реєстр harness агента
|
||||
- Ви реєструєте harness агента з вбудованого або довіреного плагіна
|
||||
- Вам потрібно зрозуміти, як плагін Codex пов’язаний із постачальниками моделей
|
||||
- Ви змінюєте вбудоване середовище виконання агента або реєстр обв’язки агента
|
||||
- Ви реєструєте обв’язку агента з bundled або trusted plugin
|
||||
- Вам потрібно зрозуміти, як plugin Codex пов’язаний із постачальниками моделей
|
||||
sidebarTitle: Agent Harness
|
||||
summary: Експериментальна поверхня SDK для плагінів, які замінюють низькорівневий вбудований виконавець агента
|
||||
title: Плагіни Agent Harness
|
||||
summary: Експериментальна поверхня SDK для plugin, які замінюють низькорівневий вбудований виконавець агента
|
||||
title: Plugin обв’язки агента
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T16:15:07Z"
|
||||
generated_at: "2026-04-22T05:35:02Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 62b88fd24ce8b600179db27e16e8d764a2cd7a14e5c5df76374c33121aa5e365
|
||||
source_hash: 728fef59ae3cce29a3348842820f1f71a2eac98ae6b276179bce6c85d16613df
|
||||
source_path: plugins/sdk-agent-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Плагіни Agent Harness
|
||||
# Plugin обв’язки агента
|
||||
|
||||
**Agent harness** — це низькорівневий виконавець для одного підготовленого ходу агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
|
||||
**Обв’язка агента** — це низькорівневий виконавець одного підготовленого ходу агента OpenClaw. Це не постачальник моделей, не канал і не реєстр інструментів.
|
||||
|
||||
Використовуйте цю поверхню лише для вбудованих або довірених нативних плагінів. Контракт усе ще є експериментальним, оскільки типи параметрів навмисно віддзеркалюють поточний вбудований виконавець.
|
||||
Використовуйте цю поверхню лише для bundled або trusted native plugin. Контракт усе ще експериментальний, оскільки типи параметрів навмисно віддзеркалюють поточний вбудований виконавець.
|
||||
|
||||
## Коли використовувати harness
|
||||
## Коли використовувати обв’язку
|
||||
|
||||
Реєструйте harness агента, коли сімейство моделей має власне нативне середовище виконання сесій, а звичайний транспорт постачальника OpenClaw є хибною абстракцією.
|
||||
Реєструйте обв’язку агента, коли сімейство моделей має власне native середовище виконання сесії і звичайний транспорт постачальника OpenClaw є хибною абстракцією.
|
||||
|
||||
Приклади:
|
||||
|
||||
- нативний сервер coding-agent, який керує потоками та компакцією
|
||||
- локальний CLI або демон, який має потоково передавати нативні події плану/міркувань/інструментів
|
||||
- native сервер coding-agent, який керує потоками та Compaction
|
||||
- локальний CLI або демон, який має транслювати native події плану/міркувань/інструментів
|
||||
- середовище виконання моделі, якому потрібен власний resume id на додачу до транскрипту сесії OpenClaw
|
||||
|
||||
**Не** реєструйте harness лише для того, щоб додати новий API LLM. Для звичайних HTTP- або WebSocket-API моделей створіть [плагін постачальника](/uk/plugins/sdk-provider-plugins).
|
||||
**Не** реєструйте обв’язку лише для того, щоб додати новий API LLM. Для звичайних HTTP або WebSocket API моделей створіть [plugin постачальника](/uk/plugins/sdk-provider-plugins).
|
||||
|
||||
## Чим усе ще керує ядро
|
||||
## Що все ще належить core
|
||||
|
||||
До вибору harness OpenClaw уже визначив:
|
||||
Перш ніж буде вибрано обв’язку, OpenClaw уже визначив:
|
||||
|
||||
- постачальника й модель
|
||||
- стан автентифікації середовища виконання
|
||||
- постачальника і модель
|
||||
- стан auth середовища виконання
|
||||
- рівень thinking і бюджет контексту
|
||||
- файл транскрипту/сесії OpenClaw
|
||||
- робочий простір, sandbox і політику інструментів
|
||||
- зворотні виклики відповідей каналу та потокові зворотні виклики
|
||||
- політику резервного переходу між моделями та перемикання на живу модель
|
||||
- workspace, sandbox і політику інструментів
|
||||
- callback-функції відповіді каналу та callback-функції трансляції
|
||||
- політику fallback моделі та живого перемикання моделі
|
||||
|
||||
Такий поділ є навмисним. Harness виконує підготовлену спробу; він не вибирає постачальників, не замінює доставлення через канал і не перемикає моделі непомітно.
|
||||
Цей поділ є навмисним. Обв’язка виконує підготовлену спробу; вона не вибирає постачальників, не замінює доставку каналу і не перемикає моделі непомітно.
|
||||
|
||||
## Реєстрація harness
|
||||
## Зареєструвати обв’язку
|
||||
|
||||
**Імпорт:** `openclaw/plugin-sdk/agent-harness`
|
||||
|
||||
@ -85,49 +85,49 @@ export default definePluginEntry({
|
||||
|
||||
## Політика вибору
|
||||
|
||||
OpenClaw вибирає harness після визначення постачальника/моделі:
|
||||
OpenClaw вибирає обв’язку після визначення постачальника/моделі:
|
||||
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстрований harness з цим id.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудований PI harness.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані harness, чи підтримують вони визначеного постачальника/модель.
|
||||
4. Якщо жоден зареєстрований harness не підходить, OpenClaw використовує PI, якщо резервний перехід на PI не вимкнено.
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` примусово вибирає зареєстровану обв’язку з цим id.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` примусово вибирає вбудовану обв’язку PI.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` запитує зареєстровані обв’язки, чи підтримують вони визначеного постачальника/модель.
|
||||
4. Якщо жодна зареєстрована обв’язка не підходить, OpenClaw використовує PI, якщо fallback до PI не вимкнено.
|
||||
|
||||
Помилки примусово вибраного harness плагіна відображаються як помилки виконання. У режимі `auto` OpenClaw може перейти на PI, якщо вибраний harness плагіна завершується помилкою до того, як хід породить побічні ефекти. Установіть `OPENCLAW_AGENT_HARNESS_FALLBACK=none` або `embeddedHarness.fallback: "none"`, щоб зробити такий резервний перехід жорсткою помилкою.
|
||||
Збої обв’язок plugin відображаються як збої виконання. У режимі `auto` fallback до PI використовується лише тоді, коли жодна зареєстрована обв’язка plugin не підтримує визначеного постачальника/модель. Щойно обв’язка plugin заявила про виконання, OpenClaw не повторює той самий хід через PI, оскільки це може змінити семантику auth/середовища виконання або продублювати побічні ефекти.
|
||||
|
||||
Вбудований плагін Codex реєструє `codex` як id свого harness. Ядро обробляє його як звичайний id harness плагіна; специфічні для Codex псевдоніми мають належати плагіну або конфігурації оператора, а не спільному селектору середовища виконання.
|
||||
Bundled plugin Codex реєструє `codex` як свій id обв’язки. Core розглядає це як звичайний id обв’язки plugin; специфічні для Codex псевдоніми мають належати plugin або конфігурації оператора, а не спільному селектору середовища виконання.
|
||||
|
||||
## Поєднання постачальника й harness
|
||||
## Поєднання постачальника й обв’язки
|
||||
|
||||
Більшість harness також мають реєструвати постачальника. Постачальник робить посилання на моделі, статус автентифікації, метадані моделей і вибір `/model` видимими для решти OpenClaw. Потім harness заявляє про цей постачальник у `supports(...)`.
|
||||
Більшість обв’язок також мають реєструвати постачальника. Постачальник робить посилання на моделі, стан auth, метадані моделі й вибір `/model` видимими для решти OpenClaw. Потім обв’язка заявляє про цей постачальник у `supports(...)`.
|
||||
|
||||
Вбудований плагін Codex дотримується цього шаблону:
|
||||
Bundled plugin Codex дотримується цього шаблону:
|
||||
|
||||
- id постачальника: `codex`
|
||||
- посилання користувача на моделі: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, повернена сервером застосунку Codex
|
||||
- id harness: `codex`
|
||||
- автентифікація: синтетична доступність постачальника, оскільки harness Codex керує нативним входом/сесією Codex
|
||||
- запит до app-server: OpenClaw надсилає до Codex чистий id моделі й дозволяє harness взаємодіяти з нативним протоколом app-server
|
||||
- посилання користувацьких моделей: `codex/gpt-5.4`, `codex/gpt-5.2` або інша модель, яку повертає сервер застосунку Codex
|
||||
- id обв’язки: `codex`
|
||||
- auth: синтетична доступність постачальника, оскільки обв’язка Codex керує native входом/сесією Codex
|
||||
- запит до app-server: OpenClaw надсилає Codex базовий id моделі й дозволяє обв’язці спілкуватися з native протоколом app-server
|
||||
|
||||
Плагін Codex є додатковим. Звичайні посилання `openai/gpt-*` залишаються посиланнями постачальника OpenAI й продовжують використовувати звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні автентифікація під керуванням Codex, виявлення моделей Codex, нативні потоки та виконання через app-server Codex. `/model` може перемикатися між моделями Codex, які повертає app-server Codex, без потреби в облікових даних постачальника OpenAI.
|
||||
Plugin Codex є адитивним. Звичайні посилання `openai/gpt-*` залишаються посиланнями постачальника OpenAI і продовжують використовувати звичайний шлях постачальника OpenClaw. Вибирайте `codex/gpt-*`, коли вам потрібні auth під керуванням Codex, виявлення моделей Codex, native потоки та виконання через app-server Codex. `/model` може перемикатися між моделями Codex, які повертає app-server Codex, без потреби в облікових даних постачальника OpenAI.
|
||||
|
||||
Налаштування для операторів, приклади префіксів моделей і конфігурації лише для Codex див. у [Codex Harness](/uk/plugins/codex-harness).
|
||||
Щоб дізнатися про налаштування оператора, приклади префіксів моделей і конфігурації лише для Codex, див. [Обв’язка Codex](/uk/plugins/codex-harness).
|
||||
|
||||
OpenClaw вимагає Codex app-server версії `0.118.0` або новішої. Плагін Codex перевіряє handshake ініціалізації app-server і блокує старіші сервери або сервери без версії, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
OpenClaw вимагає Codex app-server `0.118.0` або новішої версії. Plugin Codex перевіряє initialize handshake app-server і блокує старіші або неверсіоновані сервери, щоб OpenClaw працював лише з тією поверхнею протоколу, з якою його було протестовано.
|
||||
|
||||
### Режим нативного Codex harness
|
||||
### Режим native обв’язки Codex
|
||||
|
||||
Вбудований harness `codex` — це нативний режим Codex для вбудованих ходів агента OpenClaw. Спочатку ввімкніть вбудований плагін `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/*` використовує вбудований постачальник Codex і спрямовує хід через app-server Codex.
|
||||
- `codex/*` використовує bundled постачальник Codex і маршрутизує хід через app-server Codex.
|
||||
|
||||
Коли цей режим працює, Codex керує нативним id потоку, поведінкою resume, компакцією та виконанням app-server. OpenClaw усе ще керує каналом чату, видимим дзеркалом транскрипту, політикою інструментів, підтвердженнями, доставленням медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли потрібно довести, що використовується шлях app-server Codex і що резервний перехід на PI не приховує несправний нативний harness.
|
||||
Коли цей режим працює, Codex керує native id потоку, поведінкою resume, Compaction і виконанням app-server. OpenClaw усе ще керує каналом чату, видимим дзеркалом транскрипту, політикою інструментів, схваленнями, доставкою медіа та вибором сесії. Використовуйте `embeddedHarness.runtime: "codex"` разом із `embeddedHarness.fallback: "none"`, коли вам потрібно довести, що лише шлях app-server Codex може заявити про виконання. Ця конфігурація є лише захистом вибору: збої app-server Codex і так завершуються помилкою напряму, а не повторною спробою через PI.
|
||||
|
||||
## Вимкнення резервного переходу на PI
|
||||
## Вимкнути fallback до PI
|
||||
|
||||
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, установленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані harness плагінів можуть заявляти про пару постачальник/модель. Якщо жоден не підходить або якщо автоматично вибраний harness плагіна завершується помилкою до появи результату, OpenClaw переходить на PI.
|
||||
За замовчуванням OpenClaw запускає вбудованих агентів із `agents.defaults.embeddedHarness`, встановленим у `{ runtime: "auto", fallback: "pi" }`. У режимі `auto` зареєстровані обв’язки plugin можуть заявляти про пару постачальник/модель. Якщо жодна не підходить, OpenClaw повертається до PI.
|
||||
|
||||
Установіть `fallback: "none"`, коли потрібно довести, що harness плагіна є єдиним середовищем виконання, яке використовується. Це вимикає автоматичний резервний перехід на PI; це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
Установіть `fallback: "none"`, коли вам потрібно, щоб відсутність вибору обв’язки plugin завершувалася помилкою замість використання PI. Збої вже вибраних обв’язок plugin і так призводять до жорсткої помилки. Це не блокує явний `runtime: "pi"` або `OPENCLAW_AGENT_RUNTIME=pi`.
|
||||
|
||||
Для вбудованих запусків лише з Codex:
|
||||
|
||||
@ -145,7 +145,7 @@ OpenClaw вимагає Codex app-server версії `0.118.0` або нові
|
||||
}
|
||||
```
|
||||
|
||||
Якщо ви хочете, щоб будь-який зареєстрований harness плагіна міг заявляти про відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно переходив на PI, залиште `runtime: "auto"` і вимкніть резервний перехід:
|
||||
Якщо ви хочете, щоб будь-яка зареєстрована обв’язка plugin могла заявляти про відповідні моделі, але ніколи не хочете, щоб OpenClaw непомітно повертався до PI, залиште `runtime: "auto"` і вимкніть fallback:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -160,7 +160,7 @@ OpenClaw вимагає Codex app-server версії `0.118.0` або нові
|
||||
}
|
||||
```
|
||||
|
||||
Перевизначення для окремих агентів використовують ту саму форму:
|
||||
Перевизначення для окремого агента використовують ту саму форму:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -185,7 +185,7 @@ OpenClaw вимагає Codex app-server версії `0.118.0` або нові
|
||||
}
|
||||
```
|
||||
|
||||
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване середовище виконання. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути резервний перехід на PI через середовище.
|
||||
`OPENCLAW_AGENT_RUNTIME` усе ще перевизначає налаштоване середовище виконання. Використовуйте `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, щоб вимкнути fallback до PI з оточення.
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -193,39 +193,39 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Якщо резервний перехід вимкнено, сесія завершується помилкою на ранньому етапі, коли запитаний harness не зареєстрований, не підтримує визначеного постачальника/модель або завершується помилкою до появи побічних ефектів ходу. Це зроблено навмисно для розгортань лише з Codex і для live-тестів, які мають довести, що шлях app-server Codex справді використовується.
|
||||
Якщо fallback вимкнено, сесія завершується помилкою рано, коли запитана обв’язка не зареєстрована, не підтримує визначеного постачальника/модель або завершується помилкою до створення побічних ефектів ходу. Це зроблено навмисно для розгортань лише з Codex і для live-тестів, які мають довести, що шлях app-server Codex справді використовується.
|
||||
|
||||
Це налаштування керує лише вбудованим harness агента. Воно не вимикає маршрутизацію моделей, специфічну для постачальників, для зображень, відео, музики, TTS, PDF або інших типів.
|
||||
Це налаштування керує лише вбудованою обв’язкою агента. Воно не вимикає маршрутизацію моделей постачальників для image, video, music, TTS, PDF або інших специфічних для постачальника типів.
|
||||
|
||||
## Нативні сесії та дзеркало транскрипту
|
||||
## Native сесії та дзеркало транскрипту
|
||||
|
||||
Harness може зберігати нативний id сесії, id потоку або токен resume на боці демона. Явно пов’язуйте таку прив’язку із сесією OpenClaw і продовжуйте дзеркалити видимий користувачу вивід асистента/інструментів у транскрипт OpenClaw.
|
||||
Обв’язка може зберігати native id сесії, id потоку або токен resume на боці демона. Явно пов’язуйте цю прив’язку із сесією OpenClaw і продовжуйте віддзеркалювати видимий для користувача вивід assistant/tool у транскрипт OpenClaw.
|
||||
|
||||
Транскрипт OpenClaw залишається шаром сумісності для:
|
||||
|
||||
- видимої в каналі історії сесії
|
||||
- пошуку та індексації транскриптів
|
||||
- повернення до вбудованого PI harness на наступному ході
|
||||
- загальної поведінки `/new`, `/reset` і видалення сесії
|
||||
- пошуку та індексації транскрипту
|
||||
- повернення до вбудованої обв’язки PI на пізнішому ході
|
||||
- узагальненої поведінки `/new`, `/reset` і видалення сесії
|
||||
|
||||
Якщо ваш harness зберігає побічну прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очищати її, коли пов’язану сесію OpenClaw скинуто.
|
||||
Якщо ваша обв’язка зберігає sidecar-прив’язку, реалізуйте `reset(...)`, щоб OpenClaw міг очистити її, коли пов’язану сесію OpenClaw скинуто.
|
||||
|
||||
## Результати інструментів і медіа
|
||||
|
||||
Ядро формує список інструментів OpenClaw і передає його в підготовлену спробу. Коли harness виконує динамічний виклик інструмента, повертайте результат інструмента через форму результату harness, а не надсилайте медіа в канал самостійно.
|
||||
Core формує список інструментів OpenClaw і передає його в підготовлену спробу. Коли обв’язка виконує динамічний виклик інструмента, повертайте результат інструмента назад через форму результату обв’язки замість того, щоб самостійно надсилати медіа в канал.
|
||||
|
||||
Це забезпечує, що текст, зображення, відео, музика, TTS, підтвердження та результати інструментів обміну повідомленнями доставляються тим самим шляхом, що й для запусків на основі PI.
|
||||
Це зберігає text, image, video, music, TTS, approval і виводи інструментів обміну повідомленнями на тому самому шляху доставки, що й для запусків на базі PI.
|
||||
|
||||
## Поточні обмеження
|
||||
|
||||
- Публічний шлях імпорту є загальним, але деякі псевдоніми типів спроб/результатів досі містять назви `Pi` для сумісності.
|
||||
- Установлення сторонніх harness є експериментальним. Віддавайте перевагу плагінам постачальників, доки вам не знадобиться нативне середовище виконання сесій.
|
||||
- Перемикання harness між ходами підтримується. Не перемикайте harness посеред ходу після того, як уже почалися нативні інструменти, підтвердження, текст асистента або надсилання повідомлень.
|
||||
- Публічний шлях імпорту є узагальненим, але деякі псевдоніми типів спроб/результатів усе ще містять назви `Pi` заради сумісності.
|
||||
- Встановлення сторонніх обв’язок є експериментальним. Надавайте перевагу plugin постачальників, доки вам не знадобиться native середовище виконання сесії.
|
||||
- Перемикання обв’язок між ходами підтримується. Не перемикайте обв’язки посеред ходу після того, як уже почалися native інструменти, схвалення, текст assistant або надсилання повідомлень.
|
||||
|
||||
## Пов’язані матеріали
|
||||
## Пов’язане
|
||||
|
||||
- [Огляд SDK](/uk/plugins/sdk-overview)
|
||||
- [Допоміжні засоби середовища виконання](/uk/plugins/sdk-runtime)
|
||||
- [Плагіни постачальників](/uk/plugins/sdk-provider-plugins)
|
||||
- [Codex Harness](/uk/plugins/codex-harness)
|
||||
- [Runtime Helpers](/uk/plugins/sdk-runtime)
|
||||
- [Plugin постачальника](/uk/plugins/sdk-provider-plugins)
|
||||
- [Обв’язка Codex](/uk/plugins/codex-harness)
|
||||
- [Постачальники моделей](/uk/concepts/model-providers)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user