chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-24 07:33:05 +00:00
parent 025f1b0acb
commit a3f3c55d7f
2 changed files with 246 additions and 243 deletions

View File

@ -1,26 +1,26 @@
---
read_when:
- Ви хочете автоматизацію на основі подій для `/new`, `/reset`, `/stop` і подій життєвого циклу агента
- Вам потрібна автоматизація на основі подій для `/new`, `/reset`, `/stop` і подій життєвого циклу агента
- Ви хочете створювати, встановлювати або налагоджувати хуки
summary: 'Хуки: автоматизація на основі подій для команд і подій життєвого циклу'
title: Хуки
x-i18n:
generated_at: "2026-04-24T03:06:56Z"
generated_at: "2026-04-24T07:31:28Z"
model: gpt-5.4
provider: openai
source_hash: 9e24d5a95748151059e34f8c9ff9910dbcd7a32e7cadb44d1fa25352ef3a09a6
source_hash: 4e6246f25272208d9a9ff2f186bcd3a463c78ea24b833f0259174d0f7f0cbea6
source_path: automation/hooks.md
workflow: 15
---
Хуки — це невеликі скрипти, які запускаються, коли щось відбувається всередині Gateway. Їх можна виявляти з директорій і переглядати за допомогою `openclaw hooks`. Gateway завантажує внутрішні хуки лише після того, як ви ввімкнете хуки або налаштуєте принаймні один запис хука, hook pack, застарілий обробник чи додаткову директорію хуків.
Хуки — це невеликі скрипти, які запускаються, коли щось відбувається всередині Gateway. Їх можна виявляти з директорій і переглядати через `openclaw hooks`. Gateway завантажує внутрішні хуки лише після того, як ви ввімкнете хуки або налаштуєте принаймні один запис хука, hook pack, застарілий обробник чи додаткову директорію хуків.
В OpenClaw є два типи хуків:
В OpenClaw є два види хуків:
- **Внутрішні хуки** (ця сторінка): запускаються всередині Gateway, коли спрацьовують події агента, як-от `/new`, `/reset`, `/stop` або події життєвого циклу.
- **Внутрішні хуки** (ця сторінка): запускаються всередині Gateway, коли спрацьовують події агента, наприклад `/new`, `/reset`, `/stop` або події життєвого циклу.
- **Webhooks**: зовнішні HTTP-ендпоїнти, які дозволяють іншим системам запускати роботу в OpenClaw. Див. [Webhooks](/uk/automation/cron-jobs#webhooks).
Хуки також можуть постачатися в складі плагінів. `openclaw hooks list` показує як окремі хуки, так і хуки, керовані плагінами.
Хуки також можуть постачатися всередині плагінів. `openclaw hooks list` показує як окремі хуки, так і хуки, керовані плагінами.
## Швидкий старт
@ -31,30 +31,30 @@ openclaw hooks list
# Увімкнути хук
openclaw hooks enable session-memory
# Перевірити статус хуків
# Перевірити стан хуків
openclaw hooks check
# Отримати докладну інформацію
# Отримати детальну інформацію
openclaw hooks info session-memory
```
## Типи подій
| Подія | Коли спрацьовує |
| ------------------------ | --------------------------------------------- |
| `command:new` | Видано команду `/new` |
| `command:reset` | Видано команду `/reset` |
| `command:stop` | Видано команду `/stop` |
| `command` | Будь-яка подія команди (загальний слухач) |
| `session:compact:before` | До того, як Compaction узагальнює історію |
| `session:compact:after` | Після завершення Compaction |
| `session:patch` | Коли властивості сесії змінено |
| `agent:bootstrap` | До впровадження bootstrap-файлів робочого простору |
| `gateway:startup` | Після запуску каналів і завантаження хуків |
| `message:received` | Вхідне повідомлення з будь-якого каналу |
| `message:transcribed` | Після завершення транскрибування аудіо |
| Подія | Коли спрацьовує |
| ------------------------ | ----------------------------------------------- |
| `command:new` | Виконано команду `/new` |
| `command:reset` | Виконано команду `/reset` |
| `command:stop` | Виконано команду `/stop` |
| `command` | Будь-яка подія команди (загальний слухач) |
| `session:compact:before` | Перед тим, як Compaction узагальнює історію |
| `session:compact:after` | Після завершення Compaction |
| `session:patch` | Коли властивості сесії змінюються |
| `agent:bootstrap` | Перед інʼєкцією bootstrap-файлів робочої області |
| `gateway:startup` | Після запуску каналів і завантаження хуків |
| `message:received` | Вхідне повідомлення з будь-якого каналу |
| `message:transcribed` | Після завершення транскрибування аудіо |
| `message:preprocessed` | Після завершення обробки всіх медіа та посилань |
| `message:sent` | Вихідне повідомлення доставлено |
| `message:sent` | Вихідне повідомлення доставлено |
## Написання хуків
@ -80,19 +80,19 @@ metadata:
# My Hook
Тут міститься докладна документація.
Тут розміщується докладна документація.
```
**Поля метаданих** (`metadata.openclaw`):
| Поле | Опис |
| Поле | Опис |
| ---------- | ---------------------------------------------------- |
| `emoji` | Емодзі для відображення в CLI |
| `emoji` | Emoji для відображення в CLI |
| `events` | Масив подій, які потрібно слухати |
| `export` | Іменований експорт для використання (типово `"default"`) |
| `os` | Обов’язкові платформи (наприклад, `["darwin", "linux"]`) |
| `requires` | Обовязкові `bins`, `anyBins`, `env` або шляхи `config` |
| `always` | Обійти перевірки придатності (boolean) |
| `os` | Потрібні платформи (наприклад, `["darwin", "linux"]`) |
| `requires` | Обовʼязкові `bins`, `anyBins`, `env` або шляхи `config` |
| `always` | Обходити перевірки придатності (boolean) |
| `install` | Методи встановлення |
### Реалізація обробника
@ -113,9 +113,9 @@ const handler = async (event) => {
export default handler;
```
Кожна подія містить: `type`, `action`, `sessionKey`, `timestamp`, `messages` (додавайте через push, щоб надіслати користувачу), і `context` (дані, специфічні для події).
Кожна подія містить: `type`, `action`, `sessionKey`, `timestamp`, `messages` (додавайте через push, щоб надіслати користувачу), і `context` (дані, специфічні для події). Контексти хуків агентів і tool plugin також можуть містити `trace` — контекст діагностичного трасування лише для читання, сумісний із W3C, який плагіни можуть передавати у структуровані логи для кореляції OTEL.
### Основні моменти щодо контексту подій
### Основні моменти контексту подій
**Події команд** (`command:new`, `command:reset`): `context.sessionEntry`, `context.previousSessionEntry`, `context.commandSource`, `context.workspaceDir`, `context.cfg`.
@ -135,37 +135,37 @@ export default handler;
## Виявлення хуків
Хуки виявляються в таких директоріях, у порядку зростання пріоритету перевизначення:
Хуки виявляються з таких директорій у порядку зростання пріоритету перевизначення:
1. **Вбудовані хуки**: постачаються з OpenClaw
2. **Хуки плагінів**: хуки, що постачаються у складі встановлених плагінів
3. **Керовані хуки**: `~/.openclaw/hooks/` (встановлені користувачем, спільні для всіх робочих просторів). Додаткові директорії з `hooks.internal.load.extraDirs` мають такий самий пріоритет.
4. **Хуки робочого простору**: `<workspace>/hooks/` (для окремого агента, типово вимкнені, доки не будуть явно ввімкнені)
2. **Хуки плагінів**: хуки, вбудовані у встановлені плагіни
3. **Керовані хуки**: `~/.openclaw/hooks/` (встановлені користувачем, спільні для всіх робочих областей). Додаткові директорії з `hooks.internal.load.extraDirs` мають той самий пріоритет.
4. **Хуки робочої області**: `<workspace>/hooks/` (для кожного агента окремо, типово вимкнені, доки їх явно не ввімкнути)
Хуки робочого простору можуть додавати нові назви хуків, але не можуть перевизначати вбудовані, керовані або надані плагінами хуки з тією самою назвою.
Хуки робочої області можуть додавати нові назви хуків, але не можуть перевизначати вбудовані, керовані або надані плагінами хуки з тією самою назвою.
Gateway пропускає виявлення внутрішніх хуків під час запуску, доки внутрішні хуки не налаштовані. Увімкніть вбудований або керований хук через `openclaw hooks enable <name>`, встановіть hook pack або задайте `hooks.internal.enabled=true`, щоб долучитися. Коли ви вмикаєте один іменований хук, Gateway завантажує лише обробник цього хука; `hooks.internal.enabled=true`, додаткові директорії хуків і застарілі обробники вмикають широке виявлення.
Gateway пропускає виявлення внутрішніх хуків під час запуску, доки внутрішні хуки не налаштовані. Увімкніть вбудований або керований хук через `openclaw hooks enable <name>`, встановіть hook pack або встановіть `hooks.internal.enabled=true`, щоб долучитися. Коли ви вмикаєте один іменований хук, Gateway завантажує лише обробник цього хука; `hooks.internal.enabled=true`, додаткові директорії хуків і застарілі обробники вмикають широке виявлення.
### Hook packs
### Hook pack
Hook packs — це npm-пакети, які експортують хуки через `openclaw.hooks` у `package.json`. Встановлення:
Hook pack — це npm-пакети, які експортують хуки через `openclaw.hooks` у `package.json`. Встановлення:
```bash
openclaw plugins install <path-or-spec>
```
Npm-специфікації підтримуються лише для реєстру (назва пакета + необов’язкова точна версія або dist-tag). Специфікації Git/URL/file і діапазони semver відхиляються.
Npm-специфікації підтримуються лише для реєстру (назва пакета + необовʼязкова точна версія або dist-tag). Git/URL/file-специфікації та діапазони semver відхиляються.
## Вбудовані хуки
| Хук | Події | Що робить |
| -------------------- | ------------------------------ | ----------------------------------------------------- |
| session-memory | `command:new`, `command:reset` | Зберігає контекст сесії в `<workspace>/memory/` |
| bootstrap-extra-files | `agent:bootstrap` | Впроваджує додаткові bootstrap-файли за glob-шаблонами |
| command-logger | `command` | Логує всі команди в `~/.openclaw/logs/commands.log` |
| boot-md | `gateway:startup` | Запускає `BOOT.md` під час старту gateway |
| Хук | Події | Що робить |
| --------------------- | ------------------------------ | ----------------------------------------------------- |
| session-memory | `command:new`, `command:reset` | Зберігає контекст сесії до `<workspace>/memory/` |
| bootstrap-extra-files | `agent:bootstrap` | Інʼєктує додаткові bootstrap-файли за glob-шаблонами |
| command-logger | `command` | Логує всі команди до `~/.openclaw/logs/commands.log` |
| boot-md | `gateway:startup` | Запускає `BOOT.md`, коли запускається gateway |
Увімкнути будь-який вбудований хук:
Увімкнення будь-якого вбудованого хука:
```bash
openclaw hooks enable <hook-name>
@ -175,7 +175,7 @@ openclaw hooks enable <hook-name>
### Докладніше про session-memory
Витягує останні 15 повідомлень користувача/асистента, генерує описовий slug імені файлу через LLM і зберігає у `<workspace>/memory/YYYY-MM-DD-slug.md`. Потрібно, щоб було налаштовано `workspace.dir`.
Витягує останні 15 повідомлень користувача/асистента, генерує описовий slug імені файла через LLM і зберігає в `<workspace>/memory/YYYY-MM-DD-slug.md`. Потрібно, щоб було налаштовано `workspace.dir`.
<a id="bootstrap-extra-files"></a>
@ -196,23 +196,23 @@ openclaw hooks enable <hook-name>
}
```
Шляхи розв’язуються відносно робочого простору. Завантажуються лише розпізнавані bootstrap-базові імена (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, `MEMORY.md`).
Шляхи обчислюються відносно робочої області. Завантажуються лише розпізнані bootstrap-базові імена (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, `MEMORY.md`).
<a id="command-logger"></a>
### Докладніше про command-logger
Логує кожну slash-команду в `~/.openclaw/logs/commands.log`.
Логує кожну slash-команду до `~/.openclaw/logs/commands.log`.
<a id="boot-md"></a>
### Докладніше про boot-md
Запускає `BOOT.md` з активного робочого простору під час старту gateway.
Запускає `BOOT.md` з активної робочої області під час запуску gateway.
## Хуки плагінів
Плагіни можуть реєструвати хуки через Plugin SDK для глибшої інтеграції: перехоплення викликів інструментів, змінення промптів, керування потоком повідомлень тощо. Plugin SDK надає 28 хуків, що охоплюють визначення моделі, життєвий цикл агента, потік повідомлень, виконання інструментів, координацію підагентів і життєвий цикл gateway.
Плагіни можуть реєструвати хуки через Plugin SDK для глибшої інтеграції: перехоплення викликів інструментів, модифікації промптів, керування потоком повідомлень тощо. Plugin SDK надає 28 хуків, що охоплюють визначення моделі, життєвий цикл агента, потік повідомлень, виконання інструментів, координацію субагентів і життєвий цикл gateway.
Повний довідник хуків плагінів, включно з `before_tool_call`, `before_agent_reply`, `before_install` та всіма іншими хуками плагінів, див. у [Plugin Architecture](/uk/plugins/architecture-internals#provider-runtime-hooks).
@ -264,7 +264,7 @@ openclaw hooks enable <hook-name>
```
<Note>
Застарілий формат конфігурації масиву `hooks.internal.handlers` і далі підтримується для зворотної сумісності, але нові хуки мають використовувати систему на основі виявлення.
Застарілий формат конфігурації масиву `hooks.internal.handlers` усе ще підтримується для зворотної сумісності, але нові хуки мають використовувати систему на основі виявлення.
</Note>
## Довідник CLI
@ -273,10 +273,10 @@ openclaw hooks enable <hook-name>
# Перелічити всі хуки (додайте --eligible, --verbose або --json)
openclaw hooks list
# Показати докладну інформацію про хук
# Показати детальну інформацію про хук
openclaw hooks info <hook-name>
# Показати зведення щодо придатності
# Показати зведення придатності
openclaw hooks check
# Увімкнути/вимкнути
@ -286,12 +286,12 @@ openclaw hooks disable <hook-name>
## Найкращі практики
- **Тримайте обробники швидкими.** Хуки запускаються під час обробки команд. Для важкої роботи використовуйте fire-and-forget через `void processInBackground(event)`.
- **Коректно обробляйте помилки.** Обгортайте ризиковані операції в try/catch; не викидайте винятки, щоб інші обробники могли виконатися.
- **Фільтруйте події на ранньому етапі.** Одразу повертайтеся, якщо тип/дія події не є релевантними.
- **Використовуйте конкретні ключі подій.** Віддавайте перевагу `"events": ["command:new"]` замість `"events": ["command"]`, щоб зменшити накладні витрати.
- **Тримайте обробники швидкими.** Хуки виконуються під час обробки команд. Запускайте важку роботу у фоновому режимі через `void processInBackground(event)`.
- **Коректно обробляйте помилки.** Обгортайте ризиковані операції в try/catch; не кидайте винятки, щоб інші обробники теж могли виконатися.
- **Фільтруйте події якомога раніше.** Одразу повертайтеся, якщо тип/дія події не є релевантними.
- **Використовуйте конкретні ключі подій.** Надавайте перевагу `"events": ["command:new"]` замість `"events": ["command"]`, щоб зменшити накладні витрати.
## Усунення несправностей
## Усунення проблем
### Хук не виявляється
@ -318,7 +318,7 @@ openclaw hooks info my-hook
2. Перезапустіть процес gateway, щоб хуки перезавантажилися.
3. Перевірте логи gateway: `./scripts/clawlog.sh | grep hook`
## Повязане
## Повʼязане
- [Довідник CLI: hooks](/uk/cli/hooks)
- [Webhooks](/uk/automation/cron-jobs#webhooks)

View File

@ -1,115 +1,114 @@
---
read_when:
- Ви хочете використовувати вбудований harness app-server Codex
- Ви хочете використовувати комплектний app-server harness Codex
- Вам потрібні посилання на моделі Codex і приклади конфігурації
- Ви хочете вимкнути резервний перехід до PI для розгортань лише з Codex
summary: Запускайте ходи вбудованого агента OpenClaw через вбудований harness app-server Codex
title: Harness Codex
- Ви хочете вимкнути резервний перехід на PI для розгортань лише з Codex
summary: Запустіть вбудовані ходи агента OpenClaw через комплектний app-server harness Codex
title: harness Codex
x-i18n:
generated_at: "2026-04-24T04:17:40Z"
generated_at: "2026-04-24T07:31:32Z"
model: gpt-5.4
provider: openai
source_hash: 095933d2c32df302c312c67fdc266d2f01b552dddb1607d6e4ecc4f3c3326acf
source_hash: c02b1e6cbaaefee858db7ebd7e306261683278ed9375bca6fe74855ca84eabd8
source_path: plugins/codex-harness.md
workflow: 15
---
Вбудований Plugin `codex` дає OpenClaw змогу запускати ходи вбудованого агента через
app-server Codex замість вбудованого harness PI.
Комплектний Plugin `codex` дає змогу OpenClaw запускати вбудовані ходи агента через Codex app-server замість вбудованого harness PI.
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням
моделей, нативним відновленням thread, нативною Compaction і виконанням app-server.
OpenClaw і далі керує чат-каналами, файлами сесій, вибором моделей, інструментами,
погодженнями, доставкою медіа та видимим дзеркалом transcript.
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням моделей, нативним відновленням потоку, нативним Compaction і виконанням app-server.
OpenClaw, як і раніше, керує чат-каналами, файлами сесій, вибором моделей, інструментами,
схваленнями, доставкою медіа та видимим дзеркалом транскрипту.
Нативні ходи Codex зберігають hooks Plugin OpenClaw як публічний шар сумісності.
Це внутрішньопроцесні hooks OpenClaw, а не командні hooks Codex `hooks.json`:
Нативні ходи Codex зберігають хуки Plugin OpenClaw як публічний шар сумісності.
Це внутрішньопроцесні хуки OpenClaw, а не командні хуки Codex `hooks.json`:
- `before_prompt_build`
- `before_compaction`, `after_compaction`
- `llm_input`, `llm_output`
- `after_tool_call`
- `before_message_write` для дзеркальних записів transcript
- `before_message_write` для дзеркальних записів транскрипту
- `agent_end`
Вбудовані plugins також можуть реєструвати factory extension app-server Codex, щоб додавати
асинхронний middleware `tool_result`. Цей middleware працює для динамічних інструментів OpenClaw
після того, як OpenClaw виконає інструмент, і до того, як результат буде повернено в Codex. Він
є окремим від публічного hook Plugin `tool_result_persist`, який перетворює записи результатів інструментів у transcript, що належать OpenClaw.
Комплектні Plugins також можуть реєструвати фабрику розширення Codex app-server, щоб додавати
асинхронне проміжне ПЗ `tool_result`. Це проміжне ПЗ виконується для динамічних інструментів OpenClaw
після того, як OpenClaw виконає інструмент, і до того, як результат буде повернено в Codex. Воно
відокремлене від публічного хука Plugin `tool_result_persist`, який перетворює записи
результатів інструментів у транскрипті, якими керує OpenClaw.
Harness типово вимкнений. Нові конфігурації мають зберігати канонічні посилання на моделі OpenAI у форматі `openai/gpt-*` і явно примусово задавати
За замовчуванням harness вимкнений. У нових конфігураціях слід зберігати посилання на моделі OpenAI
канонічними як `openai/gpt-*` і явно примусово вказувати
`embeddedHarness.runtime: "codex"` або `OPENCLAW_AGENT_RUNTIME=codex`, коли
потрібне нативне виконання app-server. Застарілі посилання на моделі `codex/*` і далі автоматично вибирають
harness для сумісності.
потрібне нативне виконання через app-server. Застарілі посилання на моделі `codex/*` і надалі
автоматично вибирають harness для сумісності.
## Виберіть правильний префікс моделі
Маршрути сімейства OpenAI залежать від префікса. Використовуйте `openai-codex/*`, коли вам потрібен
Codex OAuth через PI; використовуйте `openai/*`, коли вам потрібен прямий доступ до OpenAI API або
коли ви примусово використовуєте нативний harness app-server Codex:
Маршрути сімейства OpenAI залежать від префікса. Використовуйте `openai-codex/*`, коли потрібна
автентифікація Codex OAuth через PI; використовуйте `openai/*`, коли потрібен прямий доступ до OpenAI API або
коли ви примусово використовуєте нативний harness Codex app-server:
| Посилання на модель | Шлях runtime | Використовуйте, коли |
| ----------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------- |
| `openai/gpt-5.4` | Провайдер OpenAI через plumbing OpenClaw/PI | Вам потрібен поточний прямий доступ до OpenAI Platform API з `OPENAI_API_KEY`. |
| `openai-codex/gpt-5.5` | OpenAI Codex OAuth через OpenClaw/PI | Вам потрібна автентифікація підписки ChatGPT/Codex із типовим runner PI. |
| `openai/gpt-5.5` + `embeddedHarness.runtime: "codex"` | Harness app-server Codex | Вам потрібне нативне виконання app-server Codex для ходу вбудованого агента. |
| Посилання на модель | Шлях виконання | Використовуйте, коли |
| ----------------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------- |
| `openai/gpt-5.4` | Провайдер OpenAI через зв’язку OpenClaw/PI | Вам потрібен поточний прямий доступ до OpenAI Platform API з `OPENAI_API_KEY`. |
| `openai-codex/gpt-5.5` | OpenAI Codex OAuth через OpenClaw/PI | Вам потрібна автентифікація підписки ChatGPT/Codex із типовим раннером PI. |
| `openai/gpt-5.5` + `embeddedHarness.runtime: "codex"` | harness Codex app-server | Вам потрібне нативне виконання через Codex app-server для вбудованого ходу агента. |
GPT-5.5 зараз в OpenClaw доступна лише через підписку/OAuth. Використовуйте
`openai-codex/gpt-5.5` для PI OAuth або `openai/gpt-5.5` з harness
app-server Codex. Прямий доступ за API-ключем для `openai/gpt-5.5` підтримуватиметься,
Наразі GPT-5.5 в OpenClaw доступний лише через підписку/OAuth. Використовуйте
`openai-codex/gpt-5.5` для PI OAuth або `openai/gpt-5.5` із harness
Codex app-server. Прямий доступ за API-ключем для `openai/gpt-5.5` підтримуватиметься,
щойно OpenAI увімкне GPT-5.5 у публічному API.
Застарілі посилання `codex/gpt-*` і далі приймаються як псевдоніми сумісності. Нові конфігурації
PI Codex OAuth мають використовувати `openai-codex/gpt-*`; нові конфігурації нативного
harness app-server мають використовувати `openai/gpt-*` плюс `embeddedHarness.runtime:
Застарілі посилання `codex/gpt-*` залишаються прийнятними як псевдоніми сумісності. Нові конфігурації
PI Codex OAuth повинні використовувати `openai-codex/gpt-*`; нові конфігурації
нативного harness app-server повинні використовувати `openai/gpt-*` разом із `embeddedHarness.runtime:
"codex"`.
`agents.defaults.imageModel` використовує той самий поділ за префіксами. Використовуйте
`agents.defaults.imageModel` дотримується того самого поділу за префіксами. Використовуйте
`openai-codex/gpt-*`, коли розуміння зображень має виконуватися через шлях провайдера OpenAI
Codex OAuth. Використовуйте `codex/gpt-*`, коли розуміння зображень має виконуватися
через обмежений хід app-server Codex. Модель app-server Codex має
заявляти підтримку введення зображень; текстові моделі Codex завершуються невдачею до
початку медіа-ходу.
через обмежений хід Codex app-server. Модель Codex app-server повинна
заявляти підтримку вхідних зображень; текстові моделі Codex завершуються помилкою ще до початку
медіа-ходу.
Використовуйте `/status`, щоб підтвердити фактичний harness для поточної сесії. Якщо
вибір виглядає неочікуваним, увімкніть debug-логування для підсистеми `agents/harness`
Використовуйте `/status`, щоб підтвердити ефективний harness для поточної сесії. Якщо
вибір виглядає неочікуваним, увімкніть налагоджувальне логування для підсистеми `agents/harness`
і перевірте структурований запис gateway `agent harness selected`. Він
містить ідентифікатор вибраного harness, причину вибору, політику runtime/fallback і,
у режимі `auto`, результат підтримки для кожного кандидата Plugin.
Вибір harness не є елементом керування live-сесією. Коли виконується вбудований хід,
OpenClaw записує ідентифікатор вибраного harness у цю сесію й продовжує використовувати його для
наступних ходів у тому самому ідентифікаторі сесії. Змінюйте конфігурацію `embeddedHarness` або
Вибір harness не є елементом керування живою сесією. Коли вбудований хід виконується,
OpenClaw записує ідентифікатор вибраного harness у цю сесію та продовжує використовувати його для
наступних ходів у межах того самого ідентифікатора сесії. Змінюйте конфігурацію `embeddedHarness` або
`OPENCLAW_AGENT_RUNTIME`, коли хочете, щоб майбутні сесії використовували інший harness;
використовуйте `/new` або `/reset`, щоб почати нову сесію перед перемиканням
наявної розмови між PI та Codex. Це дає змогу уникнути повторного програвання одного transcript через
використовуйте `/new` або `/reset`, щоб почати нову сесію перед перемиканням наявної
розмови між PI і Codex. Це дає змогу уникнути повторного відтворення одного транскрипту через
дві несумісні нативні системи сесій.
Застарілі сесії, створені до закріплення harness, вважаються закріпленими за PI, щойно в них
з’являється історія transcript. Використовуйте `/new` або `/reset`, щоб перевести цю розмову на
Застарілі сесії, створені до прив’язок harness, вважаються прив’язаними до PI, щойно вони
мають історію транскрипту. Використовуйте `/new` або `/reset`, щоб перевести цю розмову на
Codex після зміни конфігурації.
`/status` показує фактичний не-PI harness поруч із `Fast`, наприклад
`Fast · codex`. Типовий harness PI як і раніше показується як `Runner: pi (embedded)` і
не додає окремий badge harness.
`/status` показує ефективний не-PI harness поруч із `Fast`, наприклад
`Fast · codex`. Типовий harness PI залишається `Runner: pi (embedded)` і
не додає окремий бейдж harness.
## Вимоги
- OpenClaw із доступним вбудованим Plugin `codex`.
- App-server Codex версії `0.118.0` або новішої.
- Автентифікація Codex, доступна для процесу app-server.
- OpenClaw із доступним комплектним Plugin `codex`.
- 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`, а також із
необов’язкових файлів CLI Codex, таких як `~/.codex/auth.json` і
`~/.codex/config.toml`. Використовуйте ті самі матеріали автентифікації, які використовує ваш локальний
app-server Codex.
необов’язкових файлів Codex CLI, таких як `~/.codex/auth.json` і
`~/.codex/config.toml`. Використовуйте ті самі дані автентифікації, що й ваш локальний Codex app-server.
## Мінімальна конфігурація
Використовуйте `openai/gpt-5.5`, увімкніть вбудований Plugin і примусово задайте harness `codex`:
Використовуйте `openai/gpt-5.5`, увімкніть комплектний Plugin і примусово вкажіть harness `codex`:
```json5
{
@ -132,7 +131,7 @@ app-server Codex.
}
```
Якщо у вашій конфігурації використовується `plugins.allow`, також додайте туди `codex`:
Якщо ваша конфігурація використовує `plugins.allow`, додайте туди також `codex`:
```json5
{
@ -148,14 +147,14 @@ app-server Codex.
```
Застарілі конфігурації, які встановлюють `agents.defaults.model` або модель агента в
`codex/<model>`, і далі автоматично вмикають вбудований Plugin `codex`. Нові конфігурації
мають надавати перевагу `openai/<model>` плюс явний запис `embeddedHarness`, наведений вище.
`codex/<model>`, і надалі автоматично вмикають комплектний Plugin `codex`. Нові конфігурації мають
віддавати перевагу `openai/<model>` разом із явним записом `embeddedHarness`, наведеним вище.
## Додайте Codex без заміни інших моделей
Залишайте `runtime: "auto"`, коли хочете, щоб застарілі посилання `codex/*` вибирали Codex, а
PI — усе інше. Для нових конфігурацій надавайте перевагу явному `runtime: "codex"` для
агентів, які мають використовувати harness.
Залишайте `runtime: "auto"`, якщо хочете, щоб застарілі посилання `codex/*` вибирали Codex, а
PI — для всього іншого. Для нових конфігурацій надавайте перевагу явному `runtime: "codex"` для
агентів, які мають використовувати цей harness.
```json5
{
@ -187,13 +186,13 @@ PI — усе інше. Для нових конфігурацій надава
За такої форми:
- `/model gpt` або `/model openai/gpt-5.5` використовує harness app-server Codex для цієї конфігурації.
- `/model gpt` або `/model openai/gpt-5.5` використовує harness Codex app-server для цієї конфігурації.
- `/model opus` використовує шлях провайдера Anthropic.
- Якщо вибрано модель не Codex, PI лишається harness сумісності.
- Якщо вибрано не-Codex модель, PI залишається harness сумісності.
## Розгортання лише з Codex
Вимкніть fallback до PI, коли потрібно гарантувати, що кожен хід вбудованого агента використовує
Вимкніть fallback на PI, коли потрібно гарантувати, що кожен вбудований хід агента використовує
harness Codex:
```json5
@ -218,12 +217,12 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
openclaw gateway run
```
Коли fallback вимкнено, OpenClaw завершується невдачею на ранньому етапі, якщо Plugin Codex вимкнено,
app-server занадто старий або app-server не може запуститися.
Коли fallback вимкнено, OpenClaw завершується помилкою на ранньому етапі, якщо Plugin Codex вимкнено,
app-server надто старий або app-server не вдається запустити.
## Codex для окремого агента
Ви можете зробити один агент лише з Codex, тоді як типовий агент збереже звичайний
Ви можете зробити один агент лише для Codex, тоді як агент за замовчуванням зберігатиме звичайний
автовибір:
```json5
@ -256,14 +255,14 @@ app-server занадто старий або app-server не може запу
```
Використовуйте звичайні команди сесії для перемикання агентів і моделей. `/new` створює нову
сесію OpenClaw, а harness Codex за потреби створює або відновлює свій sidecar
thread app-server. `/reset` очищає прив’язку сесії OpenClaw для цього thread
і дає наступному ходу знову визначити harness із поточної конфігурації.
сесію OpenClaw, а harness Codex за потреби створює або відновлює свій sidecar-потік app-server.
`/reset` очищує прив’язку сесії OpenClaw для цього потоку й дозволяє наступному ходу знову
визначити harness із поточної конфігурації.
## Виявлення моделей
Типово Plugin Codex запитує в app-server доступні моделі. Якщо
виявлення завершується невдачею або перевищує тайм-аут, використовується вбудований резервний каталог для:
За замовчуванням Plugin Codex запитує в app-server доступні моделі. Якщо
виявлення завершується помилкою або перевищує час очікування, він використовує комплектний резервний каталог для:
- GPT-5.5
- GPT-5.4 mini
@ -289,7 +288,7 @@ thread app-server. `/reset` очищає прив’язку сесії OpenClaw
}
```
Вимкніть виявлення, коли хочете, щоб під час запуску не виконувалась probe Codex і використовувався
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалося зондування Codex і використовувався
резервний каталог:
```json5
@ -309,21 +308,21 @@ thread app-server. `/reset` очищає прив’язку сесії OpenClaw
}
```
## Підключення до app-server і політика
## З’єднання з app-server і політика
Типово Plugin запускає Codex локально так:
За замовчуванням Plugin запускає Codex локально так:
```bash
codex app-server --listen stdio://
```
Типово OpenClaw запускає локальні сесії harness Codex у режимі YOLO:
За замовчуванням OpenClaw запускає локальні сесії harness Codex у режимі YOLO:
`approvalPolicy: "never"`, `approvalsReviewer: "user"` і
`sandbox: "danger-full-access"`. Це поза довіри локального оператора, яка використовується
для автономних Heartbeat: Codex може використовувати shell- і мережеві інструменти без
зупинки на нативних запитах погодження, на які нікому відповісти.
`sandbox: "danger-full-access"`. Це поза довіри для локального оператора, що використовується
для автономних Heartbeat: Codex може використовувати shell і мережеві інструменти без
зупинки на нативних запитах підтвердження, на які нікому відповісти.
Щоб увімкнути погодження Codex, переглянуті Guardian, установіть `appServer.mode:
Щоб увімкнути перевірювані Guardian схвалення Codex, установіть `appServer.mode:
"guardian"`:
```json5
@ -344,11 +343,11 @@ codex app-server --listen stdio://
}
```
Guardian — це нативний reviewer погоджень Codex. Коли Codex просить вийти за межі sandbox, записати поза workspace або додати дозволи, як-от доступ до мережі, Codex маршрутизує цей запит на погодження до субагента-рецензента замість запиту людині. Reviewer застосовує систему оцінки ризиків Codex і схвалює або відхиляє конкретний запит. Використовуйте Guardian, коли вам потрібні суворіші запобіжники, ніж у режимі YOLO, але при цьому потрібно, щоб агенти без нагляду могли просуватися далі.
Guardian — це нативний рецензент схвалень Codex. Коли Codex просить вийти із sandbox, записувати поза межами workspace або додати дозволи, як-от мережевий доступ, Codex спрямовує цей запит на схвалення до субагента-рецензента замість запиту людині. Рецензент застосовує модель ризиків Codex і схвалює або відхиляє конкретний запит. Використовуйте Guardian, коли вам потрібно більше запобіжників, ніж у режимі YOLO, але все ж потрібні агенти без нагляду, які можуть просуватися далі.
Пресет `guardian` розгортається в `approvalPolicy: "on-request"`, `approvalsReviewer: "guardian_subagent"` і `sandbox: "workspace-write"`. Окремі поля політики, як і раніше, перевизначають `mode`, тож у складних розгортаннях можна поєднувати пресет з явними налаштуваннями.
Набір `guardian` розгортається в `approvalPolicy: "on-request"`, `approvalsReviewer: "guardian_subagent"` і `sandbox: "workspace-write"`. Окремі поля політики, як і раніше, мають пріоритет над `mode`, тому розширені розгортання можуть поєднувати цей набір із явними виборами.
Для уже запущеного app-server використовуйте транспорт WebSocket:
Для вже запущеного app-server використовуйте транспорт WebSocket:
```json5
{
@ -372,22 +371,22 @@ Guardian — це нативний reviewer погоджень Codex. Коли C
Підтримувані поля `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. |
| `mode` | `"yolo"` | Пресет для виконання в режимі YOLO або з погодженнями, переглянутими Guardian. |
| `approvalPolicy` | `"never"` | Нативна політика погоджень Codex, яка надсилається під час start/resume/turn thread. |
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, який надсилається під час start/resume thread. |
| `approvalsReviewer`| `"user"` | Використовуйте `"guardian_subagent"`, щоб дозволити Guardian Codex переглядати запити. |
| `serviceTier` | не встановлено | Необов’язковий рівень сервісу app-server Codex: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
| Поле | Типове значення | Значення |
| ------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| `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. |
| `mode` | `"yolo"` | Набір параметрів для виконання в режимі YOLO або з перевіркою Guardian. |
| `approvalPolicy` | `"never"` | Нативна політика схвалення Codex, яка надсилається під час запуску/відновлення потоку/ходу. |
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, який надсилається під час запуску/відновлення потоку. |
| `approvalsReviewer` | `"user"` | Використовуйте `"guardian_subagent"`, щоб дозволити Codex Guardian перевіряти запити. |
| `serviceTier` | не встановлено | Необов’язковий рівень сервісу Codex app-server: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
Старіші змінні середовища і далі працюють як резервні варіанти для локального тестування, коли
Старі змінні середовища все ще працюють як резервні варіанти для локального тестування, коли
відповідне поле конфігурації не встановлено:
- `OPENCLAW_CODEX_APP_SERVER_BIN`
@ -396,11 +395,11 @@ Guardian — це нативний reviewer погоджень Codex. Коли C
- `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.
відтворюваних розгортань перевага надається конфігурації, оскільки вона зберігає поведінку Plugin в тому
самому файлі, що пройшов перевірку, що й решта налаштувань harness Codex.
## Поширені рецепти
@ -418,7 +417,7 @@ Guardian — це нативний reviewer погоджень Codex. Коли C
}
```
Перевірка harness лише з Codex, із вимкненим fallback до PI:
Перевірка harness лише з Codex із вимкненим fallback на PI:
```json5
{
@ -435,7 +434,7 @@ Guardian — це нативний reviewer погоджень Codex. Коли C
}
```
Погодження Codex, переглянуті Guardian:
Схвалення Codex із перевіркою Guardian:
```json5
{
@ -480,96 +479,100 @@ Guardian — це нативний reviewer погоджень Codex. Коли C
}
```
Перемикання моделей і далі контролюється OpenClaw. Коли сесію OpenClaw прив’язано
до наявного thread Codex, наступний хід знову надсилає до
app-server поточно вибрану модель OpenAI, провайдера, політику погоджень, sandbox і service tier.
Перемикання з `openai/gpt-5.5` на `openai/gpt-5.2` зберігає прив’язку до
thread, але просить Codex продовжити з новою вибраною моделлю.
Перемикання моделей залишається під керуванням OpenClaw. Коли сесію OpenClaw приєднано
до наявного потоку Codex, наступний хід знову надсилає в
app-server поточну вибрану модель OpenAI, провайдера, політику схвалення, sandbox і рівень сервісу.
Перемикання з `openai/gpt-5.5` на `openai/gpt-5.2` зберігає прив’язку до потоку, але просить Codex
продовжити роботу з новою вибраною моделлю.
## Команда Codex
Вбудований Plugin реєструє `/codex` як авторизовану slash-команду. Вона є
загальною і працює на будь-якому каналі, що підтримує текстові команди OpenClaw.
Комплектний Plugin реєструє `/codex` як авторизовану slash-команду. Вона є
загальною і працює в будь-якому каналі, який підтримує текстові команди OpenClaw.
Поширені форми:
- `/codex status` показує live-підключення до app-server, моделі, обліковий запис, ліміти швидкості, сервери MCP і Skills.
- `/codex models` перелічує live-моделі app-server Codex.
- `/codex threads [filter]` перелічує нещодавні thread Codex.
- `/codex resume <thread-id>` прив’язує поточну сесію OpenClaw до наявного thread Codex.
- `/codex compact` просить app-server Codex виконати Compaction прив’язаного thread.
- `/codex review` запускає нативний review Codex для прив’язаного thread.
- `/codex account` показує стан облікового запису й лімітів швидкості.
- `/codex mcp` перелічує стан серверів MCP app-server Codex.
- `/codex skills` перелічує Skills app-server Codex.
- `/codex status` показує поточне підключення до app-server, моделі, обліковий запис, ліміти запитів, сервери MCP і skills.
- `/codex models` перелічує поточні моделі Codex app-server.
- `/codex threads [filter]` перелічує нещодавні потоки Codex.
- `/codex resume <thread-id>` приєднує поточну сесію OpenClaw до наявного потоку Codex.
- `/codex compact` просить Codex app-server виконати Compaction для приєднаного потоку.
- `/codex review` запускає нативну перевірку Codex для приєднаного потоку.
- `/codex account` показує стан облікового запису та лімітів запитів.
- `/codex mcp` показує стан серверів MCP у Codex app-server.
- `/codex skills` показує skills Codex app-server.
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей thread Codex, передає
поточну вибрану модель OpenClaw в app-server і зберігає
увімкнену розширену історію.
`/codex resume` записує той самий файл sidecar-прив’язки, який harness використовує для
звичайних ходів. Під час наступного повідомлення OpenClaw відновлює цей потік Codex, передає
поточну вибрану модель OpenClaw в 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.
## Межі hooks
## Межі хуків
Harness Codex має три шари hooks:
Harness Codex має три шари хуків:
| Шар | Власник | Призначення |
| ------------------------------------- | ------------------------ | -------------------------------------------------------------------- |
| Hooks Plugin OpenClaw | OpenClaw | Сумісність продукту/Plugin між harness PI і Codex. |
| Middleware extension app-server Codex | Вбудовані plugins OpenClaw | Адаптерна поведінка для кожного ходу навколо динамічних інструментів OpenClaw. |
| Нативні hooks Codex | Codex | Низькорівневий життєвий цикл Codex і політика нативних інструментів із конфігурації Codex. |
| Шар | Власник | Призначення |
| ------------------------------------- | ------------------------ | ------------------------------------------------------------------- |
| Хуки Plugin OpenClaw | OpenClaw | Сумісність продукту/Plugin між harness PI і Codex. |
| Проміжне ПЗ розширення Codex app-server | Комплектні Plugins OpenClaw | Поведінка адаптера на рівні ходу навколо динамічних інструментів OpenClaw. |
| Нативні хуки Codex | Codex | Низькорівневий життєвий цикл Codex і політика нативних інструментів із конфігурації Codex. |
OpenClaw не використовує файли проєктного або глобального Codex `hooks.json` для маршрутизації
поведінки Plugin OpenClaw. Нативні hooks Codex корисні для операцій, якими володіє Codex,
як-от політика shell, review результатів нативних інструментів, обробка зупинки та
нативний життєвий цикл Compaction/моделі, але вони не є API Plugin OpenClaw.
OpenClaw не використовує файли проєкту або глобальні файли Codex `hooks.json` для маршрутизації
поведінки Plugin OpenClaw. Нативні хуки Codex корисні для операцій, якими володіє
Codex, таких як політика shell, перевірка результатів нативних інструментів,
обробка зупинки та життєвий цикл нативних моделей/Compaction, але вони не є API Plugin OpenClaw.
Для динамічних інструментів OpenClaw OpenClaw виконує інструмент після того, як Codex запитує
виклик, тому OpenClaw запускає поведінку Plugin і middleware, якою він володіє, в
адаптері harness. Для нативних інструментів Codex саме Codex володіє канонічним записом інструмента.
OpenClaw може дзеркалити вибрані події, але не може переписувати нативний
thread Codex, якщо тільки Codex не надає цю операцію через app-server або callback-и
нативних hooks.
виклик, тому OpenClaw запускає поведінку Plugin і проміжного ПЗ, якою він володіє, в
адаптері harness. Для нативних інструментів Codex канонічним записом інструмента володіє Codex.
OpenClaw може дзеркалювати окремі події, але не може переписувати нативний потік Codex,
якщо Codex не надає цю операцію через app-server або колбеки нативних хуків.
Коли новіші збірки app-server Codex надаватимуть нативні події hooks для Compaction і життєвого циклу моделі,
OpenClaw має з урахуванням версії протоколу підтримувати це й зіставляти
події з наявним контрактом hooks OpenClaw там, де така семантика є чесною.
Коли новіші збірки Codex app-server надають події хуків життєвого циклу нативних моделей і Compaction,
OpenClaw має керувати підтримкою цього протоколу за версіями та відображати
події в наявний контракт хуків OpenClaw там, де семантика є коректною.
До того часу події OpenClaw `before_compaction`, `after_compaction`, `llm_input` і
`llm_output` є спостереженнями на рівні адаптера, а не побайтними захопленнями
внутрішнього запиту або payload Compaction Codex.
`llm_output` є спостереженнями на рівні адаптера, а не побайтовими захопленнями
внутрішнього запиту Codex або payload Compaction.
Нативні сповіщення Codex app-server `hook/started` і `hook/completed`
проєктуються як події агента `codex_app_server.hook` для траєкторії та налагодження.
Вони не викликають хуки Plugin OpenClaw.
## Інструменти, медіа та Compaction
Harness Codex змінює лише низькорівневий виконавець вбудованого агента.
OpenClaw і далі формує список інструментів і отримує результати динамічних інструментів із
harness. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів повідомлень
OpenClaw, як і раніше, формує список інструментів і отримує результати динамічних інструментів від
harness. Текст, зображення, відео, музика, TTS, схвалення та вивід інструментів обміну повідомленнями
і далі проходять через звичайний шлях доставки OpenClaw.
Запити на погодження інструментів Codex MCP маршрутизуються через потік погодження Plugin OpenClaw,
Запити на схвалення інструментів MCP Codex маршрутизуються через потік схвалення Plugin OpenClaw,
коли Codex позначає `_meta.codex_approval_kind` як
`"mcp_tool_call"`. Запити Codex `request_user_input` надсилаються назад до
вихідного чату, а наступне поставлене в чергу подальше повідомлення відповідає на цей нативний
запит сервера замість того, щоб спрямовуватися як додатковий контекст. Інші запити elicitation MCP
і далі безпечно блокуються.
`"mcp_tool_call"`. Запити Codex `request_user_input` надсилаються назад у
вихідний чат, а наступне поставлене в чергу додаткове повідомлення відповідає на цей нативний
запит сервера замість того, щоб скеровуватися як додатковий контекст. Інші запити elicitation MCP
і далі завершуються безпечним блокуванням.
Коли вибрана модель використовує harness Codex, нативний Compaction thread делегується
app-server Codex. OpenClaw зберігає дзеркало transcript для історії каналів,
Коли вибрана модель використовує harness Codex, нативний Compaction потоку делегується
Codex app-server. OpenClaw зберігає дзеркало транскрипту для історії каналу,
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness. Дзеркало
містить prompt користувача, фінальний текст асистента та полегшені записи reasoning або plan Codex,
коли app-server їх надсилає. Наразі OpenClaw лише записує нативні сигнали початку
та завершення Compaction. Він ще не надає зручне для читання людиною зведення Compaction або
аудитний список того, які записи Codex зберіг після Compaction.
включає запит користувача, фінальний текст асистента та полегшені записи міркувань
або плану Codex, коли їх генерує app-server. Наразі OpenClaw записує лише сигнали
початку та завершення нативного Compaction. Він ще не показує
людинозрозумілий підсумок Compaction або придатний до аудиту список того, які записи Codex
зберіг після Compaction.
Оскільки Codex володіє канонічним нативним thread, `tool_result_persist` наразі не
Оскільки канонічним нативним потоком володіє Codex, `tool_result_persist` наразі не
переписує записи результатів нативних інструментів Codex. Він застосовується лише тоді, коли
OpenClaw записує результат інструмента до transcript сесії, що належить OpenClaw.
OpenClaw записує результат інструмента в транскрипт сесії, яким володіє OpenClaw.
Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і
розуміння медіа й далі використовують відповідні налаштування провайдера/моделі, такі як
розуміння медіа і далі використовують відповідні налаштування провайдера/моделі, такі як
`agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і
`messages.tts`.
@ -577,31 +580,31 @@ OpenClaw записує результат інструмента до transcrip
**Codex не з’являється в `/model`:** увімкніть `plugins.entries.codex.enabled`,
виберіть модель `openai/gpt-*` з `embeddedHarness.runtime: "codex"` (або
застарілим посиланням `codex/*`) і перевірте, чи `plugins.allow` не виключає `codex`.
застаріле посилання `codex/*`) і перевірте, чи `plugins.allow` не виключає `codex`.
**OpenClaw використовує PI замість Codex:** якщо жоден harness Codex не перехоплює запуск,
OpenClaw може використовувати PI як backend сумісності. Установіть
`embeddedHarness.runtime: "codex"`, щоб примусово вибирати Codex під час тестування, або
`embeddedHarness.fallback: "none"`, щоб завершуватися невдачею, коли жоден harness Plugin не підходить. Щойно
вибрано app-server Codex, його збої відображаються безпосередньо без додаткового
fallback-конфігу.
**OpenClaw використовує PI замість Codex:** якщо жоден harness Codex не бере виконання,
OpenClaw може використовувати PI як сумісний бекенд. Установіть
`embeddedHarness.runtime: "codex"`, щоб примусово вибрати Codex під час тестування, або
`embeddedHarness.fallback: "none"`, щоб отримувати помилку, коли жоден harness Plugin не підходить. Щойно
вибрано Codex app-server, його збої відображаються безпосередньо без додаткової
конфігурації fallback.
**App-server відхиляється:** оновіть Codex, щоб handshake app-server
**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 використовує ту саму версію протоколу Codex app-server.
**Модель не Codex використовує PI:** це очікувана поведінка, якщо ви не примусово задали
**Не-Codex модель використовує PI:** це очікувана поведінка, якщо ви не примусово встановили
`embeddedHarness.runtime: "codex"` (або не вибрали застаріле посилання `codex/*`). Звичайні
`openai/gpt-*` та інші посилання провайдерів лишаються на своєму нормальному шляху провайдера.
`openai/gpt-*` та посилання інших провайдерів залишаються на своєму стандартному шляху провайдера.
## Пов’язане
- [Plugins Harness агента](/uk/plugins/sdk-agent-harness)
- [Plugins Agent Harness](/uk/plugins/sdk-agent-harness)
- [Провайдери моделей](/uk/concepts/model-providers)
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
- [Тестування](/uk/help/testing-live#live-codex-app-server-harness-smoke)