chore(i18n): refresh uk translations
This commit is contained in:
parent
025f1b0acb
commit
a3f3c55d7f
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user