chore(i18n): refresh uk translations
This commit is contained in:
parent
ea096ea56e
commit
1326cebbdd
@ -1,29 +1,29 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете використовувати комплектний harness app-server Codex
|
||||
- Вам потрібні приклади конфігурації harness Codex
|
||||
- Ви хочете, щоб розгортання лише з Codex завершувалися помилкою замість переходу до PI
|
||||
summary: Запустіть вбудовані ходи агента OpenClaw через комплектний harness app-server Codex
|
||||
title: harness Codex
|
||||
- Ви хочете використовувати комплектний каркас app-server Codex
|
||||
- Вам потрібні приклади конфігурації каркаса Codex
|
||||
- Ви хочете, щоб розгортання лише з Codex завершувалися помилкою замість переходу до Pi
|
||||
summary: Запустіть вбудовані ходи агента OpenClaw через комплектний каркас app-server Codex
|
||||
title: каркас Codex
|
||||
x-i18n:
|
||||
generated_at: "2026-04-25T20:40:02Z"
|
||||
generated_at: "2026-04-25T23:54:39Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: a5d14d2482b0c5eed5481c42db70e881f88e590dd109244fbb131a2e0d8ec239
|
||||
source_hash: 388e4c015e6af99a9c9184539f4a5fa2bcc828f26a7470a338e8398e0cec1a5f
|
||||
source_path: plugins/codex-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Комплектний Plugin `codex` дає OpenClaw змогу запускати вбудовані ходи агента через
|
||||
Codex app-server замість вбудованого harness Pi.
|
||||
Codex app-server замість вбудованого каркаса Pi.
|
||||
|
||||
Використовуйте це, коли хочете, щоб Codex керував низькорівневою сесією агента: виявленням
|
||||
моделей, нативним відновленням потоків, нативною Compaction і виконанням через app-server.
|
||||
моделей, нативним відновленням потоку, нативною Compaction і виконанням через app-server.
|
||||
OpenClaw, як і раніше, керує каналами чату, файлами сесій, вибором моделей, інструментами,
|
||||
погодженнями, доставкою медіа та видимим дзеркалом транскрипту.
|
||||
|
||||
Якщо ви намагаєтеся зорієнтуватися, почніть із
|
||||
[середовищ виконання агентів](/uk/concepts/agent-runtimes). Коротка версія така:
|
||||
[Середовища виконання агентів](/uk/concepts/agent-runtimes). Коротко:
|
||||
`openai/gpt-5.5` — це посилання на модель, `codex` — це середовище виконання, а Telegram,
|
||||
Discord, Slack або інший канал залишається поверхнею комунікації.
|
||||
|
||||
@ -37,93 +37,95 @@ Discord, Slack або інший канал залишається поверх
|
||||
- `before_message_write` для дзеркальних записів транскрипту
|
||||
- `agent_end`
|
||||
|
||||
Plugins також можуть реєструвати нейтральне до середовища виконання middleware результатів інструментів, щоб переписувати
|
||||
результати динамічних інструментів OpenClaw після того, як OpenClaw виконає інструмент, і до того,
|
||||
як результат буде повернуто до Codex. Це окремо від публічного
|
||||
хука Plugin `tool_result_persist`, який трансформує записи результатів інструментів
|
||||
у транскрипті, що належать OpenClaw.
|
||||
Plugins також можуть реєструвати незалежне від середовища виконання проміжне ПЗ результатів інструментів, щоб переписувати
|
||||
динамічні результати інструментів OpenClaw після того, як OpenClaw виконає інструмент, і до того,
|
||||
як результат буде повернуто в Codex. Це окремо від публічного
|
||||
хука Plugin `tool_result_persist`, який перетворює записи результатів інструментів
|
||||
у транскрипті, що належить OpenClaw.
|
||||
|
||||
Щодо семантики самих хуків Plugin дивіться [хуки Plugin](/uk/plugins/hooks)
|
||||
і [поведінку guard Plugin](/uk/tools/plugin).
|
||||
Щодо семантики самих хуків Plugin дивіться [Хуки Plugin](/uk/plugins/hooks)
|
||||
і [Поведінка захисту Plugin](/uk/tools/plugin).
|
||||
|
||||
harness вимкнений за замовчуванням. Нові конфігурації мають зберігати посилання на моделі OpenAI
|
||||
у канонічному вигляді `openai/gpt-*` і явно примусово задавати
|
||||
`embeddedHarness.runtime: "codex"` або `OPENCLAW_AGENT_RUNTIME=codex`, коли
|
||||
потрібне нативне виконання через app-server. Застарілі посилання на моделі `codex/*` і далі автоматично вибирають
|
||||
harness для сумісності, але застарілі префікси провайдерів, підкріплені середовищем виконання, не
|
||||
показуються як звичайні варіанти моделі/провайдера.
|
||||
Каркас вимкнений за замовчуванням. Нові конфігурації мають зберігати посилання на моделі OpenAI
|
||||
у канонічному вигляді `openai/gpt-*` і явно примусово встановлювати
|
||||
`embeddedHarness.runtime: "codex"` або `OPENCLAW_AGENT_RUNTIME=codex`, коли їм
|
||||
потрібне нативне виконання через app-server. Застарілі посилання на моделі `codex/*` усе ще автоматично вибирають
|
||||
каркас для сумісності, але застарілі префікси провайдерів, підкріплені середовищем виконання,
|
||||
не показуються як звичайні варіанти моделі/провайдера.
|
||||
|
||||
## Виберіть правильний префікс моделі
|
||||
|
||||
Маршрути сімейства OpenAI залежать від префікса. Використовуйте `openai-codex/*`, коли вам потрібен
|
||||
OAuth Codex через Pi; використовуйте `openai/*`, коли вам потрібен прямий доступ до OpenAI API або
|
||||
коли ви примусово використовуєте нативний harness Codex app-server:
|
||||
Маршрути сімейства OpenAI залежать від префікса. Використовуйте `openai-codex/*`, коли вам потрібна
|
||||
авторизація Codex OAuth через Pi; використовуйте `openai/*`, коли вам потрібен прямий доступ до OpenAI API або
|
||||
коли ви примусово використовуєте нативний каркас app-server Codex:
|
||||
|
||||
| Посилання на модель | Шлях середовища виконання | Використовуйте, коли |
|
||||
| ----------------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------- |
|
||||
| `openai/gpt-5.4` | Провайдер OpenAI через механізми OpenClaw/Pi | Вам потрібен актуальний прямий доступ до OpenAI Platform API через `OPENAI_API_KEY`. |
|
||||
| `openai-codex/gpt-5.5` | OAuth OpenAI Codex через OpenClaw/Pi | Вам потрібна автентифікація через підписку ChatGPT/Codex з типовим runner Pi. |
|
||||
| `openai/gpt-5.5` + `embeddedHarness.runtime: "codex"` | harness Codex app-server | Вам потрібне нативне виконання через Codex app-server для вбудованого ходу агента. |
|
||||
| Model ref | Runtime path | Use when |
|
||||
| ----------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------- |
|
||||
| `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"` | Каркас app-server Codex | Вам потрібне нативне виконання через app-server Codex для вбудованого ходу агента. |
|
||||
|
||||
GPT-5.5 зараз в OpenClaw доступна лише через підписку/OAuth. Використовуйте
|
||||
`openai-codex/gpt-5.5` для OAuth Pi або `openai/gpt-5.5` разом із harness Codex
|
||||
app-server. Прямий доступ за API-ключем для `openai/gpt-5.5` підтримуватиметься,
|
||||
щойно OpenAI увімкне GPT-5.5 у публічному API.
|
||||
GPT-5.5 зараз у OpenClaw доступна лише через підписку/OAuth. Використовуйте
|
||||
`openai-codex/gpt-5.5` для PI OAuth або `openai/gpt-5.5` з каркасом
|
||||
app-server Codex. Прямий доступ через API-ключ для `openai/gpt-5.5` підтримуватиметься,
|
||||
коли OpenAI увімкне GPT-5.5 у публічному API.
|
||||
|
||||
Застарілі посилання `codex/gpt-*` і далі приймаються як псевдоніми сумісності. Міграція сумісності
|
||||
doctor переписує застарілі первинні посилання середовища виконання в канонічні посилання на моделі
|
||||
й окремо записує політику середовища виконання, тоді як застарілі посилання лише для fallback
|
||||
залишаються без змін, оскільки середовище виконання налаштовується для всього контейнера агента.
|
||||
Нові конфігурації OAuth Codex для Pi мають використовувати `openai-codex/gpt-*`; нові конфігурації
|
||||
нативного harness app-server мають використовувати `openai/gpt-*` плюс
|
||||
Застарілі посилання `codex/gpt-*` залишаються прийнятними як псевдоніми сумісності. Міграція сумісності
|
||||
doctor переписує застарілі основні посилання на середовище виконання у канонічні посилання на модель
|
||||
і записує політику середовища виконання окремо, тоді як застарілі посилання лише для резервного режиму
|
||||
залишаються без змін, бо середовище виконання налаштовується для всього контейнера агента.
|
||||
Нові конфігурації PI Codex OAuth мають використовувати `openai-codex/gpt-*`; нові конфігурації нативного
|
||||
каркаса app-server мають використовувати `openai/gpt-*` плюс
|
||||
`embeddedHarness.runtime: "codex"`.
|
||||
|
||||
`agents.defaults.imageModel` дотримується того самого розділення префіксів. Використовуйте
|
||||
`openai-codex/gpt-*`, коли розуміння зображень має працювати через шлях провайдера OAuth OpenAI
|
||||
Codex. Використовуйте `codex/gpt-*`, коли розуміння зображень має працювати
|
||||
через обмежений хід Codex app-server. Модель Codex app-server має
|
||||
заявляти підтримку введення зображень; текстові моделі Codex завершуються помилкою ще до
|
||||
початку медіа-ходу.
|
||||
`agents.defaults.imageModel` дотримується такого самого розділення префіксів. Використовуйте
|
||||
`openai-codex/gpt-*`, коли розуміння зображень має проходити через шлях провайдера OpenAI
|
||||
Codex OAuth. Використовуйте `codex/gpt-*`, коли розуміння зображень має виконуватися
|
||||
через обмежений хід app-server Codex. Модель app-server Codex має
|
||||
заявляти підтримку вхідних зображень; текстові моделі Codex завершуються помилкою до того, як
|
||||
почнеться медіахід.
|
||||
|
||||
Використовуйте `/status`, щоб підтвердити фактичний harness для поточної сесії. Якщо вибір
|
||||
несподіваний, увімкніть debug-логування для підсистеми `agents/harness`
|
||||
і перегляньте структурований запис gateway `agent harness selected`. Він
|
||||
містить ідентифікатор вибраного harness, причину вибору, політику runtime/fallback та,
|
||||
Використовуйте `/status`, щоб підтвердити фактичний каркас для поточної сесії. Якщо вибір
|
||||
виявився несподіваним, увімкніть журналювання налагодження для підсистеми `agents/harness`
|
||||
і перегляньте структурований запис шлюзу `agent harness selected`. Він
|
||||
містить ідентифікатор вибраного каркаса, причину вибору, політику runtime/fallback і,
|
||||
у режимі `auto`, результат підтримки для кожного кандидата Plugin.
|
||||
|
||||
Вибір harness не є засобом керування живою сесією. Коли виконується вбудований хід,
|
||||
OpenClaw записує ідентифікатор вибраного harness у цю сесію та продовжує використовувати його
|
||||
Вибір каркаса не є засобом керування живою сесією. Коли виконується вбудований хід,
|
||||
OpenClaw записує ідентифікатор вибраного каркаса в цю сесію і продовжує використовувати його
|
||||
для наступних ходів у межах того самого ідентифікатора сесії. Змінюйте конфігурацію `embeddedHarness` або
|
||||
`OPENCLAW_AGENT_RUNTIME`, якщо хочете, щоб майбутні сесії використовували інший harness;
|
||||
використовуйте `/new` або `/reset`, щоб почати нову сесію, перш ніж перемикати наявну
|
||||
розмову між Pi і Codex. Це запобігає повторному програванню одного транскрипту через
|
||||
`OPENCLAW_AGENT_RUNTIME`, коли хочете, щоб майбутні сесії використовували інший каркас;
|
||||
використовуйте `/new` або `/reset`, щоб почати нову сесію перед перемиканням наявної
|
||||
розмови між PI і Codex. Це дає змогу уникнути повторного програвання одного транскрипту через
|
||||
дві несумісні нативні системи сесій.
|
||||
|
||||
Застарілі сесії, створені до закріплення harness, розглядаються як закріплені за Pi, щойно вони
|
||||
мають історію транскрипту. Використовуйте `/new` або `/reset`, щоб перевести цю розмову на
|
||||
Застарілі сесії, створені до закріплення каркасів, вважаються закріпленими за PI, щойно вони
|
||||
мають історію транскрипту. Використовуйте `/new` або `/reset`, щоб перевести таку розмову на
|
||||
Codex після зміни конфігурації.
|
||||
|
||||
`/status` показує фактичне середовище виконання моделі. Типовий harness Pi відображається як
|
||||
`Runtime: OpenClaw Pi Default`, а harness Codex app-server — як
|
||||
`/status` показує фактичне runtime моделі. Стандартний каркас PI відображається як
|
||||
`Runtime: OpenClaw Pi Default`, а каркас app-server Codex відображається як
|
||||
`Runtime: OpenAI Codex`.
|
||||
|
||||
## Вимоги
|
||||
|
||||
- OpenClaw із доступним комплектним Plugin `codex`.
|
||||
- Codex app-server `0.125.0` або новіший. Нативні payload хуків MCP з’явилися в Codex
|
||||
`0.124.0`; OpenClaw використовує `0.125.0` як перевірену нижню межу підтримки.
|
||||
- Автентифікація Codex, доступна для процесу app-server.
|
||||
- Codex app-server `0.125.0` або новіший. Комплектний Plugin за замовчуванням керує сумісним
|
||||
двійковим файлом Codex app-server, тому локальні команди `codex` у `PATH`
|
||||
не впливають на звичайний запуск каркаса.
|
||||
- Автентифікація Codex, доступна процесу app-server.
|
||||
|
||||
Plugin блокує старіші або неверсіоновані handshakes app-server. Це гарантує, що
|
||||
OpenClaw працює лише з поверхнею протоколу, з якою його було протестовано.
|
||||
Plugin блокує старіші або неверсіоновані рукостискання app-server. Це утримує
|
||||
OpenClaw на поверхні протоколу, з якою його було протестовано.
|
||||
|
||||
Для live- і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також
|
||||
із необов’язкових файлів CLI Codex, таких як `~/.codex/auth.json` і
|
||||
`~/.codex/config.toml`. Використовуйте ті самі дані автентифікації, які використовує ваш локальний Codex app-server.
|
||||
Для live- і Docker smoke-тестів автентифікація зазвичай надходить із `OPENAI_API_KEY`, а також,
|
||||
за потреби, з файлів Codex CLI, таких як `~/.codex/auth.json` і
|
||||
`~/.codex/config.toml`. Використовуйте ті самі автентифікаційні матеріали, що й ваш локальний
|
||||
Codex app-server.
|
||||
|
||||
## Мінімальна конфігурація
|
||||
|
||||
Використовуйте `openai/gpt-5.5`, увімкніть комплектний Plugin і примусово задайте harness `codex`:
|
||||
Використовуйте `openai/gpt-5.5`, увімкніть комплектний Plugin і примусово виберіть каркас `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -145,7 +147,7 @@ OpenClaw працює лише з поверхнею протоколу, з як
|
||||
}
|
||||
```
|
||||
|
||||
Якщо ваша конфігурація використовує `plugins.allow`, додайте туди й `codex`:
|
||||
Якщо ваша конфігурація використовує `plugins.allow`, включіть туди також `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -160,27 +162,27 @@ OpenClaw працює лише з поверхнею протоколу, з як
|
||||
}
|
||||
```
|
||||
|
||||
Застарілі конфігурації, які задають `agents.defaults.model` або модель агента як
|
||||
`codex/<model>`, і далі автоматично вмикають комплектний Plugin `codex`. Нові конфігурації мають
|
||||
надавати перевагу `openai/<model>` плюс явному запису `embeddedHarness` вище.
|
||||
Застарілі конфігурації, які встановлюють `agents.defaults.model` або модель агента в
|
||||
`codex/<model>`, усе ще автоматично вмикають комплектний Plugin `codex`. Нові конфігурації мають
|
||||
надавати перевагу `openai/<model>` плюс явний запис `embeddedHarness`, наведений вище.
|
||||
|
||||
## Додайте Codex поруч з іншими моделями
|
||||
|
||||
Не задавайте `runtime: "codex"` глобально, якщо той самий агент має вільно перемикатися
|
||||
між Codex і моделями інших провайдерів. Примусове середовище виконання застосовується до кожного
|
||||
вбудованого ходу для цього агента або сесії. Якщо ви виберете модель Anthropic, поки
|
||||
це середовище виконання примусово задане, OpenClaw усе одно спробує harness Codex і завершиться помилкою
|
||||
безшумно не перенаправляючи цей хід через Pi.
|
||||
Не встановлюйте `runtime: "codex"` глобально, якщо той самий агент має вільно перемикатися
|
||||
між Codex і моделями інших провайдерів. Примусове runtime застосовується до кожного
|
||||
вбудованого ходу для цього агента або сесії. Якщо ви виберете модель Anthropic, коли
|
||||
це runtime примусово встановлено, OpenClaw однаково спробує каркас Codex і завершиться помилкою,
|
||||
а не тихо маршрутизує цей хід через PI.
|
||||
|
||||
Натомість використовуйте одну з таких форм:
|
||||
|
||||
- Розмістіть Codex на окремому агенті з `embeddedHarness.runtime: "codex"`.
|
||||
- Залиште типовий агент із `runtime: "auto"` і fallback на Pi для звичайного змішаного
|
||||
- Залиште для стандартного агента `runtime: "auto"` і резервний перехід на PI для звичайного змішаного
|
||||
використання провайдерів.
|
||||
- Використовуйте застарілі посилання `codex/*` лише для сумісності. Нові конфігурації мають віддавати перевагу
|
||||
`openai/*` плюс явній політиці середовища виконання Codex.
|
||||
- Використовуйте застарілі посилання `codex/*` лише для сумісності. Нові конфігурації мають надавати перевагу
|
||||
`openai/*` плюс явна політика runtime Codex.
|
||||
|
||||
Наприклад, така конфігурація залишає типовий агент зі звичайним автоматичним вибором і
|
||||
Наприклад, ця конфігурація залишає стандартного агента на звичайному автоматичному виборі та
|
||||
додає окремого агента Codex:
|
||||
|
||||
```json5
|
||||
@ -218,17 +220,17 @@ OpenClaw працює лише з поверхнею протоколу, з як
|
||||
}
|
||||
```
|
||||
|
||||
З такою формою:
|
||||
За такої форми:
|
||||
|
||||
- Типовий агент `main` використовує звичайний шлях провайдера та fallback сумісності Pi.
|
||||
- Агент `codex` використовує harness Codex app-server.
|
||||
- Якщо для агента `codex` Codex відсутній або не підтримується, хід
|
||||
завершується помилкою замість тихого використання Pi.
|
||||
- Стандартний агент `main` використовує звичайний шлях провайдера та резервну сумісність PI.
|
||||
- Агент `codex` використовує каркас app-server Codex.
|
||||
- Якщо Codex відсутній або не підтримується для агента `codex`, хід завершується помилкою
|
||||
замість тихого використання PI.
|
||||
|
||||
## Розгортання лише з Codex
|
||||
|
||||
Примусово задайте harness Codex, коли потрібно гарантувати, що кожен вбудований хід агента
|
||||
використовує Codex. Явні runtimes Plugin за замовчуванням не мають fallback на Pi, тому
|
||||
Примусово виберіть каркас Codex, коли потрібно довести, що кожен вбудований хід агента
|
||||
використовує Codex. Явні runtime Plugin за замовчуванням не використовують резервний перехід на PI, тому
|
||||
`fallback: "none"` необов’язковий, але часто корисний як документація:
|
||||
|
||||
```json5
|
||||
@ -245,21 +247,21 @@ OpenClaw працює лише з поверхнею протоколу, з як
|
||||
}
|
||||
```
|
||||
|
||||
Перевизначення через середовище:
|
||||
Перевизначення через змінну середовища:
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex openclaw gateway run
|
||||
```
|
||||
|
||||
Коли Codex примусово задано, OpenClaw завершується помилкою на ранньому етапі, якщо Plugin Codex вимкнено,
|
||||
app-server надто старий або app-server не вдається запустити. Установлюйте
|
||||
`OPENCLAW_AGENT_HARNESS_FALLBACK=pi` лише якщо ви свідомо хочете, щоб Pi обробляв
|
||||
відсутній вибір harness.
|
||||
За примусового використання Codex OpenClaw рано завершується помилкою, якщо Plugin Codex вимкнено,
|
||||
app-server надто старий або app-server не може запуститися. Установлюйте
|
||||
`OPENCLAW_AGENT_HARNESS_FALLBACK=pi` лише якщо ви свідомо хочете, щоб PI обробляв
|
||||
випадки відсутності вибору каркаса.
|
||||
|
||||
## Codex для окремого агента
|
||||
|
||||
Ви можете зробити одного агента лише для Codex, тоді як типовий агент зберігатиме звичайний
|
||||
автоматичний вибір:
|
||||
Ви можете зробити один агент лише для Codex, тоді як стандартний агент зберігатиме звичайний
|
||||
автовибір:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -291,9 +293,9 @@ app-server надто старий або app-server не вдається за
|
||||
```
|
||||
|
||||
Використовуйте звичайні команди сесії, щоб перемикати агентів і моделі. `/new` створює нову
|
||||
сесію OpenClaw, а harness Codex за потреби створює або відновлює свій sidecar app-server
|
||||
thread. `/reset` очищує прив’язку сесії OpenClaw для цього thread
|
||||
і дає змогу наступному ходу знову визначити harness із поточної конфігурації.
|
||||
сесію OpenClaw, а каркас Codex створює або відновлює свій бічний потік app-server
|
||||
за потреби. `/reset` очищає прив’язку сесії OpenClaw для цього потоку
|
||||
і дає змогу наступному ходу знову визначити каркас із поточної конфігурації.
|
||||
|
||||
## Виявлення моделей
|
||||
|
||||
@ -324,8 +326,8 @@ thread. `/reset` очищує прив’язку сесії OpenClaw для ц
|
||||
}
|
||||
```
|
||||
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалася перевірка Codex і використовувався
|
||||
резервний каталог:
|
||||
Вимкніть виявлення, якщо хочете, щоб під час запуску не виконувалося зондування Codex і використовувався
|
||||
лише резервний каталог:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -344,21 +346,27 @@ thread. `/reset` очищує прив’язку сесії OpenClaw для ц
|
||||
}
|
||||
```
|
||||
|
||||
## З’єднання app-server і політика
|
||||
## Підключення до app-server і політика
|
||||
|
||||
За замовчуванням Plugin запускає Codex локально так:
|
||||
За замовчуванням Plugin локально запускає керований OpenClaw двійковий файл Codex командою:
|
||||
|
||||
```bash
|
||||
codex app-server --listen stdio://
|
||||
```
|
||||
|
||||
За замовчуванням OpenClaw запускає локальні сесії harness Codex у режимі YOLO:
|
||||
Керований двійковий файл оголошено як залежність середовища виконання комплектного Plugin і підготовлено
|
||||
разом з рештою залежностей Plugin `codex`. Це прив’язує версію app-server
|
||||
до комплектного Plugin, а не до якогось окремого Codex CLI,
|
||||
який випадково встановлено локально. Установлюйте `appServer.command` лише коли
|
||||
свідомо хочете запускати інший виконуваний файл.
|
||||
|
||||
За замовчуванням OpenClaw запускає локальні сесії каркаса Codex у режимі YOLO:
|
||||
`approvalPolicy: "never"`, `approvalsReviewer: "user"` і
|
||||
`sandbox: "danger-full-access"`. Це позиція довіреного локального оператора, яка використовується
|
||||
для автономних Heartbeat: Codex може використовувати shell і мережеві інструменти без
|
||||
зупинок на нативних запитах підтвердження, на які нікому відповісти.
|
||||
для автономних Heartbeat: Codex може використовувати shell та мережеві інструменти без
|
||||
зупинки на нативних запитах на погодження, на які нікому відповісти.
|
||||
|
||||
Щоб увімкнути підтвердження Codex, переглянуті guardian, задайте `appServer.mode:
|
||||
Щоб увімкнути погодження Codex, перевірені guardian, установіть `appServer.mode:
|
||||
"guardian"`:
|
||||
|
||||
```json5
|
||||
@ -379,21 +387,21 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Режим Guardian використовує нативний шлях автоперевірки погоджень Codex. Коли Codex просить
|
||||
вийти із sandbox, писати за межами workspace або додати дозволи на кшталт мережевого
|
||||
доступу, Codex спрямовує цей запит на погодження до нативного рецензента замість
|
||||
Режим Guardian використовує нативний шлях автоматичної перевірки погоджень Codex. Коли Codex просить
|
||||
вийти з пісочниці, записувати поза робочим простором або додати дозволи, як-от мережевий
|
||||
доступ, Codex спрямовує цей запит на погодження до нативного рецензента, а не до
|
||||
людського запиту. Рецензент застосовує модель ризиків Codex і схвалює або відхиляє
|
||||
конкретний запит. Використовуйте Guardian, коли вам потрібні жорсткіші запобіжники, ніж у режимі YOLO,
|
||||
конкретний запит. Використовуйте Guardian, коли вам потрібно більше захисних механізмів, ніж у режимі YOLO,
|
||||
але при цьому потрібно, щоб агенти без нагляду могли просуватися далі.
|
||||
|
||||
preset `guardian` розгортається в `approvalPolicy: "on-request"`,
|
||||
Попередньо налаштований варіант `guardian` розгортається в `approvalPolicy: "on-request"`,
|
||||
`approvalsReviewer: "auto_review"` і `sandbox: "workspace-write"`.
|
||||
Окремі поля політики, як і раніше, перевизначають `mode`, тому розширені розгортання можуть поєднувати
|
||||
цей preset із явними виборами. Старе значення рецензента `guardian_subagent`
|
||||
досі приймається як псевдонім сумісності, але нові конфігурації мають використовувати
|
||||
Окремі поля політики, як і раніше, мають пріоритет над `mode`, тому розширені розгортання можуть поєднувати
|
||||
цей preset з явними значеннями. Старіше значення рецензента `guardian_subagent`
|
||||
усе ще приймається як псевдонім сумісності, але нові конфігурації мають використовувати
|
||||
`auto_review`.
|
||||
|
||||
Для вже запущеного app-server використовуйте транспорт WebSocket:
|
||||
Для app-server, який уже запущено, використовуйте транспорт WebSocket:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -417,23 +425,22 @@ preset `guardian` розгортається в `approvalPolicy: "on-request"`,
|
||||
|
||||
Підтримувані поля `appServer`:
|
||||
|
||||
| Поле | Типове значення | Значення |
|
||||
| Field | Default | Meaning |
|
||||
| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
||||
| `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"` | preset для виконання в режимі YOLO або з погодженнями, перевіреними Guardian. |
|
||||
| `approvalPolicy` | `"never"` | Нативна політика погоджень Codex, що надсилається під час start/resume/turn thread. |
|
||||
| `sandbox` | `"danger-full-access"` | Нативний режим sandbox Codex, що надсилається під час start/resume thread. |
|
||||
| `approvalsReviewer` | `"user"` | Використовуйте `"auto_review"`, щоб Codex перевіряв нативні запити на погодження. `guardian_subagent` лишається застарілим псевдонімом. |
|
||||
| `serviceTier` | не задано | Необов’язковий рівень сервісу Codex app-server: `"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"` | Preset для виконання YOLO або guardian-reviewed. |
|
||||
| `approvalPolicy` | `"never"` | Нативна політика погоджень Codex, що надсилається під час старту/відновлення/ходу потоку. |
|
||||
| `sandbox` | `"danger-full-access"` | Нативний режим пісочниці Codex, що надсилається під час старту/відновлення потоку. |
|
||||
| `approvalsReviewer` | `"user"` | Використовуйте `"auto_review"`, щоб дозволити Codex перевіряти нативні запити на погодження. `guardian_subagent` лишається застарілим псевдонімом. |
|
||||
| `serviceTier` | не встановлено | Необов’язковий рівень сервісу app-server Codex: `"fast"`, `"flex"` або `null`. Некоректні застарілі значення ігноруються. |
|
||||
|
||||
Старі змінні середовища й далі працюють як резервні варіанти для локального тестування, коли
|
||||
відповідне поле конфігурації не задано:
|
||||
Перевизначення через змінні середовища, як і раніше, доступні для локального тестування:
|
||||
|
||||
- `OPENCLAW_CODEX_APP_SERVER_BIN`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
|
||||
@ -441,15 +448,18 @@ preset `guardian` розгортається в `approvalPolicy: "on-request"`,
|
||||
- `OPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICY`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_SANDBOX`
|
||||
|
||||
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` було вилучено. Натомість використовуйте
|
||||
`OPENCLAW_CODEX_APP_SERVER_BIN` обходить керований двійковий файл, коли
|
||||
`appServer.command` не встановлено.
|
||||
|
||||
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` було видалено. Натомість використовуйте
|
||||
`plugins.entries.codex.config.appServer.mode: "guardian"` або
|
||||
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для разового локального тестування. Для
|
||||
відтворюваних розгортань перевага надається конфігурації, оскільки вона зберігає поведінку Plugin
|
||||
у тому самому перевіреному файлі, що й решта налаштувань harness Codex.
|
||||
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian` для разового локального тестування. Конфігурація
|
||||
бажаніша для відтворюваних розгортань, оскільки зберігає поведінку Plugin у тому
|
||||
самому перевіреному файлі, що й решту налаштувань каркаса Codex.
|
||||
|
||||
## Поширені рецепти
|
||||
|
||||
Локальний Codex із типовим транспортом stdio:
|
||||
Локальний Codex зі стандартним транспортом stdio:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -463,7 +473,7 @@ preset `guardian` розгортається в `approvalPolicy: "on-request"`,
|
||||
}
|
||||
```
|
||||
|
||||
Перевірка harness лише з Codex:
|
||||
Перевірка каркаса лише з Codex:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -531,144 +541,143 @@ preset `guardian` розгортається в `approvalPolicy: "on-request"`,
|
||||
```
|
||||
|
||||
Перемикання моделей залишається під контролем OpenClaw. Коли сесію OpenClaw приєднано
|
||||
до наявного thread Codex, наступний хід знову надсилає до
|
||||
app-server поточну вибрану модель OpenAI, провайдера, політику погоджень, sandbox і
|
||||
рівень сервісу. Перемикання з `openai/gpt-5.5` на `openai/gpt-5.2` зберігає
|
||||
прив’язку до thread, але просить Codex продовжити з новою вибраною моделлю.
|
||||
до наявного потоку Codex, наступний хід знову надсилає в
|
||||
app-server поточні вибрані модель OpenAI, провайдера, політику погоджень, пісочницю та рівень сервісу.
|
||||
Перемикання з `openai/gpt-5.5` на `openai/gpt-5.2` зберігає
|
||||
прив’язку до потоку, але просить Codex продовжити з новою вибраною моделлю.
|
||||
|
||||
## Команда Codex
|
||||
|
||||
Комплектний Plugin реєструє `/codex` як авторизовану slash-команду. Вона є
|
||||
загальною і працює в будь-якому каналі, що підтримує текстові команди OpenClaw.
|
||||
загальною і працює в будь-якому каналі, який підтримує текстові команди OpenClaw.
|
||||
|
||||
Поширені форми:
|
||||
|
||||
- `/codex status` показує живе підключення до app-server, моделі, обліковий запис, ліміти швидкості, сервери MCP і Skills.
|
||||
- `/codex models` перелічує живі моделі Codex app-server.
|
||||
- `/codex threads [filter]` перелічує нещодавні threads Codex.
|
||||
- `/codex resume <thread-id>` приєднує поточну сесію OpenClaw до наявного thread Codex.
|
||||
- `/codex compact` просить Codex app-server виконати Compaction приєднаного thread.
|
||||
- `/codex review` запускає нативну перевірку Codex для приєднаного thread.
|
||||
- `/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 mcp` перелічує стан MCP-серверів Codex app-server.
|
||||
- `/codex skills` перелічує skills Codex app-server.
|
||||
|
||||
`/codex resume` записує той самий sidecar-файл прив’язки, який harness використовує для
|
||||
звичайних ходів. Під час наступного повідомлення OpenClaw відновлює цей thread Codex, передає
|
||||
поточну вибрану модель OpenClaw до app-server і зберігає увімкнену
|
||||
розширену історію.
|
||||
`/codex resume` записує той самий файл бічної прив’язки, який каркас використовує для
|
||||
звичайних ходів. У наступному повідомленні OpenClaw відновлює цей потік Codex, передає
|
||||
поточну вибрану модель OpenClaw в app-server і зберігає
|
||||
увімкнену розширену історію.
|
||||
|
||||
Поверхня команд вимагає Codex app-server `0.125.0` або новішого. Окремі
|
||||
Поверхня команд вимагає Codex app-server `0.125.0` або новішої версії. Окремі
|
||||
методи керування позначаються як `unsupported by this Codex app-server`, якщо
|
||||
майбутній або кастомний app-server не надає цей JSON-RPC-метод.
|
||||
майбутній або нестандартний app-server не надає цей метод JSON-RPC.
|
||||
|
||||
## Межі хуків
|
||||
|
||||
harness Codex має три шари хуків:
|
||||
Каркас Codex має три шари хуків:
|
||||
|
||||
| Шар | Власник | Призначення |
|
||||
| Layer | Owner | Purpose |
|
||||
| ------------------------------------- | ------------------------ | ------------------------------------------------------------------- |
|
||||
| Хуки Plugin OpenClaw | OpenClaw | Сумісність продукту/Plugin між harness Pi і Codex. |
|
||||
| Middleware розширення Codex app-server | Комплектні plugins OpenClaw | Поведінка адаптера для кожного ходу навколо динамічних інструментів OpenClaw. |
|
||||
| Нативні хуки Codex | Codex | Низькорівневий життєвий цикл Codex і політика нативних інструментів із конфігурації Codex. |
|
||||
| Хуки Plugin OpenClaw | OpenClaw | Сумісність продукту/Plugin між каркасами PI і Codex. |
|
||||
| Проміжне ПЗ розширення Codex app-server | Комплектні Plugins OpenClaw | Поведінка адаптера навколо динамічних інструментів OpenClaw для кожного ходу. |
|
||||
| Нативні хуки Codex | Codex | Низькорівневий життєвий цикл Codex і нативна політика інструментів із конфігурації Codex. |
|
||||
|
||||
OpenClaw не використовує файлові `hooks.json` Codex на рівні проєкту або глобальному рівні для маршрутизації
|
||||
поведінки Plugin OpenClaw. Для підтримуваного мосту нативних інструментів і дозволів
|
||||
OpenClaw впроваджує для кожного thread конфігурацію Codex для `PreToolUse`, `PostToolUse` і
|
||||
OpenClaw не використовує файли `hooks.json` Codex на рівні проєкту або глобальному рівні для маршрутизації
|
||||
поведінки Plugin OpenClaw. Для підтримуваного нативного мосту інструментів і дозволів
|
||||
OpenClaw впроваджує конфігурацію Codex для кожного потоку для `PreToolUse`, `PostToolUse` і
|
||||
`PermissionRequest`. Інші хуки Codex, такі як `SessionStart`,
|
||||
`UserPromptSubmit` і `Stop`, залишаються елементами керування на рівні Codex; вони не
|
||||
експонуються як хуки Plugin OpenClaw у контракті v1.
|
||||
`UserPromptSubmit` і `Stop`, залишаються елементами керування рівня Codex; вони не відкриті
|
||||
як хуки Plugin OpenClaw у контракті v1.
|
||||
|
||||
Для динамічних інструментів OpenClaw сам OpenClaw виконує інструмент після того, як Codex запитує
|
||||
виклик, тому OpenClaw запускає поведінку Plugin і middleware, якою він володіє, в
|
||||
адаптері harness. Для нативних інструментів Codex канонічний запис інструмента належить Codex.
|
||||
OpenClaw може віддзеркалювати вибрані події, але не може переписувати нативний thread Codex,
|
||||
якщо Codex не надає цю операцію через app-server або callbacks нативних хуків.
|
||||
Для динамічних інструментів OpenClaw OpenClaw виконує інструмент після того, як Codex запитує
|
||||
виклик, тому OpenClaw запускає поведінку Plugin і middleware, якою він володіє, у
|
||||
адаптері каркаса. Для нативних інструментів Codex Codex володіє канонічним записом інструмента.
|
||||
OpenClaw може дзеркалити вибрані події, але не може переписувати нативний потік Codex,
|
||||
якщо Codex не надає цю операцію через app-server або зворотні виклики нативних хуків.
|
||||
|
||||
Проєкції Compaction і життєвого циклу LLM надходять зі сповіщень Codex app-server
|
||||
та стану адаптера OpenClaw, а не з команд нативних хуків Codex.
|
||||
Проєкції Compaction і життєвого циклу LLM надходять із сповіщень Codex app-server
|
||||
і стану адаптера OpenClaw, а не з команд нативних хуків Codex.
|
||||
Події OpenClaw `before_compaction`, `after_compaction`, `llm_input` і
|
||||
`llm_output` — це спостереження на рівні адаптера, а не побайтові захоплення
|
||||
внутрішнього запиту Codex або payload Compaction.
|
||||
`llm_output` є спостереженнями на рівні адаптера, а не побайтними знімками
|
||||
внутрішнього запиту Codex або корисних даних Compaction.
|
||||
|
||||
Нативні сповіщення Codex app-server `hook/started` і `hook/completed`
|
||||
Нативні сповіщення app-server Codex `hook/started` і `hook/completed`
|
||||
проєктуються як події агента `codex_app_server.hook` для траєкторії та налагодження.
|
||||
Вони не викликають хуки Plugin OpenClaw.
|
||||
|
||||
## Контракт підтримки V1
|
||||
|
||||
Режим Codex — це не Pi з іншим викликом моделі в основі. Codex керує більшою частиною
|
||||
Режим Codex — це не PI з іншим викликом моделі під капотом. Codex контролює більшу частину
|
||||
нативного циклу моделі, а OpenClaw адаптує свої поверхні Plugin і сесій
|
||||
навколо цього кордону.
|
||||
навколо цієї межі.
|
||||
|
||||
Підтримується в runtime Codex v1:
|
||||
|
||||
| Поверхня | Підтримка | Чому |
|
||||
| --------------------------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Цикл моделі OpenAI через Codex | Підтримується | Codex app-server керує ходом OpenAI, нативним відновленням thread і нативним продовженням інструментів. |
|
||||
| Маршрутизація і доставка каналів OpenClaw | Підтримується | Telegram, Discord, Slack, WhatsApp, iMessage та інші канали залишаються поза runtime моделі. |
|
||||
| Динамічні інструменти OpenClaw | Підтримується | Codex просить OpenClaw виконати ці інструменти, тому OpenClaw залишається в шляху виконання. |
|
||||
| Plugins підказок і контексту | Підтримується | OpenClaw будує накладки підказок і проєктує контекст у хід Codex перед запуском або відновленням thread. |
|
||||
| Життєвий цикл рушія контексту | Підтримується | Збирання, поглинання або обслуговування після ходу, а також координація Compaction рушія контексту виконуються для ходів Codex. |
|
||||
| Хуки динамічних інструментів | Підтримується | `before_tool_call`, `after_tool_call` і middleware результатів інструментів виконуються навколо динамічних інструментів, якими володіє OpenClaw. |
|
||||
| Хуки життєвого циклу | Підтримуються як спостереження адаптера | `llm_input`, `llm_output`, `agent_end`, `before_compaction` і `after_compaction` спрацьовують із коректними payload для режиму Codex. |
|
||||
| Нативне блокування або спостереження shell, patch і MCP | Підтримується через relay нативних хуків | `PreToolUse` і `PostToolUse` Codex передаються далі для зафіксованих поверхонь нативних інструментів, включно з payload MCP у Codex app-server `0.125.0` або новішому. Блокування підтримується; переписування аргументів — ні. |
|
||||
| Нативна політика дозволів | Підтримується через relay нативних хуків | `PermissionRequest` Codex може маршрутизуватися через політику OpenClaw там, де runtime це надає. Якщо OpenClaw не повертає рішення, Codex продовжує своїм звичайним шляхом погодження guardian або користувача. |
|
||||
| Захоплення траєкторії app-server | Підтримується | OpenClaw записує запит, який він надіслав до app-server, і сповіщення, які він отримує від app-server. |
|
||||
| Surface | Support | Why |
|
||||
| --------------------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Цикл моделі OpenAI через Codex | Підтримується | Codex app-server керує ходом OpenAI, нативним відновленням потоку та нативним продовженням інструментів. |
|
||||
| Маршрутизація та доставка каналів OpenClaw | Підтримується | Telegram, Discord, Slack, WhatsApp, iMessage та інші канали залишаються поза runtime моделі. |
|
||||
| Динамічні інструменти OpenClaw | Підтримується | Codex просить OpenClaw виконати ці інструменти, тому OpenClaw залишається в шляху виконання. |
|
||||
| Plugins prompt і контексту | Підтримується | OpenClaw будує накладки prompt і проєктує контекст у хід Codex перед запуском або відновленням потоку. |
|
||||
| Життєвий цикл механізму контексту | Підтримується | Збирання, ingest або обслуговування після ходу, а також координація Compaction механізму контексту виконуються для ходів Codex. |
|
||||
| Хуки динамічних інструментів | Підтримується | `before_tool_call`, `after_tool_call` і middleware результатів інструментів виконуються навколо динамічних інструментів, що належать OpenClaw. |
|
||||
| Хуки життєвого циклу | Підтримуються як спостереження адаптера | `llm_input`, `llm_output`, `agent_end`, `before_compaction` і `after_compaction` спрацьовують із коректними payload у режимі Codex. |
|
||||
| Нативні shell, patch і MCP блокують або спостерігають | Підтримується через ретрансляцію нативних хуків | Codex `PreToolUse` і `PostToolUse` ретранслюються для зафіксованих поверхонь нативних інструментів, зокрема payload MCP у Codex app-server `0.125.0` або новішому. Блокування підтримується; переписування аргументів — ні. |
|
||||
| Нативна політика дозволів | Підтримується через ретрансляцію нативних хуків | Codex `PermissionRequest` може бути маршрутизований через політику OpenClaw там, де runtime це підтримує. Якщо OpenClaw не повертає рішення, Codex продовжує через свій звичайний шлях погодження guardian або користувача. |
|
||||
| Захоплення траєкторії app-server | Підтримується | OpenClaw записує запит, який він надіслав до app-server, і сповіщення, які отримує від app-server. |
|
||||
|
||||
Не підтримується в runtime Codex v1:
|
||||
|
||||
| Поверхня | Межа v1 | Майбутній шлях |
|
||||
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
|
||||
| Мутація аргументів нативних інструментів | Нативні pre-tool хуки Codex можуть блокувати, але OpenClaw не переписує аргументи нативних інструментів Codex. | Потребує підтримки хуків/схеми Codex для заміни вхідних даних інструмента. |
|
||||
| Редагована історія нативного транскрипту Codex | Codex володіє канонічною історією нативного thread. OpenClaw володіє дзеркалом і може проєктувати майбутній контекст, але не повинен мутувати непідтримувані внутрішні елементи. | Додати явні API Codex app-server, якщо потрібна хірургія нативного thread. |
|
||||
| `tool_result_persist` для записів нативних інструментів Codex | Цей hook трансформує записи транскрипту, якими володіє OpenClaw, а не записи нативних інструментів Codex. | Можна віддзеркалювати трансформовані записи, але канонічне переписування потребує підтримки Codex. |
|
||||
| Розширені метадані нативної Compaction | OpenClaw спостерігає початок і завершення Compaction, але не отримує стабільний список збереженого/відкинутого, дельту токенів або payload зведення. | Потрібні багатші події Compaction у Codex. |
|
||||
| Втручання в Compaction | Поточні хуки Compaction OpenClaw у режимі Codex мають рівень сповіщень. | Додати pre/post хуки Compaction у Codex, якщо plugins потрібно забороняти або переписувати нативну Compaction. |
|
||||
| Керування зупинкою або фінальною відповіддю | Codex має нативні stop-хуки, але OpenClaw не експонує керування фінальною відповіддю як контракт Plugin v1. | Майбутній opt-in primitive із захистом циклів і тайм-аутів. |
|
||||
| Побайтове захоплення запиту до API моделі | OpenClaw може захоплювати запити і сповіщення app-server, але ядро Codex будує фінальний запит до OpenAI API внутрішньо. | Потрібна подія трасування запиту моделі Codex або debug API. |
|
||||
| Surface | Межа v1 | Майбутній шлях |
|
||||
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| Мутація аргументів нативного інструмента | Нативні pre-tool хуки Codex можуть блокувати, але OpenClaw не переписує аргументи нативних інструментів Codex. | Потрібна підтримка хуків/схем Codex для заміни вхідних даних інструмента. |
|
||||
| Редагована нативна історія транскрипту Codex | Codex володіє канонічною нативною історією потоку. OpenClaw володіє дзеркалом і може проєктувати майбутній контекст, але не повинен змінювати непідтримувані внутрішні структури. | Додати явні API Codex app-server, якщо потрібна нативна хірургія потоку. |
|
||||
| `tool_result_persist` для записів нативних результатів інструментів Codex | Цей хук перетворює записи транскрипту, що належать OpenClaw, а не записи нативних інструментів Codex. | Можна було б дзеркалити перетворені записи, але канонічне переписування потребує підтримки Codex. |
|
||||
| Розширені метадані нативної Compaction | OpenClaw спостерігає початок і завершення Compaction, але не отримує стабільного списку збережених/відкинутих записів, різниці токенів або payload підсумку. | Потрібні багатші події Compaction від Codex. |
|
||||
| Втручання в Compaction | Поточні хуки Compaction OpenClaw у режимі Codex працюють на рівні сповіщень. | Додати pre/post хуки Compaction Codex, якщо Plugins мають блокувати або переписувати нативну Compaction. |
|
||||
| Керування зупинкою або фінальною відповіддю | Codex має нативні stop hooks, але OpenClaw не відкриває керування фінальною відповіддю як контракт Plugin v1. | Майбутній opt-in примітив із захистом циклу й тайм-аутів. |
|
||||
| Побайтне захоплення запиту до API моделі | OpenClaw може захоплювати запити й сповіщення app-server, але ядро Codex внутрішньо будує фінальний запит до OpenAI API. | Потрібна подія трасування запиту моделі Codex або API налагодження. |
|
||||
|
||||
## Інструменти, медіа та Compaction
|
||||
|
||||
harness Codex змінює лише низькорівневий виконавець вбудованого агента.
|
||||
Каркас Codex змінює лише низькорівневий виконавець вбудованого агента.
|
||||
|
||||
OpenClaw, як і раніше, формує список інструментів і отримує результати динамічних інструментів від
|
||||
harness. Текст, зображення, відео, музика, TTS, погодження і вихідні дані інструментів обміну повідомленнями
|
||||
продовжують проходити звичайним шляхом доставки OpenClaw.
|
||||
OpenClaw, як і раніше, будує список інструментів і отримує результати динамічних інструментів від
|
||||
каркаса. Текст, зображення, відео, музика, TTS, погодження та вивід інструментів повідомлень
|
||||
продовжують проходити через звичайний шлях доставки OpenClaw.
|
||||
|
||||
relay нативних хуків навмисно зроблений узагальненим, але контракт підтримки v1
|
||||
обмежений нативними шляхами інструментів і дозволів Codex, які тестує OpenClaw. У
|
||||
Ретрансляція нативних хуків навмисно є загальною, але контракт підтримки v1
|
||||
обмежений шляхами нативних інструментів і дозволів Codex, які тестує OpenClaw. У
|
||||
runtime Codex це включає payload `PreToolUse`,
|
||||
`PostToolUse` і `PermissionRequest` для shell, patch і MCP. Не припускайте, що кожна майбутня
|
||||
подія хуків Codex є поверхнею Plugin OpenClaw, доки контракт runtime
|
||||
не назве її.
|
||||
подія хуків Codex є поверхнею Plugin OpenClaw, доки контракт runtime прямо
|
||||
її не назве.
|
||||
|
||||
Для `PermissionRequest` OpenClaw повертає явні рішення allow або deny
|
||||
лише коли це визначає політика. Результат без рішення — це не allow. Codex
|
||||
трактує це як відсутність рішення hook і переходить до власного шляху погодження guardian або користувача.
|
||||
Для `PermissionRequest` OpenClaw повертає явні рішення дозволити або заборонити
|
||||
лише тоді, коли це вирішує політика. Результат без рішення — це не дозвіл. Codex трактує це як
|
||||
відсутність рішення хука і переходить до власного шляху погодження guardian або користувача.
|
||||
|
||||
Запити на погодження інструментів MCP Codex маршрутизуються через потік погодження
|
||||
Plugin OpenClaw, коли Codex позначає `_meta.codex_approval_kind` як
|
||||
`"mcp_tool_call"`. Запити `request_user_input` Codex надсилаються назад до
|
||||
початкового чату, а наступне поставлене в чергу повідомлення-відповідь відповідає на цей нативний
|
||||
запит сервера замість того, щоб спрямовуватися як додатковий контекст. Інші запити MCP
|
||||
на elicitation як і раніше завершуються помилкою.
|
||||
Запити на погодження інструментів MCP Codex маршрутизуються через потік погодження Plugin
|
||||
OpenClaw, коли Codex позначає `_meta.codex_approval_kind` як
|
||||
`"mcp_tool_call"`. Запити Codex `request_user_input` надсилаються назад до
|
||||
початкового чату, а наступне повідомлення в черзі відповідає на цей нативний
|
||||
запит сервера замість того, щоб використовуватися як додатковий контекст. Інші запити MCP усе ще завершуються помилкою без резервного варіанта.
|
||||
|
||||
Коли вибрана модель використовує harness Codex, нативна Compaction thread делегується
|
||||
Коли вибрана модель використовує каркас Codex, нативна Compaction потоку делегується
|
||||
Codex app-server. OpenClaw зберігає дзеркало транскрипту для історії каналу,
|
||||
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або harness. Дзеркало
|
||||
включає підказку користувача, фінальний текст асистента та полегшені записи міркувань або плану Codex,
|
||||
коли їх випромінює app-server. Наразі OpenClaw записує лише сигнали
|
||||
початку й завершення нативної Compaction. Він поки не надає
|
||||
людинозрозуміле зведення Compaction або придатний до аудиту список того, які записи Codex
|
||||
пошуку, `/new`, `/reset` і майбутнього перемикання моделі або каркаса. Дзеркало
|
||||
містить prompt користувача, фінальний текст помічника та полегшені записи міркувань
|
||||
або плану Codex, коли app-server їх надсилає. Наразі OpenClaw лише
|
||||
записує сигнали початку та завершення нативної Compaction. Він ще не показує
|
||||
людинозрозумілий підсумок Compaction або аудитований список того, які записи Codex
|
||||
зберіг після Compaction.
|
||||
|
||||
Оскільки Codex володіє канонічним нативним thread, `tool_result_persist` наразі
|
||||
не переписує записи результатів нативних інструментів Codex. Він застосовується лише тоді,
|
||||
коли OpenClaw записує результат інструмента в транскрипт сесії, яким володіє OpenClaw.
|
||||
Оскільки Codex володіє канонічним нативним потоком, `tool_result_persist` наразі не
|
||||
переписує записи нативних результатів інструментів Codex. Він застосовується лише тоді, коли
|
||||
OpenClaw записує результат інструмента в транскрипт сесії, що належить OpenClaw.
|
||||
|
||||
Генерація медіа не потребує Pi. Генерація зображень, відео, музики, PDF, TTS і
|
||||
розуміння медіа й далі використовують відповідні налаштування провайдера/моделі, такі як
|
||||
Генерація медіа не потребує PI. Генерація зображень, відео, музики, PDF, TTS і
|
||||
розуміння медіа, як і раніше, використовує відповідні налаштування провайдера/моделі, такі як
|
||||
`agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` і
|
||||
`messages.tts`.
|
||||
|
||||
@ -677,18 +686,18 @@ Codex app-server. OpenClaw зберігає дзеркало транскрип
|
||||
**Codex не з’являється як звичайний провайдер `/model`:** це очікувана поведінка для
|
||||
нових конфігурацій. Виберіть модель `openai/gpt-*` з
|
||||
`embeddedHarness.runtime: "codex"` (або застарілим посиланням `codex/*`), увімкніть
|
||||
`plugins.entries.codex.enabled` і перевірте, чи `plugins.allow` не виключає
|
||||
`plugins.entries.codex.enabled` і перевірте, чи не виключає `plugins.allow`
|
||||
`codex`.
|
||||
|
||||
**OpenClaw використовує Pi замість Codex:** `runtime: "auto"` усе ще може використовувати Pi як
|
||||
backend сумісності, коли жоден harness Codex не бере виконання на себе. Установіть
|
||||
**OpenClaw використовує PI замість Codex:** `runtime: "auto"` усе ще може використовувати PI як
|
||||
бекенд сумісності, коли жоден каркас Codex не заявляє про цей запуск. Установіть
|
||||
`embeddedHarness.runtime: "codex"`, щоб примусово вибрати Codex під час тестування. Тепер
|
||||
примусовий runtime Codex завершується помилкою замість fallback на Pi, якщо ви
|
||||
явно не задасте `embeddedHarness.fallback: "pi"`. Щойно вибрано Codex app-server,
|
||||
його збої проявляються безпосередньо без додаткової конфігурації fallback.
|
||||
примусове runtime Codex завершується помилкою замість переходу до PI, якщо ви
|
||||
явно не встановите `embeddedHarness.fallback: "pi"`. Щойно буде вибрано Codex app-server,
|
||||
його помилки відображатимуться безпосередньо без додаткової конфігурації fallback.
|
||||
|
||||
**app-server відхиляється:** оновіть Codex, щоб handshake app-server
|
||||
повідомляв версію `0.125.0` або новішу. Пререлізи тієї самої версії або версії
|
||||
**app-server відхиляється:** оновіть Codex, щоб рукостискання app-server
|
||||
повідомляло версію `0.125.0` або новішу. Пререлізи тієї самої версії або версії
|
||||
із суфіксами збірки, такі як `0.125.0-alpha.2` або `0.125.0+custom`, відхиляються, оскільки
|
||||
стабільний поріг протоколу `0.125.0` — це те, що тестує OpenClaw.
|
||||
|
||||
@ -696,21 +705,21 @@ backend сумісності, коли жоден harness Codex не бере в
|
||||
або вимкніть виявлення.
|
||||
|
||||
**Транспорт WebSocket одразу завершується помилкою:** перевірте `appServer.url`, `authToken`
|
||||
і що віддалений app-server використовує ту саму версію протоколу Codex app-server.
|
||||
і те, що віддалений app-server використовує ту саму версію протоколу Codex app-server.
|
||||
|
||||
**Модель не Codex використовує Pi:** це очікувана поведінка, якщо ви не примусово задали
|
||||
**Модель не Codex використовує PI:** це очікувано, якщо ви не примусово встановили
|
||||
`embeddedHarness.runtime: "codex"` для цього агента або не вибрали застаріле
|
||||
посилання `codex/*`. Звичайні `openai/gpt-*` та інші посилання провайдерів залишаються на своєму нормальному
|
||||
шляху провайдера в режимі `auto`. Якщо ви примусово задасте `runtime: "codex"`, кожен вбудований
|
||||
посилання `codex/*`. Звичайні `openai/gpt-*` та інші посилання провайдерів залишаються на своєму звичайному
|
||||
шляху провайдера в режимі `auto`. Якщо ви примусово встановите `runtime: "codex"`, кожен вбудований
|
||||
хід для цього агента має бути моделлю OpenAI, яку підтримує Codex.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Plugins harness агента](/uk/plugins/sdk-agent-harness)
|
||||
- [Plugins каркаса агента](/uk/plugins/sdk-agent-harness)
|
||||
- [Середовища виконання агентів](/uk/concepts/agent-runtimes)
|
||||
- [Провайдери моделей](/uk/concepts/model-providers)
|
||||
- [Провайдер OpenAI](/uk/providers/openai)
|
||||
- [Стан](/uk/cli/status)
|
||||
- [Status](/uk/cli/status)
|
||||
- [Хуки Plugin](/uk/plugins/hooks)
|
||||
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
|
||||
- [Довідник конфігурації](/uk/gateway/configuration-reference)
|
||||
- [Тестування](/uk/help/testing-live#live-codex-app-server-harness-smoke)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user