chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-22 22:59:39 +00:00
parent dbd7e38a11
commit 64ae379100
6 changed files with 1912 additions and 1863 deletions

View File

@ -1,13 +1,13 @@
---
read_when:
- Зміна маршрутизації каналів або поведінки вхідних повідомлень
- Зміна маршрутизації каналу або поведінки вхідних повідомлень
summary: Правила маршрутизації для кожного каналу (WhatsApp, Telegram, Discord, Slack) і спільний контекст
title: Маршрутизація каналів
title: Маршрутизація каналу
x-i18n:
generated_at: "2026-04-05T17:57:18Z"
generated_at: "2026-04-22T22:50:17Z"
model: gpt-5.4
provider: openai
source_hash: 63916c4dd0af5fc9bbd12581a9eb15fea14a380c5ade09323ca0c237db61e537
source_hash: 3296ab8428cb815d0cc297d0c6e7479c5554ec45e1d90eef89a68833f5979d8d
source_path: channels/channel-routing.md
workflow: 15
---
@ -19,26 +19,30 @@ OpenClaw маршрутизує відповіді **назад до канал
## Ключові терміни
- **Канал**: `telegram`, `whatsapp`, `discord`, `irc`, `googlechat`, `slack`, `signal`, `imessage`, `line`, а також канали розширень. `webchat` — це внутрішній канал інтерфейсу WebChat і не є налаштовуваним вихідним каналом.
- **AccountId**: екземпляр облікового запису для каналу (коли підтримується).
- Необов’язковий типовий обліковий запис каналу: `channels.<channel>.defaultAccount` визначає, який обліковий запис використовується, коли вихідний шлях не задає `accountId`.
- У конфігураціях із кількома обліковими записами задайте явний типовий обліковий запис (`defaultAccount` або `accounts.default`), коли налаштовано два або більше облікових записів. Без цього резервна маршрутизація може вибрати перший нормалізований ідентифікатор облікового запису.
- **AgentId**: ізольований робочий простір + сховище сесій («мозок»).
- **SessionKey**: ключ контейнера, який використовується для збереження контексту та керування паралельністю.
- **AccountId**: екземпляр облікового запису для каналу (якщо підтримується).
- Необов’язковий обліковий запис каналу за замовчуванням: `channels.<channel>.defaultAccount` визначає, який обліковий запис використовується, коли вихідний шлях не вказує `accountId`.
- У конфігураціях із кількома обліковими записами встановіть явне значення за замовчуванням (`defaultAccount` або `accounts.default`), коли налаштовано два або більше облікових записів. Без цього резервна маршрутизація може вибрати перший нормалізований ідентифікатор облікового запису.
- **AgentId**: ізольоване робоче середовище + сховище сесій («мозок»).
- **SessionKey**: ключ бакета, який використовується для зберігання контексту та керування конкурентністю.
## Форми ключів сесії (приклади)
## Форми ключів сесій (приклади)
Особисті повідомлення згортаються до **основної** сесії агента:
Більшість прямих повідомлень зводяться до **основної** сесії агента:
- `agent:<agentId>:<mainKey>` (типово: `agent:main:main`)
- `agent:<agentId>:<mainKey>` (за замовчуванням: `agent:main:main`)
Групи та канали залишаються ізольованими для кожного каналу:
Прямі повідомлення Telegram-бота ізолюються за обліковим записом бота та відправником, навіть коли `session.dmScope` дорівнює `main`, щоб рішення щодо sandbox і політики інструментів могли розрізняти DM, що походять із каналу, від основної сесії агента:
- `agent:<agentId>:telegram:<accountId>:direct:<senderId>`
Групи й канали залишаються ізольованими для кожного каналу:
- Групи: `agent:<agentId>:<channel>:group:<id>`
- Канали/кімнати: `agent:<agentId>:<channel>:channel:<id>`
Треди:
Потоки:
- Треди Slack/Discord додають `:thread:<threadId>` до базового ключа.
- Потоки Slack/Discord додають `:thread:<threadId>` до базового ключа.
- Теми форуму Telegram вбудовують `:topic:<topicId>` у ключ групи.
Приклади:
@ -46,15 +50,15 @@ OpenClaw маршрутизує відповіді **назад до канал
- `agent:main:telegram:group:-1001234567890:topic:42`
- `agent:main:discord:channel:123456:thread:987654`
## Закріплення основного маршруту особистих повідомлень
## Закріплення маршруту основних DM
Коли `session.dmScope` має значення `main`, особисті повідомлення можуть використовувати спільну основну сесію.
Щоб `lastRoute` сесії не перезаписувався особистими повідомленнями не від власника,
OpenClaw визначає закріпленого власника з `allowFrom`, якщо виконуються всі ці умови:
Коли `session.dmScope` дорівнює `main`, прямі повідомлення можуть використовувати одну спільну основну сесію.
Щоб запобігти перезапису `lastRoute` сесії прямими повідомленнями від не-власника,
OpenClaw визначає закріпленого власника з `allowFrom`, якщо виконуються всі такі умови:
- `allowFrom` має рівно один запис без wildcard.
- Цей запис можна нормалізувати до конкретного ідентифікатора відправника для цього каналу.
- Відправник вхідного особистого повідомлення не збігається з цим закріпленим власником.
- `allowFrom` містить рівно один запис без wildcard.
- Запис можна нормалізувати до конкретного ID відправника для цього каналу.
- Відправник вхідного DM не збігається з цим закріпленим власником.
У разі такої невідповідності OpenClaw усе одно записує метадані вхідної сесії, але
пропускає оновлення `lastRoute` основної сесії.
@ -63,22 +67,22 @@ OpenClaw визначає закріпленого власника з `allowFro
Маршрутизація вибирає **одного агента** для кожного вхідного повідомлення:
1. **Точний збіг вузла** (`bindings` з `peer.kind` + `peer.id`).
2. **Збіг батьківського вузла** (успадкування треду).
3. **Збіг сервера + ролей** (Discord) через `guildId` + `roles`.
4. **Збіг сервера** (Discord) через `guildId`.
5. **Збіг команди** (Slack) через `teamId`.
1. **Точний збіг peer** (`bindings` з `peer.kind` + `peer.id`).
2. **Збіг батьківського peer** (успадкування потоку).
3. **Збіг guild + ролей** (Discord) через `guildId` + `roles`.
4. **Збіг guild** (Discord) через `guildId`.
5. **Збіг team** (Slack) через `teamId`.
6. **Збіг облікового запису** (`accountId` у каналі).
7. **Збіг каналу** (будь-який обліковий запис у цьому каналі, `accountId: "*"`).
8. **Типовий агент** (`agents.list[].default`, інакше перший запис списку, резервно — `main`).
8. **Агент за замовчуванням** (`agents.list[].default`, інакше перший запис у списку, резервно — `main`).
Коли прив’язка містить кілька полів збігу (`peer`, `guildId`, `teamId`, `roles`), **усі вказані поля мають збігатися**, щоб ця прив’язка застосувалася.
Коли binding містить кілька полів збігу (`peer`, `guildId`, `teamId`, `roles`), **усі надані поля мають збігатися**, щоб цей binding було застосовано.
Вибраний агент визначає, який робочий простір і сховище сесій використовуються.
Вибраний агент визначає, яке робоче середовище та сховище сесій використовуються.
## Broadcast groups (запуск кількох агентів)
## Групи широкомовлення (запуск кількох агентів)
Broadcast groups дають змогу запускати **кількох агентів** для одного й того самого вузла **коли OpenClaw зазвичай відповідає** (наприклад, у групах WhatsApp після проходження згадки/активаційного шлюзу).
Групи широкомовлення дають змогу запускати **кількох агентів** для одного й того самого peer **коли OpenClaw зазвичай відповідав би** (наприклад, у групах WhatsApp після згадки/активаційного фільтра).
Конфігурація:
@ -92,19 +96,19 @@ Broadcast groups дають змогу запускати **кількох аг
}
```
Див.: [Broadcast Groups](/channels/broadcast-groups).
Див.: [Групи широкомовлення](/uk/channels/broadcast-groups).
## Огляд конфігурації
- `agents.list`: іменовані визначення агентів (робочий простір, модель тощо).
- `bindings`: зіставлення вхідних каналів/облікових записів/вузлів з агентами.
- `agents.list`: іменовані визначення агентів (робоче середовище, модель тощо).
- `bindings`: зіставляє вхідні канали/облікові записи/peer з агентами.
Приклад:
```json5
{
agents: {
list: [{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }],
list: [{ id: "support", name: "Підтримка", workspace: "~/.openclaw/workspace-support" }],
},
bindings: [
{ match: { channel: "slack", teamId: "T123" }, agentId: "support" },
@ -115,29 +119,29 @@ Broadcast groups дають змогу запускати **кількох аг
## Зберігання сесій
Сховища сесій розміщуються в каталозі стану (типово `~/.openclaw`):
Сховища сесій розміщуються в каталозі стану (за замовчуванням `~/.openclaw`):
- `~/.openclaw/agents/<agentId>/sessions/sessions.json`
- Транскрипти JSONL розміщуються поруч зі сховищем
- JSONL-транскрипти зберігаються поруч зі сховищем
Ви можете перевизначити шлях до сховища через `session.store` і шаблонізацію `{agentId}`.
Виявлення сесій Gateway і ACP також сканує дискові сховища агентів у типовому
корені `agents/` і в коренях `session.store`, побудованих за шаблоном. Виявлені
сховища мають залишатися в межах цього обчисленого кореня агента та використовувати звичайний файл
`sessions.json`. Символічні посилання та шляхи поза коренем ігноруються.
Gateway та ACP під час виявлення сесій також сканують дискові сховища агентів під
коренем `agents/` за замовчуванням і під коренями `session.store` з шаблонами. Виявлені
сховища мають залишатися в межах цього обчисленого кореня агента й використовувати звичайний
файл `sessions.json`. Символічні посилання та шляхи поза коренем ігноруються.
## Поведінка WebChat
WebChat підключається до **вибраного агента** і типово використовує основну
сесію агента. Через це WebChat дає змогу бачити міжканальний контекст для цього
агента в одному місці.
WebChat прив’язується до **вибраного агента** і за замовчуванням використовує
основну сесію агента. Завдяки цьому WebChat дає змогу бачити міжканальний контекст
для цього агента в одному місці.
## Контекст відповіді
Вхідні відповіді включають:
Вхідні відповіді містять:
- `ReplyToId`, `ReplyToBody` і `ReplyToSender`, коли доступні.
- `ReplyToId`, `ReplyToBody` і `ReplyToSender`, якщо доступні.
- Цитований контекст додається до `Body` як блок `[Replying to ...]`.
Це узгоджено в усіх каналах.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,32 +2,37 @@
read_when:
- Налаштування OpenClaw уперше
- Шукаєте поширені шаблони конфігурації
- Перехід до певних розділів конфігурації
- Перехід до конкретних розділів конфігурації
summary: 'Огляд конфігурації: поширені завдання, швидке налаштування та посилання на повний довідник'
title: Конфігурація
x-i18n:
generated_at: "2026-04-22T22:37:31Z"
generated_at: "2026-04-22T22:50:20Z"
model: gpt-5.4
provider: openai
source_hash: 966f6a6500fc2f649ee4612404092fd70305065544807c1d8bbc80aa840f9e97
source_hash: 7b8fccabd04e075f3a59c3b94fe11eca19ddffa2e405d76a9fe92be38ea5a8da
source_path: gateway/configuration.md
workflow: 15
---
# Конфігурація
OpenClaw зчитує необов’язкову конфігурацію <Tooltip tip="JSON5 supports comments and trailing commas">**JSON5**</Tooltip> з `~/.openclaw/openclaw.json`.
OpenClaw зчитує необов’язкову конфігурацію <Tooltip tip="JSON5 підтримує коментарі та завертальні коми">**JSON5**</Tooltip> з `~/.openclaw/openclaw.json`.
Активний шлях до конфігурації має вказувати на звичайний файл. Схеми
`openclaw.json` із символічними посиланнями не підтримуються для записів,
якими керує OpenClaw; атомарний запис може замінити шлях замість збереження
символічного посилання. Якщо ви зберігаєте конфігурацію поза типовим
каталогом стану, вкажіть `OPENCLAW_CONFIG_PATH` безпосередньо на реальний файл.
Якщо файл відсутній, OpenClaw використовує безпечні значення за замовчуванням. Типові причини додати конфігурацію:
- Підключити канали та керувати тим, хто може надсилати повідомлення боту
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (Cron, hooks)
- Тонко налаштувати сесії, медіа, мережу або UI
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (cron, hooks)
- Налаштувати сесії, медіа, мережу або UI
Перегляньте [повний довідник](/uk/gateway/configuration-reference), щоб побачити всі доступні поля.
<Tip>
**Вперше працюєте з конфігурацією?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) із готовими конфігураціями для копіювання.
**Вперше працюєте з конфігурацією?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) із готовими конфігураціями для копіювання та вставлення.
</Tip>
## Мінімальна конфігурація
@ -58,11 +63,12 @@ OpenClaw зчитує необов’язкову конфігурацію <Tool
</Tab>
<Tab title="Control UI">
Відкрийте [http://127.0.0.1:18789](http://127.0.0.1:18789) і використовуйте вкладку **Config**.
Control UI відображає форму з живої схеми конфігурації, включно з метаданими документації полів
`title` / `description`, а також схемами plugin і каналів, коли вони
доступні, з редактором **Raw JSON** як запасним варіантом. Для деталізованих
UI та інших інструментів Gateway також надає `config.schema.lookup`, щоб
отримати один вузол схеми для вказаного шляху разом зі зведеннями про безпосередніх дочірніх елементів.
Control UI відображає форму на основі живої схеми конфігурації, включно з
метаданими документації полів `title` / `description`, а також схемами plugin і каналів,
коли вони доступні, з редактором **Raw JSON** як запасним варіантом. Для
деталізованих UI та інших інструментів gateway також надає `config.schema.lookup` для
отримання одного вузла схеми, обмеженого шляхом, разом із підсумками
безпосередніх дочірніх елементів.
</Tab>
<Tab title="Пряме редагування">
Відредагуйте `~/.openclaw/openclaw.json` безпосередньо. Gateway відстежує файл і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
@ -72,60 +78,61 @@ OpenClaw зчитує необов’язкову конфігурацію <Tool
## Сувора валідація
<Warning>
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли додавати метадані JSON Schema.
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призведуть до того, що Gateway **відмовиться запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли підключати метадані JSON Schema.
</Warning>
Примітки щодо інструментів схеми:
Нотатки щодо інструментів схем:
- `openclaw config schema` виводить те саме сімейство JSON Schema, яке використовується в Control UI
і для валідації конфігурації.
- Вважайте цей вивід схеми канонічним машиночитним контрактом для
- `openclaw config schema` виводить ту саму сім’ю JSON Schema, яку використовують Control UI
і валідація конфігурації.
- Розглядайте цей вивід схеми як канонічний машиночитаний контракт для
`openclaw.json`; цей огляд і довідник з конфігурації його узагальнюють.
- Значення полів `title` і `description` переносяться до виводу схеми для
редакторів і інструментів форм.
- Вкладені об’єкти, записи wildcard (`*`) та елементи масиву (`[]`) успадковують ті самі
метадані документації там, де існує відповідна документація поля.
- Значення полів `title` і `description` переносяться у вивід схеми для
редакторів і інструментів побудови форм.
- Вкладені об’єкти, записи з шаблоном (`*`) і елементи масиву (`[]`) успадковують ті самі
метадані документації, де існує відповідна документація поля.
- Гілки композиції `anyOf` / `oneOf` / `allOf` також успадковують ті самі
метадані документації, тож варіанти union/intersection зберігають ту саму довідку полів.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з поверхневим
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені обмеження
та подібні поля валідації), відповідні метадані UI-підказок і зведення про безпосередніх дочірніх елементів
для інструментів детального перегляду.
- Схеми plugin/каналів під час виконання об’єднуються, коли gateway може завантажити
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, типові обмеження
та схожі поля валідації), відповідними метаданими підказок UI і підсумками
безпосередніх дочірніх елементів для інструментів деталізації.
- Схеми runtime plugin/каналів об’єднуються, коли gateway може завантажити
поточний реєстр маніфестів.
- `pnpm config:docs:check` виявляє розходження між базовими артефактами конфігурації для документації
і поточною поверхнею схеми.
- `pnpm config:docs:check` виявляє розбіжності між артефактами базових конфігурацій
для документації та поточною поверхнею схеми.
Коли валідація не проходить:
- Gateway не запускається
- Працюють лише діагностичні команди (`openclaw doctor`, `openclaw logs`, `openclaw health`, `openclaw status`)
- Запустіть `openclaw doctor`, щоб побачити точні проблеми
- Запустіть `openclaw doctor --fix` (або `--yes`), щоб застосувати виправлення
- Виконайте `openclaw doctor`, щоб побачити точні проблеми
- Виконайте `openclaw doctor --fix` (або `--yes`), щоб застосувати виправлення
Gateway також зберігає довірену останню відому коректну копію після успішного запуску. Якщо
`openclaw.json` пізніше змінюється поза OpenClaw і більше не проходить валідацію, під час запуску
та гарячого перезавантаження зламаний файл зберігається як `.clobbered.*`-знімок із часовою позначкою,
відновлюється остання відома коректна копія, а в журнал записується помітне попередження з причиною відновлення.
Відновлення під час читання на старті також вважає критичними ознаками пошкодження різке зменшення розміру,
відсутні метадані конфігурації та відсутність `gateway.mode`, коли в останній відомій коректній
копії ці поля були.
Якщо перед інакше коректною конфігурацією JSON випадково додається рядок статусу/журналу,
запуск gateway і `openclaw doctor --fix` можуть прибрати цей префікс,
зберегти забруднений файл як `.clobbered.*` і продовжити роботу з відновленим
JSON.
Наступний хід головного агента також отримує попередження системної події про те, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Підвищення статусу останньої відомої коректної копії
оновлюється після валідованого запуску і після прийнятих гарячих перезавантажень, включно з
записами конфігурації, виконаними самим OpenClaw, якщо хеш збереженого файла все ще збігається з прийнятим
записом. Підвищення пропускається, коли кандидат містить замасковані заповнювачі секретів,
такі як `***` або скорочені значення токенів.
Gateway також зберігає довірену останню відому справну копію після успішного запуску. Якщо
`openclaw.json` пізніше змінено поза OpenClaw і він більше не проходить валідацію, під час запуску
та гарячого перезавантаження пошкоджений файл зберігається як знімок `.clobbered.*` із часовою
міткою, відновлюється остання відома справна копія, а в журнали записується
помітне попередження з причиною відновлення. Відновлення під час читання на
запуску також розглядає різке зменшення розміру, відсутність метаданих
конфігурації та відсутність `gateway.mode` як критичні ознаки пошкодження, якщо
в останній відомій справній копії ці поля були.
Якщо рядок статусу/журналу випадково додається на початку перед інакше
коректною JSON-конфігурацією, запуск gateway і `openclaw doctor --fix` можуть
видалити цей префікс, зберегти забруднений файл як `.clobbered.*` і продовжити
роботу з відновленим JSON.
Наступний хід основного агента також отримує попередження про системну подію, яке повідомляє,
що конфігурацію було відновлено і її не можна бездумно перезаписувати. Підвищення статусу
останньої відомої справної копії оновлюється після валідованого запуску та після прийнятих
гарячих перезавантажень, включно із записами конфігурації, якими керує OpenClaw, коли хеш
збереженого файла все ще збігається з прийнятим записом. Підвищення статусу пропускається,
якщо кандидат містить замасковані заповнювачі секретів, такі як `***` або скорочені значення токенів.
## Поширені завдання
<AccordionGroup>
<Accordion title="Налаштувати канал (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Дивіться окрему сторінку каналу для кроків налаштування:
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Перегляньте окрему сторінку каналу для кроків налаштування:
- [WhatsApp](/uk/channels/whatsapp) — `channels.whatsapp`
- [Telegram](/uk/channels/telegram) — `channels.telegram`
@ -138,7 +145,7 @@ JSON.
- [iMessage](/uk/channels/imessage) — `channels.imessage`
- [Mattermost](/uk/channels/mattermost) — `channels.mattermost`
Усі канали використовують однаковий шаблон політики DM:
Усі канали мають спільний шаблон політики DM:
```json5
{
@ -156,7 +163,7 @@ JSON.
</Accordion>
<Accordion title="Вибрати та налаштувати моделі">
Задайте основну модель і необов’язкові резервні варіанти:
Установіть основну модель і необов’язкові резервні:
```json5
{
@ -176,30 +183,30 @@ JSON.
```
- `agents.defaults.models` визначає каталог моделей і слугує allowlist для `/model`.
- Використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додати записи до allowlist без видалення наявних моделей. Звичайні заміни, які видаляють записи, відхиляються, якщо не передати `--replace`.
- Використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додати записи до allowlist без видалення наявних моделей. Звичайні заміни, які видалили б записи, відхиляються, якщо не передати `--replace`.
- Посилання на моделі використовують формат `provider/model` (наприклад, `anthropic/claude-opus-4-6`).
- `agents.defaults.imageMaxDimensionPx` керує зменшенням розміру зображень у transcript/tool (типове значення `1200`); менші значення зазвичай зменшують використання vision-токенів у сценаріях із великою кількістю скриншотів.
- Дивіться [Models CLI](/uk/concepts/models) для перемикання моделей у чаті та [Model Failover](/uk/concepts/model-failover) для ротації авторизації та поведінки резервних моделей.
- Для власних/self-hosted provider див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
- `agents.defaults.imageMaxDimensionPx` керує зменшенням розміру зображень у транскрипті/інструментах (типове значення `1200`); нижчі значення зазвичай зменшують використання vision-токенів у запусках із великою кількістю скриншотів.
- Перегляньте [Models CLI](/uk/concepts/models), щоб перемикати моделі в чаті, і [Model Failover](/uk/concepts/model-failover), щоб дізнатися про ротацію автентифікації та поведінку резервного перемикання.
- Для користувацьких/self-hosted provider перегляньте [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
</Accordion>
<Accordion title="Керувати тим, хто може надсилати повідомлення боту">
Доступ до DM керується окремо для кожного каналу через `dmPolicy`:
- `"pairing"` (типово): невідомі відправники отримують одноразовий код pairing для підтвердження
- `"pairing"` (типово): невідомі відправники отримують одноразовий код сполучення для підтвердження
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища paired allow)
- `"open"`: дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі DM
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або allowlist, специфічні для каналу.
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або списки дозволених, специфічні для каналу.
Дивіться [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для подробиць по кожному каналу.
Перегляньте [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access), щоб дізнатися деталі для кожного каналу.
</Accordion>
<Accordion title="Налаштувати фільтрацію згадок у групових чатах">
Для групових повідомлень типово **потрібна згадка**. Налаштуйте шаблони для кожного агента:
<Accordion title="Налаштувати gating згадувань у груповому чаті">
Для групових повідомлень типовим є режим **вимагати згадування**. Налаштуйте шаблони для кожного агента:
```json5
{
@ -221,13 +228,13 @@ JSON.
}
```
- **Згадки в метаданих**: нативні @-згадки (tap-to-mention у WhatsApp, @bot у Telegram тощо)
- **Згадування в метаданих**: нативні @-згадування (WhatsApp tap-to-mention, Telegram @bot тощо)
- **Текстові шаблони**: безпечні regex-шаблони в `mentionPatterns`
- Дивіться [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для по-канальних перевизначень і режиму self-chat.
- Перегляньте [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating), щоб дізнатися про перевизначення для окремих каналів і режим self-chat.
</Accordion>
<Accordion title="Обмежити Skills для агента">
<Accordion title="Обмежити Skills для кожного агента">
Використовуйте `agents.defaults.skills` для спільної базової конфігурації, а потім перевизначайте конкретних
агентів через `agents.list[].skills`:
@ -238,18 +245,18 @@ JSON.
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // успадковує github, weather
{ id: "docs", skills: ["docs-search"] }, // замінює значення за замовчуванням
{ id: "locked-down", skills: [] }, // без Skills
{ id: "writer" }, // inherits github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
],
},
}
```
- Не вказуйте `agents.defaults.skills`, якщо типово Skills не мають бути обмежені.
- Не вказуйте `agents.list[].skills`, щоб успадкувати значення за замовчуванням.
- Встановіть `agents.list[].skills: []`, щоб не дозволити жодних Skills.
- Дивіться [Skills](/uk/tools/skills), [конфігурацію Skills](/uk/tools/skills-config) і
- Опустіть `agents.defaults.skills`, щоб за замовчуванням Skills не були обмежені.
- Опустіть `agents.list[].skills`, щоб успадкувати значення за замовчуванням.
- Установіть `agents.list[].skills: []`, щоб не використовувати Skills.
- Перегляньте [Skills](/uk/tools/skills), [конфігурацію Skills](/uk/tools/skills-config) і
[Довідник з конфігурації](/uk/gateway/configuration-reference#agents-defaults-skills).
</Accordion>
@ -277,10 +284,10 @@ JSON.
}
```
- Встановіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски через моніторинг стану.
- `channelStaleEventThresholdMinutes` має бути більшим або дорівнювати інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу або облікового запису без вимкнення глобального монітора.
- Дивіться [Health Checks](/uk/gateway/health) для операційного налагодження та [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
- Установіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски моніторингу стану.
- `channelStaleEventThresholdMinutes` має бути більшим або рівним інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу або облікового запису без вимкнення глобального моніторингу.
- Перегляньте [Health Checks](/uk/gateway/health) для операційного налагодження і [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
</Accordion>
@ -290,7 +297,7 @@ JSON.
```json5
{
session: {
dmScope: "per-channel-peer", // рекомендовано для багатьох користувачів
dmScope: "per-channel-peer", // recommended for multi-user
threadBindings: {
enabled: true,
idleHours: 24,
@ -305,15 +312,15 @@ JSON.
}
```
- `dmScope`: `main` (спільна) | `per-peer` | `per-channel-peer` | `per-account-channel-peer`
- `threadBindings`: глобальні значення за замовчуванням для маршрутизації сесій, прив’язаних до thread (Discord підтримує `/focus`, `/unfocus`, `/agents`, `/session idle` і `/session max-age`).
- Дивіться [Керування сесіями](/uk/concepts/session) для області дії, зв’язків ідентичностей і політики надсилання.
- Дивіться [повний довідник](/uk/gateway/configuration-reference#session) для всіх полів.
- `dmScope`: `main` (спільний) | `per-peer` | `per-channel-peer` | `per-account-channel-peer`
- `threadBindings`: глобальні значення за замовчуванням для маршрутизації сесій, прив’язаних до тредів (Discord підтримує `/focus`, `/unfocus`, `/agents`, `/session idle` і `/session max-age`).
- Перегляньте [Керування сесіями](/uk/concepts/session), щоб дізнатися про область дії, зв’язки ідентичностей і політику надсилання.
- Перегляньте [повний довідник](/uk/gateway/configuration-reference#session), щоб побачити всі поля.
</Accordion>
<Accordion title="Увімкнути ізоляцію">
Запускайте сесії агентів в ізольованих runtime ізолятора:
Запускайте сесії агентів в ізольованих runtime ізоляції:
```json5
{
@ -330,14 +337,14 @@ JSON.
Спочатку зберіть образ: `scripts/sandbox-setup.sh`
Дивіться [Sandboxing](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
Перегляньте [Ізоляція](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
</Accordion>
<Accordion title="Увімкнути relay-backed push для офіційних збірок iOS">
Relay-backed push налаштовується в `openclaw.json`.
<Accordion title="Увімкнути push через relay для офіційних збірок iOS">
Push через relay налаштовується в `openclaw.json`.
Укажіть це в конфігурації gateway:
Установіть це в конфігурації gateway:
```json5
{
@ -355,7 +362,7 @@ JSON.
}
```
Еквівалент через CLI:
Еквівалент у CLI:
```bash
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
@ -363,31 +370,31 @@ JSON.
Що це робить:
- Дозволяє gateway надсилати `push.test`, сигнали пробудження та сигнали повторного підключення через зовнішній relay.
- Використовує grant на надсилання в межах реєстрації, який пересилає спарений застосунок iOS. Gateway не потрібен relay-токен для всього розгортання.
- Прив’язує кожну relay-backed реєстрацію до ідентичності gateway, з якою було спарено застосунок iOS, тож інший gateway не може повторно використати збережену реєстрацію.
- Залишає локальні/ручні збірки iOS на прямому APNs. Relay-backed надсилання застосовується лише до офіційно розповсюджених збірок, які зареєструвалися через relay.
- Має збігатися з базовим URL relay, вбудованим в офіційну/TestFlight збірку iOS, щоб трафік реєстрації й надсилання потрапляв до одного й того самого розгортання relay.
- Дозволяє gateway надсилати `push.test`, сигнали пробудження та пробудження для перепідключення через зовнішній relay.
- Використовує право надсилання, обмежене реєстрацією, яке пересилає спарений застосунок iOS. Gateway не потрібен relay-токен для всього розгортання.
- Прив’язує кожну реєстрацію через relay до ідентичності gateway, з якою був спарений застосунок iOS, тож інший gateway не може повторно використати збережену реєстрацію.
- Залишає локальні/ручні збірки iOS на прямому APNs. Надсилання через relay застосовуються лише до офіційно розповсюджуваних збірок, які зареєструвалися через relay.
- Має збігатися з базовим URL relay, вбудованим в офіційну/TestFlight збірку iOS, щоб трафік реєстрації та надсилання потрапляв до того самого розгортання relay.
Повний потік end-to-end:
Повний потік роботи:
1. Установіть офіційну/TestFlight збірку iOS, скомпільовану з тим самим базовим URL relay.
2. Налаштуйте `gateway.push.apns.relay.baseUrl` на gateway.
3. Спарте застосунок iOS із gateway і дочекайтеся підключення як node-, так і operator-сесій.
4. Застосунок iOS отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції застосунку, а потім публікує relay-backed payload `push.apns.register` у спарений gateway.
5. Gateway зберігає relay handle і send grant, а потім використовує їх для `push.test`, сигналів пробудження та сигналів повторного підключення.
3. Спарте застосунок iOS із gateway і дозвольте підключитися як сесіям node, так і сесіям оператора.
4. Застосунок iOS отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції застосунку, а потім публікує payload `push.apns.register` через relay до спареного gateway.
5. Gateway зберігає relay handle і право надсилання, а потім використовує їх для `push.test`, сигналів пробудження та пробуджень для перепідключення.
Операційні примітки:
- Якщо ви перемикаєте застосунок iOS на інший gateway, перепідключіть застосунок, щоб він міг опублікувати нову relay-реєстрацію, прив’язану до цього gateway.
- Якщо ви випускаєте нову збірку iOS, що вказує на інше розгортання relay, застосунок оновлює кешовану relay-реєстрацію замість повторного використання старого relay-origin.
- Якщо ви перемикаєте застосунок iOS на інший gateway, перепідключіть застосунок, щоб він міг опублікувати нову реєстрацію relay, прив’язану до цього gateway.
- Якщо ви випускаєте нову збірку iOS, яка вказує на інше розгортання relay, застосунок оновлює кешовану реєстрацію relay замість повторного використання старого relay origin.
Примітка щодо сумісності:
- `OPENCLAW_APNS_RELAY_BASE_URL` і `OPENCLAW_APNS_RELAY_TIMEOUT_MS` усе ще працюють як тимчасові перевизначення через env.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` лишається запасним варіантом для розробки лише в local loopback; не зберігайте HTTP relay URL у конфігурації.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` залишається доступним лише для loopback аварійним варіантом розробки; не зберігайте HTTP URL relay у конфігурації.
Дивіться [iOS App](/uk/platforms/ios#relay-backed-push-for-official-builds) для повного end-to-end потоку та [Authentication and trust flow](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
Перегляньте [Застосунок iOS](/uk/platforms/ios#relay-backed-push-for-official-builds) для повного потоку та [Потік автентифікації й довіри](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
</Accordion>
@ -408,7 +415,7 @@ JSON.
- `every`: рядок тривалості (`30m`, `2h`). Установіть `0m`, щоб вимкнути.
- `target`: `last` | `none` | `<channel-id>` (наприклад, `discord`, `matrix`, `telegram` або `whatsapp`)
- `directPolicy`: `allow` (типово) або `block` для цілей Heartbeat у стилі DM
- Дивіться [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
- Перегляньте [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
</Accordion>
@ -427,14 +434,14 @@ JSON.
}
```
- `sessionRetention`: очищати завершені ізольовані сесії запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищати `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Дивіться [Завдання Cron](/uk/automation/cron-jobs) для огляду функції та прикладів CLI.
- `sessionRetention`: очищення завершених ізольованих сесій запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищення `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Перегляньте [Завдання Cron](/uk/automation/cron-jobs) для огляду можливостей і прикладів CLI.
</Accordion>
<Accordion title="Налаштувати Webhook (hooks)">
Увімкніть HTTP-ендпоїнти Webhook на Gateway:
<Accordion title="Налаштувати Webhook (hooks)">
Увімкніть HTTP endpoint-и Webhook на Gateway:
```json5
{
@ -458,20 +465,20 @@ JSON.
```
Примітка щодо безпеки:
- Увесь вміст payload hook/Webhook слід вважати недовіреним введенням.
- Вважайте весь вміст payload hook/Webhook ненадійним введенням.
- Використовуйте окремий `hooks.token`; не використовуйте повторно спільний токен Gateway.
- Автентифікація hook працює лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в query-рядку відхиляються.
- `hooks.path` не може бути `/`; використовуйте для входу Webhook окремий підшлях, наприклад `/hooks`.
- Тримайте прапорці обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте вузькоспрямоване налагодження.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також задайте `hooks.allowedSessionKeyPrefixes`, щоб обмежити session key, які може вибрати викликач.
- Для агентів, керованих hook, надавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс ізоляція, де це можливо).
- Автентифікація hook працює лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в рядку запиту відхиляються.
- `hooks.path` не може бути `/`; використовуйте для вхідних Webhook окремий підшлях, наприклад `/hooks`.
- Тримайте прапорці обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте строго обмежене налагодження.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити ключі сесій, які може вибирати викликач.
- Для агентів, що працюють через hooks, віддавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс ізоляція, де це можливо).
Дивіться [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів mappings та інтеграції Gmail.
Перегляньте [повний довідник](/uk/gateway/configuration-reference#hooks), щоб побачити всі параметри mapping і інтеграцію з Gmail.
</Accordion>
<Accordion title="Налаштувати маршрутизацію між кількома агентами">
Запускайте кілька ізольованих агентів з окремими workspace і сесіями:
<Accordion title="Налаштувати маршрутизацію кількох агентів">
Запускайте кількох ізольованих агентів з окремими робочими просторами та сесіями:
```json5
{
@ -488,12 +495,12 @@ JSON.
}
```
Дивіться [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing) для правил bindings і профілів доступу для кожного агента.
Перегляньте [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing), щоб дізнатися про правила binding і профілі доступу для кожного агента.
</Accordion>
<Accordion title="Розділити конфігурацію на кілька файлів ($include)">
Використовуйте `$include` для організації великих конфігурацій:
Використовуйте `$include`, щоб упорядкувати великі конфігурації:
```json5
// ~/.openclaw/openclaw.json
@ -506,12 +513,12 @@ JSON.
}
```
- **Один файл**: замінює об’єкт, що його містить
- **Масив файлів**: глибоко об’єднується за порядком (пізніші значення мають пріоритет)
- **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файлу, який виконує включення
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних includes
- **Один файл**: замінює об’єкт, у якому міститься
- **Масив файлів**: глибоко об’єднується за порядком (пізніший має пріоритет)
- **Сусідні ключі**: об’єднуються після include-ів (перевизначають включені значення)
- **Вкладені include**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файла, який виконує включення
- **Обробка помилок**: чіткі помилки для відсутніх файлів, помилок парсингу та циклічних include-ів
</Accordion>
</AccordionGroup>
@ -520,26 +527,26 @@ JSON.
Gateway відстежує `~/.openclaw/openclaw.json` і автоматично застосовує зміни — для більшості налаштувань ручний перезапуск не потрібен.
Прямі редагування файлу вважаються недовіреними, доки не пройдуть валідацію. Спостерігач чекає,
поки завершаться тимчасові записи/перейменування редактора, читає підсумковий файл і відхиляє
некоректні зовнішні редагування, відновлюючи останню відому коректну конфігурацію. Власні записи конфігурації OpenClaw
використовують той самий контроль схеми перед записом; руйнівні пошкодження, такі
Прямі зміни файлу вважаються ненадійними, доки не пройдуть валідацію. Спостерігач
чекає, поки завершиться тимчасовий запис/перейменування редактора, зчитує
фінальний файл і відхиляє недійсні зовнішні зміни, відновлюючи останню відому
справну конфігурацію. Записи конфігурації, якими керує OpenClaw, проходять ту саму перевірку схемою перед записом; руйнівні пошкодження, такі
як видалення `gateway.mode` або зменшення файлу більш ніж удвічі, відхиляються
і зберігаються як `.rejected.*` для перевірки.
Якщо ви бачите `Config auto-restored from last-known-good` або
`config reload restored last-known-good config` у журналах, перевірте відповідний
файл `.clobbered.*` поруч із `openclaw.json`, виправте відхилений payload, а потім запустіть
`openclaw config validate`. Дивіться [усунення проблем Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
для контрольного списку відновлення.
Якщо ви бачите в журналах `Config auto-restored from last-known-good` або
`config reload restored last-known-good config`, перевірте відповідний
файл `.clobbered.*` поруч із `openclaw.json`, виправте відхилений payload, а потім виконайте
`openclaw config validate`. Перегляньте [Усунення проблем Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config),
щоб ознайомитися з контрольним списком відновлення.
### Режими перезавантаження
| Режим | Поведінка |
| ---------------------- | -------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Миттєво гаряче застосовує безпечні зміни. Автоматично перезапускається для критичних. |
| **`hot`** | Гаряче застосовує лише безпечні зміни. Записує попередження, коли потрібен перезапуск — ви виконуєте його самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| Режим | Поведінка |
| ---------------------- | ---------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Миттєво гаряче застосовує безпечні зміни. Для критичних змін автоматично перезапускає. |
| **`hot`** | Гаряче застосовує лише безпечні зміни. Записує попередження, коли потрібен перезапуск — ви обробляєте це самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набудуть чинності під час наступного ручного перезапуску. |
```json5
@ -554,42 +561,42 @@ Gateway відстежує `~/.openclaw/openclaw.json` і автоматично
Більшість полів застосовуються гаряче без простою. У режимі `hybrid` зміни, що потребують перезапуску, обробляються автоматично.
| Категорія | Поля | Потрібен перезапуск? |
| ------------------ | ----------------------------------------------------------------- | -------------------- |
| Канали | `channels.*`, `web` (WhatsApp) — усі вбудовані канали й канали plugin | Ні |
| Агенти й моделі | `agent`, `agents`, `models`, `routing` | Ні |
| Автоматизація | `hooks`, `cron`, `agent.heartbeat` | Ні |
| Сесії та повідомлення | `session`, `messages` | Ні |
| Інструменти й медіа | `tools`, `browser`, `skills`, `audio`, `talk` | Ні |
| UI та інше | `ui`, `logging`, `identity`, `bindings` | Ні |
| Сервер Gateway | `gateway.*` (port, bind, auth, tailscale, TLS, HTTP) | **Так** |
| Інфраструктура | `discovery`, `canvasHost`, `plugins` | **Так** |
| Категорія | Поля | Потрібен перезапуск? |
| -------------------- | ----------------------------------------------------------------- | -------------------- |
| Канали | `channels.*`, `web` (WhatsApp) — усі вбудовані канали та канали plugin | Ні |
| Агент і моделі | `agent`, `agents`, `models`, `routing` | Ні |
| Автоматизація | `hooks`, `cron`, `agent.heartbeat` | Ні |
| Сесії та повідомлення | `session`, `messages` | Ні |
| Інструменти й медіа | `tools`, `browser`, `skills`, `audio`, `talk` | Ні |
| UI та інше | `ui`, `logging`, `identity`, `bindings` | Ні |
| Сервер Gateway | `gateway.*` (port, bind, auth, tailscale, TLS, HTTP) | **Так** |
| Інфраструктура | `discovery`, `canvasHost`, `plugins` | **Так** |
<Note>
`gateway.reload` і `gateway.remote` — винятки; їх зміна **не** спричиняє перезапуск.
`gateway.reload` і `gateway.remote` — винятки: їх зміна **не** спричиняє перезапуск.
</Note>
## RPC конфігурації (програмні оновлення)
<Note>
RPC керуючої площини для запису (`config.apply`, `config.patch`, `update.run`) мають обмеження швидкості — **3 запити за 60 секунд** на `deviceId+clientIp`. При спрацюванні обмеження RPC повертає `UNAVAILABLE` з `retryAfterMs`.
RPC керувальної площини для запису (`config.apply`, `config.patch`, `update.run`) обмежуються до **3 запитів за 60 секунд** на `deviceId+clientIp`. При спрацюванні обмеження RPC повертає `UNAVAILABLE` з `retryAfterMs`.
</Note>
Безпечний/типовий потік:
- `config.schema.lookup`: переглянути одне піддерево конфігурації для вказаного шляху з поверхневим
вузлом схеми, відповідними метаданими підказок і зведеннями про безпосередніх дочірніх елементів
- `config.get`: отримати поточний знімок + хеш
- `config.patch`: бажаний шлях для часткового оновлення
- `config.schema.lookup`: перевірка одного піддерева конфігурації, обмеженого шляхом, з поверхневим
вузлом схеми, відповідними метаданими підказок і підсумками безпосередніх дочірніх елементів
- `config.get`: отримання поточного знімка + hash
- `config.patch`: бажаний шлях часткового оновлення
- `config.apply`: лише повна заміна конфігурації
- `update.run`: явне self-update + перезапуск
- `update.run`: явне самооновлення + перезапуск
Якщо ви не замінюєте всю конфігурацію, надавайте перевагу `config.schema.lookup`,
Коли ви не замінюєте всю конфігурацію, віддавайте перевагу `config.schema.lookup`,
а потім `config.patch`.
<AccordionGroup>
<Accordion title="config.apply (повна заміна)">
Виконує валідацію + записує повну конфігурацію та перезапускає Gateway одним кроком.
Виконує валідацію + записує повну конфігурацію та перезапускає Gateway за один крок.
<Warning>
`config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
@ -598,15 +605,15 @@ RPC керуючої площини для запису (`config.apply`, `config
Параметри:
- `raw` (string) — payload JSON5 для всієї конфігурації
- `baseHash` (необов’язково) — хеш конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (необов’язково) — session key для wake-up ping після перезапуску
- `note` (необов’язково) — примітка для sentinel перезапуску
- `restartDelayMs` (необов’язково) — затримка перед перезапуском (типово 2000)
- `baseHash` (optional) — hash конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (optional) — ключ сесії для wake-up ping після перезапуску
- `note` (optional) — примітка для restart sentinel
- `restartDelayMs` (optional) — затримка перед перезапуском (типово 2000)
Запити на перезапуск об’єднуються, якщо один уже очікує або виконується, і між циклами перезапуску діє 30-секундний період охолодження.
Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє 30-секундний cooldown.
```bash
openclaw gateway call config.get --params '{}' # зафіксувати payload.hash
openclaw gateway call config.get --params '{}' # capture payload.hash
openclaw gateway call config.apply --params '{
"raw": "{ agents: { defaults: { workspace: \"~/.openclaw/workspace\" } } }",
"baseHash": "<hash>",
@ -626,10 +633,10 @@ RPC керуючої площини для запису (`config.apply`, `config
Параметри:
- `raw` (string) — JSON5 лише з тими ключами, які потрібно змінити
- `baseHash` (обов’язково) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — так само, як у `config.apply`
- `baseHash` (required) — hash конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — такі самі, як у `config.apply`
Поведінка перезапуску відповідає `config.apply`: об’єднання очікуваних перезапусків плюс 30-секундний період охолодження між циклами перезапуску.
Поведінка перезапуску збігається з `config.apply`: об’єднання відкладених перезапусків плюс 30-секундний cooldown між циклами перезапуску.
```bash
openclaw gateway call config.patch --params '{
@ -643,12 +650,12 @@ RPC керуючої площини для запису (`config.apply`, `config
## Змінні середовища
OpenClaw зчитує env vars із батьківського процесу, а також з:
OpenClaw зчитує env vars з батьківського процесу, а також із:
- `.env` у поточному робочому каталозі (якщо є)
- `~/.openclaw/.env` (глобальний запасний варіант)
Жоден із цих файлів не перевизначає вже наявні env vars. Ви також можете задавати вбудовані env vars у конфігурації:
Жоден із цих файлів не перевизначає наявні env vars. Ви також можете встановлювати вбудовані env vars у конфігурації:
```json5
{
@ -659,8 +666,8 @@ OpenClaw зчитує env vars із батьківського процесу,
}
```
<Accordion title="Імпорт env оболонки (необов’язково)">
Якщо його ввімкнено і очікувані ключі не встановлені, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
<Accordion title="Імпорт shell env (необов’язково)">
Якщо ввімкнено і очікувані ключі не встановлено, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@ -670,11 +677,11 @@ OpenClaw зчитує env vars із батьківського процесу,
}
```
Еквівалент через env var: `OPENCLAW_LOAD_SHELL_ENV=1`
Еквівалент env var: `OPENCLAW_LOAD_SHELL_ENV=1`
</Accordion>
<Accordion title="Підстановка env var у значеннях конфігурації">
Посилайтеся на env vars у будь-якому рядковому значенні конфігурації за допомогою `${VAR_NAME}`:
Посилайтеся на env vars у будь-якому рядковому значенні конфігурації через `${VAR_NAME}`:
```json5
{
@ -687,14 +694,14 @@ OpenClaw зчитує env vars із батьківського процесу,
- Зіставляються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні змінні спричиняють помилку під час завантаження
- Екрануйте через `$${VAR}` для буквального виводу
- Використовуйте `$${VAR}` для буквального виводу
- Працює всередині файлів `$include`
- Вбудована підстановка: `"${BASE}/v1"``"https://api.example.com/v1"`
</Accordion>
<Accordion title="Посилання на секрети (env, file, exec)">
Для полів, що підтримують об’єкти SecretRef, можна використовувати:
Для полів, які підтримують об’єкти SecretRef, можна використовувати:
```json5
{
@ -726,15 +733,15 @@ OpenClaw зчитує env vars із батьківського процесу,
}
```
Подробиці про SecretRef (включно з `secrets.providers` для `env`/`file`/`exec`) наведені в [Керуванні секретами](/uk/gateway/secrets).
Підтримувані шляхи облікових даних наведені в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
Докладно про SecretRef (включно з `secrets.providers` для `env`/`file`/`exec`) можна прочитати в [Керування секретами](/uk/gateway/secrets).
Підтримувані шляхи облікових даних перелічено в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
</Accordion>
Дивіться [Середовище](/uk/help/environment) для повного порядку пріоритетів і джерел.
Перегляньте [Середовище](/uk/help/environment), щоб дізнатися про повний пріоритет і джерела.
## Повний довідник
Повний довідник по всіх полях див. у **[Довіднику з конфігурації](/uk/gateway/configuration-reference)**.
Повний довідник по полях дивіться в **[Довіднику з конфігурації](/uk/gateway/configuration-reference)**.
---

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +1,41 @@
---
read_when:
- Ви хочете використовувати моделі OpenAI в OpenClaw
- Ви хочете автентифікацію через підписку Codex замість API-ключів
- Вам потрібна суворіша поведінка виконання агента GPT-5
- Ви хочете використовувати автентифікацію за підпискою Codex замість API-ключів
- Вам потрібні суворіші правила виконання агента GPT-5
summary: Використовуйте OpenAI через API-ключі або підписку Codex в OpenClaw
title: OpenAI
x-i18n:
generated_at: "2026-04-22T13:02:14Z"
generated_at: "2026-04-22T22:50:20Z"
model: gpt-5.4
provider: openai
source_hash: 7b0035cb879563a169294269e2fb39884194ec219373bc6e3edb1a8b47660b29
source_hash: 1ef9aaacd585acd098163468880761270936a05bbf79dd54b4f4d45068eeeaf1
source_path: providers/openai.md
workflow: 15
---
# OpenAI
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує два шляхи автентифікації:
OpenAI надає API для розробників для моделей GPT. OpenClaw підтримує два способи автентифікації:
- **API key** — прямий доступ до OpenAI Platform з тарифікацією за використання (`openai/*` моделі)
- **API key** — прямий доступ до OpenAI Platform з оплатою за використання (`openai/*` моделі)
- **Codex subscription** — вхід через ChatGPT/Codex з доступом за підпискою (`openai-codex/*` моделі)
OpenAI явно підтримує використання OAuth-підписки у зовнішніх інструментах і робочих процесах, таких як OpenClaw.
OpenAI прямо підтримує використання OAuth за підпискою у зовнішніх інструментах і робочих процесах, таких як OpenClaw.
## Початок роботи
Оберіть бажаний спосіб автентифікації та виконайте кроки налаштування.
Виберіть бажаний спосіб автентифікації та виконайте кроки налаштування.
<Tabs>
<Tab title="API key (OpenAI Platform)">
**Найкраще підходить для:** прямого доступу до API та тарифікації за використання.
**Найкраще підходить для:** прямого доступу до API та оплати за використання.
<Steps>
<Step title="Отримайте свій API key">
Створіть або скопіюйте API key з [панелі керування OpenAI Platform](https://platform.openai.com/api-keys).
Створіть або скопіюйте API key на [панелі OpenAI Platform](https://platform.openai.com/api-keys).
</Step>
<Step title="Запустіть початкове налаштування">
<Step title="Запустіть онбординг">
```bash
openclaw onboard --auth-choice openai-api-key
```
@ -46,7 +46,7 @@ OpenAI явно підтримує використання OAuth-підписк
openclaw onboard --openai-api-key "$OPENAI_API_KEY"
```
</Step>
<Step title="Перевірте, що модель доступна">
<Step title="Переконайтеся, що модель доступна">
```bash
openclaw models list --provider openai
```
@ -55,13 +55,13 @@ OpenAI явно підтримує використання OAuth-підписк
### Підсумок маршрутів
| Посилання на модель | Маршрут | Автентифікація |
| Model ref | Route | Auth |
|-----------|-------|------|
| `openai/gpt-5.4` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
| `openai/gpt-5.4-pro` | Прямий API OpenAI Platform | `OPENAI_API_KEY` |
<Note>
Вхід через ChatGPT/Codex спрямовується через `openai-codex/*`, а не `openai/*`.
Вхід через ChatGPT/Codex маршрутизується через `openai-codex/*`, а не `openai/*`.
</Note>
### Приклад конфігурації
@ -74,7 +74,7 @@ OpenAI явно підтримує використання OAuth-підписк
```
<Warning>
OpenClaw **не** надає `openai/gpt-5.3-codex-spark` у прямому шляху API. Реальні запити до OpenAI API відхиляють цю модель. Spark доступний лише в Codex.
OpenClaw **не** надає `openai/gpt-5.3-codex-spark` на шляху прямого API. Живі запити до OpenAI API відхиляють цю модель. Spark доступний лише в Codex.
</Warning>
</Tab>
@ -99,7 +99,7 @@ OpenAI явно підтримує використання OAuth-підписк
openclaw config set agents.defaults.model.primary openai-codex/gpt-5.4
```
</Step>
<Step title="Перевірте, що модель доступна">
<Step title="Переконайтеся, що модель доступна">
```bash
openclaw models list --provider openai-codex
```
@ -108,13 +108,13 @@ OpenAI явно підтримує використання OAuth-підписк
### Підсумок маршрутів
| Посилання на модель | Маршрут | Автентифікація |
| Model ref | Route | Auth |
|-----------|-------|------|
| `openai-codex/gpt-5.4` | ChatGPT/Codex OAuth | Вхід через Codex |
| `openai-codex/gpt-5.3-codex-spark` | ChatGPT/Codex OAuth | Вхід через Codex (залежить від entitlement) |
| `openai-codex/gpt-5.4` | OAuth ChatGPT/Codex | Вхід через Codex |
| `openai-codex/gpt-5.3-codex-spark` | OAuth ChatGPT/Codex | Вхід через Codex (залежить від entitlement) |
<Note>
Цей маршрут навмисно відокремлений від `openai/gpt-5.4`. Використовуйте `openai/*` з API key для прямого доступу до Platform, а `openai-codex/*` — для доступу через підписку Codex.
Цей маршрут навмисно відокремлений від `openai/gpt-5.4`. Використовуйте `openai/*` з API key для прямого доступу до Platform, а `openai-codex/*` — для доступу за підпискою Codex.
</Note>
### Приклад конфігурації
@ -126,7 +126,7 @@ OpenAI явно підтримує використання OAuth-підписк
```
<Tip>
Якщо початкове налаштування повторно використовує наявний вхід Codex CLI, цими обліковими даними надалі керує Codex CLI. Після завершення строку дії OpenClaw спочатку повторно зчитує зовнішнє джерело Codex і записує оновлені облікові дані назад у сховище Codex.
Якщо онбординг повторно використовує наявний вхід Codex CLI, цими обліковими даними й надалі керує Codex CLI. Після завершення строку дії OpenClaw спочатку повторно зчитує зовнішнє джерело Codex, а потім записує оновлені облікові дані назад у сховище Codex.
</Tip>
### Обмеження вікна контексту
@ -135,10 +135,10 @@ OpenAI явно підтримує використання OAuth-підписк
Для `openai-codex/gpt-5.4`:
- Рідний `contextWindow`: `1050000`
- Нативний `contextWindow`: `1050000`
- Типове обмеження `contextTokens` під час виконання: `272000`
Менше типове обмеження на практиці забезпечує кращі характеристики затримки й якості. Перевизначте його за допомогою `contextTokens`:
Менше типове обмеження на практиці дає кращі характеристики затримки й якості. Перевизначте його за допомогою `contextTokens`:
```json5
{
@ -153,7 +153,7 @@ OpenAI явно підтримує використання OAuth-підписк
```
<Note>
Використовуйте `contextWindow`, щоб оголосити рідні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
Використовуйте `contextWindow`, щоб оголосити нативні метадані моделі. Використовуйте `contextTokens`, щоб обмежити бюджет контексту під час виконання.
</Note>
</Tab>
@ -163,9 +163,9 @@ OpenAI явно підтримує використання OAuth-підписк
Вбудований Plugin `openai` реєструє генерацію зображень через інструмент `image_generate`.
| Можливість | Значення |
| ------------------------- | ------------------------------------ |
| Модель за замовчуванням | `openai/gpt-image-2` |
| Можливість | Значення |
| ------------------------- | ---------------------------------- |
| Модель за замовчуванням | `openai/gpt-image-2` |
| Макс. кількість зображень на запит | 4 |
| Режим редагування | Увімкнено (до 5 еталонних зображень) |
| Перевизначення розміру | Підтримується, включно з розмірами 2K/4K |
@ -182,10 +182,10 @@ OpenAI явно підтримує використання OAuth-підписк
```
<Note>
Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
Див. [Генерація зображень](/uk/tools/image-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover.
</Note>
`gpt-image-2` є типовою моделлю як для генерації зображень з тексту в OpenAI, так і для редагування зображень. `gpt-image-1` і далі можна використовувати як явне перевизначення моделі, але нові робочі процеси OpenAI для зображень мають використовувати `openai/gpt-image-2`.
`gpt-image-2` є моделлю за замовчуванням як для генерації зображень з тексту в OpenAI, так і для редагування зображень. `gpt-image-1` і далі можна використовувати як явне перевизначення моделі, але нові робочі процеси OpenAI для зображень мають використовувати `openai/gpt-image-2`.
Генерація:
@ -196,7 +196,7 @@ OpenAI явно підтримує використання OAuth-підписк
Редагування:
```
/tool image_generate model=openai/gpt-image-2 prompt="Збережи форму об’єкта, зміни матеріал на прозоре скло" image=/path/to/reference.png size=1024x1536
/tool image_generate model=openai/gpt-image-2 prompt="Збережи форму об’єкта, зміни матеріал на напівпрозоре скло" image=/path/to/reference.png size=1024x1536
```
## Генерація відео
@ -204,10 +204,10 @@ OpenAI явно підтримує використання OAuth-підписк
Вбудований Plugin `openai` реєструє генерацію відео через інструмент `video_generate`.
| Можливість | Значення |
| ---------------- | -------------------------------------------------------------------------------- |
| --------------- | ------------------------------------------------------------------------------- |
| Модель за замовчуванням | `openai/sora-2` |
| Режими | Текст у відео, зображення у відео, редагування одного відео |
| Еталонні вхідні дані | 1 зображення або 1 відео |
| Режими | Текст у відео, зображення у відео, редагування одного відео |
| Еталонні вхідні дані | 1 зображення або 1 відео |
| Перевизначення розміру | Підтримується |
| Інші перевизначення | `aspectRatio`, `resolution`, `audio`, `watermark` ігноруються з попередженням інструмента |
@ -222,30 +222,32 @@ OpenAI явно підтримує використання OAuth-підписк
```
<Note>
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні параметри інструмента, вибір провайдера та поведінку failover.
Див. [Генерація відео](/uk/tools/video-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover.
</Note>
## Внесок у prompt GPT-5
OpenClaw додає специфічний для OpenAI внесок у prompt GPT-5 для запусків сімейства GPT-5 через `openai/*` і `openai-codex/*`. Він міститься у вбудованому Plugin OpenAI, застосовується до ідентифікаторів моделей, таких як `gpt-5`, `gpt-5.2`, `gpt-5.4` і `gpt-5.4-mini`, і не застосовується до старіших моделей GPT-4.x.
OpenClaw додає спільний внесок у prompt GPT-5 для запусків сімейства GPT-5 у різних провайдерів. Він застосовується за ідентифікатором моделі, тому `openai/gpt-5.4`, `openai-codex/gpt-5.4`, `openrouter/openai/gpt-5.4`, `opencode/gpt-5.4` та інші сумісні посилання GPT-5 отримують однакове накладання. Старіші моделі GPT-4.x — ні.
Вбудований провайдер нативного harness Codex (`codex/*`) застосовує ту саму поведінку GPT-5 і накладення Heartbeat через інструкції розробника app-server Codex, тому сесії `codex/gpt-5.x` зберігають ту саму наполегливість у доведенні справ до кінця та проактивні вказівки Heartbeat, навіть попри те, що рештою prompt harness керує Codex.
Вбудований рідний провайдер harness Codex (`codex/*`) використовує таку саму поведінку GPT-5 і накладання Heartbeat через інструкції розробника Codex app-server, тому сесії `codex/gpt-5.x` зберігають ту саму послідовність виконання і проактивні вказівки Heartbeat, хоча рештою prompt harness керує Codex.
Внесок GPT-5 додає позначений контракт поведінки для збереження персонажу, безпеки виконання, дисципліни використання інструментів, форми виводу, перевірок завершення та верифікації. Поведінка відповіді та тихих повідомлень, специфічна для каналу, залишається у спільному системному prompt OpenClaw і політиці вихідної доставки. Вказівки GPT-5 завжди увімкнені для відповідних моделей. Рівень дружнього стилю взаємодії є окремим і налаштовуваним.
Внесок GPT-5 додає позначений контракт поведінки для збереження персони, безпеки виконання, дисципліни інструментів, форми виводу, перевірок завершення та верифікації. Поведінка відповідей і тихих повідомлень, специфічна для каналів, залишається у спільному системному prompt OpenClaw і політиці вихідної доставки. Вказівки GPT-5 завжди увімкнені для відповідних моделей. Рівень дружнього стилю взаємодії є окремим і налаштовуваним.
| Значення | Ефект |
| --------------------- | -------------------------------------------- |
| `"friendly"` (типово) | Увімкнути рівень дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише рівень дружнього стилю |
| Значення | Ефект |
| -------------------- | ------------------------------------------ |
| `"friendly"` (типово) | Увімкнути рівень дружнього стилю взаємодії |
| `"on"` | Псевдонім для `"friendly"` |
| `"off"` | Вимкнути лише рівень дружнього стилю |
<Tabs>
<Tab title="Config">
```json5
{
plugins: {
entries: {
openai: { config: { personality: "friendly" } },
agents: {
defaults: {
promptOverlays: {
gpt5: { personality: "friendly" },
},
},
},
}
@ -253,29 +255,33 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
</Tab>
<Tab title="CLI">
```bash
openclaw config set plugins.entries.openai.config.personality off
openclaw config set agents.defaults.promptOverlays.gpt5.personality off
```
</Tab>
</Tabs>
<Tip>
Під час виконання значення нечутливі до регістру, тож і `"Off"`, і `"off"` вимикають рівень дружнього стилю.
Під час виконання значення нечутливі до регістру, тому і `"Off"`, і `"off"` вимикають рівень дружнього стилю.
</Tip>
<Note>
Застаріле `plugins.entries.openai.config.personality` і далі зчитується як сумісний запасний варіант, коли спільне налаштування `agents.defaults.promptOverlays.gpt5.personality` не задано.
</Note>
## Голос і мовлення
<AccordionGroup>
<Accordion title="Синтез мовлення (TTS)">
Вбудований Plugin `openai` реєструє синтез мовлення для поверхні `messages.tts`.
| Налаштування | Шлях конфігурації | Типово |
| Налаштування | Шлях конфігурації | Значення за замовчуванням |
|---------|------------|---------|
| Модель | `messages.tts.providers.openai.model` | `gpt-4o-mini-tts` |
| Голос | `messages.tts.providers.openai.voice` | `coral` |
| Швидкість | `messages.tts.providers.openai.speed` | (не задано) |
| Інструкції | `messages.tts.providers.openai.instructions` | (не задано, лише `gpt-4o-mini-tts`) |
| Формат | `messages.tts.providers.openai.responseFormat` | `opus` для голосових нотаток, `mp3` для файлів |
| API key | `messages.tts.providers.openai.apiKey` | З резервним поверненням до `OPENAI_API_KEY` |
| API key | `messages.tts.providers.openai.apiKey` | Використовується `OPENAI_API_KEY` як запасний варіант |
| Base URL | `messages.tts.providers.openai.baseUrl` | `https://api.openai.com/v1` |
Доступні моделі: `gpt-4o-mini-tts`, `tts-1`, `tts-1-hd`. Доступні голоси: `alloy`, `ash`, `ballad`, `cedar`, `coral`, `echo`, `fable`, `juniper`, `marin`, `onyx`, `nova`, `sage`, `shimmer`, `verse`.
@ -293,23 +299,23 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
```
<Note>
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити базовий URL TTS без впливу на кінцеву точку chat API.
Установіть `OPENAI_TTS_BASE_URL`, щоб перевизначити Base URL для TTS без впливу на endpoint chat API.
</Note>
</Accordion>
<Accordion title="Транскрипція в реальному часі">
Вбудований Plugin `openai` реєструє транскрипцію в реальному часі для Plugin Voice Call.
<Accordion title="Транскрибування в реальному часі">
Вбудований Plugin `openai` реєструє транскрибування в реальному часі для Plugin Voice Call.
| Налаштування | Шлях конфігурації | Типово |
| Налаштування | Шлях конфігурації | Значення за замовчуванням |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.streaming.providers.openai.model` | `gpt-4o-transcribe` |
| Тривалість тиші | `...openai.silenceDurationMs` | `800` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| API key | `...openai.apiKey` | З резервним поверненням до `OPENAI_API_KEY` |
| API key | `...openai.apiKey` | Використовується `OPENAI_API_KEY` як запасний варіант |
<Note>
Використовує WebSocket-з’єднання з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law.
Використовує з’єднання WebSocket з `wss://api.openai.com/v1/realtime` з аудіо G.711 u-law.
</Note>
</Accordion>
@ -317,17 +323,17 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
<Accordion title="Голос у реальному часі">
Вбудований Plugin `openai` реєструє голос у реальному часі для Plugin Voice Call.
| Налаштування | Шлях конфігурації | Типово |
| Налаштування | Шлях конфігурації | Значення за замовчуванням |
|---------|------------|---------|
| Модель | `plugins.entries.voice-call.config.realtime.providers.openai.model` | `gpt-realtime` |
| Голос | `...openai.voice` | `alloy` |
| Temperature | `...openai.temperature` | `0.8` |
| Поріг VAD | `...openai.vadThreshold` | `0.5` |
| Тривалість тиші | `...openai.silenceDurationMs` | `500` |
| API key | `...openai.apiKey` | З резервним поверненням до `OPENAI_API_KEY` |
| API key | `...openai.apiKey` | Використовується `OPENAI_API_KEY` як запасний варіант |
<Note>
Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двобічний виклик інструментів. Використовує формат аудіо G.711 u-law.
Підтримує Azure OpenAI через ключі конфігурації `azureEndpoint` і `azureDeployment`. Підтримує двонапрямлений виклик інструментів. Використовує аудіоформат G.711 u-law.
</Note>
</Accordion>
@ -337,17 +343,17 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
<AccordionGroup>
<Accordion title="Транспорт (WebSocket vs SSE)">
OpenClaw використовує WebSocket-first із резервним переходом на SSE (`"auto"`) як для `openai/*`, так і для `openai-codex/*`.
OpenClaw використовує WebSocket-first із запасним переходом на SSE (`"auto"`) і для `openai/*`, і для `openai-codex/*`.
У режимі `"auto"` OpenClaw:
- Повторює одну ранню помилку WebSocket перед переходом на SSE
- Після помилки позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
- Додає стабільні заголовки ідентичності сесії та ходу для повторних спроб і повторних підключень
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) між варіантами транспорту
- Після збою позначає WebSocket як деградований приблизно на 60 секунд і використовує SSE під час охолодження
- Додає стабільні заголовки ідентичності сесії та ходу для повторних спроб і перепідключень
- Нормалізує лічильники використання (`input_tokens` / `prompt_tokens`) у різних варіантах транспорту
| Значення | Поведінка |
|-------|----------|
| `"auto"` (типово) | WebSocket first, резервний перехід на SSE |
| `"auto"` (типово) | Спочатку WebSocket, запасний перехід на SSE |
| `"sse"` | Примусово лише SSE |
| `"websocket"` | Примусово лише WebSocket |
@ -371,11 +377,11 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
</Accordion>
<Accordion title="Розігрів WebSocket">
OpenClaw типово вмикає розігрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу.
<Accordion title="Прогрів WebSocket">
OpenClaw типово вмикає прогрів WebSocket для `openai/*`, щоб зменшити затримку першого ходу.
```json5
// Вимкнути розігрів
// Вимкнути прогрів
{
agents: {
defaults: {
@ -413,7 +419,7 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
```
<Note>
Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в UI Sessions повертає сесію до налаштованого типового значення.
Перевизначення сесії мають пріоритет над конфігурацією. Очищення перевизначення сесії в UI Sessions повертає сесію до налаштованого значення за замовчуванням.
</Note>
</Accordion>
@ -437,7 +443,7 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
Підтримувані значення: `auto`, `default`, `flex`, `priority`.
<Warning>
`serviceTier` передається лише до нативних кінцевих точок OpenAI (`api.openai.com`) і нативних кінцевих точок Codex (`chatgpt.com/backend-api`). Якщо ви маршрутизуєте будь-якого з цих провайдерів через проксі, OpenClaw залишає `service_tier` без змін.
`serviceTier` передається лише до нативних endpoint OpenAI (`api.openai.com`) і нативних endpoint Codex (`chatgpt.com/backend-api`). Якщо ви спрямовуєте будь-якого з цих провайдерів через proxy, OpenClaw залишає `service_tier` без змін.
</Warning>
</Accordion>
@ -445,13 +451,13 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
<Accordion title="Server-side Compaction (Responses API)">
Для прямих моделей OpenAI Responses (`openai/*` на `api.openai.com`) OpenClaw автоматично вмикає server-side Compaction:
- Примусово встановлює `store: true` (якщо лише сумісність моделі не задає `supportsStore: false`)
- Впроваджує `context_management: [{ type: "compaction", compact_threshold: ... }]`
- Типове значення `compact_threshold`: 70% від `contextWindow` (або `80000`, якщо воно недоступне)
- Примусово встановлює `store: true` (якщо тільки сумісність моделі не задає `supportsStore: false`)
- Вставляє `context_management: [{ type: "compaction", compact_threshold: ... }]`
- Типовий `compact_threshold`: 70% від `contextWindow` (або `80000`, якщо він недоступний)
<Tabs>
<Tab title="Увімкнути явно">
Корисно для сумісних кінцевих точок, таких як Azure OpenAI Responses:
<Tab title="Явно ввімкнути">
Корисно для сумісних endpoint, як-от Azure OpenAI Responses:
```json5
{
@ -503,7 +509,7 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
</Tabs>
<Note>
`responsesServerCompaction` керує лише впровадженням `context_management`. Прямі моделі OpenAI Responses усе одно примусово встановлюють `store: true`, якщо сумісність не задає `supportsStore: false`.
`responsesServerCompaction` керує лише вставленням `context_management`. Прямі моделі OpenAI Responses однаково примусово встановлюють `store: true`, якщо сумісність не задає `supportsStore: false`.
</Note>
</Accordion>
@ -522,30 +528,30 @@ OpenClaw додає специфічний для OpenAI внесок у prompt
```
Із `strict-agentic` OpenClaw:
- Більше не вважає хід лише з планом успішним прогресом, якщо доступна дія з інструментом
- Більше не вважає хід лише з планом успішним прогресом, коли доступна дія інструмента
- Повторює хід із вказівкою діяти зараз
- Автоматично вмикає `update_plan` для суттєвої роботи
- Показує явний заблокований стан, якщо модель продовжує планувати без дії
<Note>
Обмежено лише запуском сімейства GPT-5 для OpenAI і Codex. Інші провайдери та старіші сімейства моделей зберігають типову поведінку.
Поширюється лише на запускі сімейства OpenAI та Codex GPT-5. Інші провайдери та старіші сімейства моделей зберігають типову поведінку.
</Note>
</Accordion>
<Accordion title="Нативні маршрути та маршрути, сумісні з OpenAI">
OpenClaw по-різному обробляє прямі кінцеві точки OpenAI, Codex і Azure OpenAI порівняно із загальними проксі `/v1`, сумісними з OpenAI:
<Accordion title="Нативні маршрути та маршрути OpenAI-compatible">
OpenClaw по-різному обробляє прямі endpoint OpenAI, Codex і Azure OpenAI порівняно із загальними OpenAI-compatible proxy `/v1`:
**Нативні маршрути** (`openai/*`, `openai-codex/*`, Azure OpenAI):
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують OpenAI `none` effort
- Пропускають вимкнений reasoning для моделей або проксі, які відхиляють `reasoning.effort: "none"`
- Типово встановлюють суворий режим для схем інструментів
- Зберігають `reasoning: { effort: "none" }` лише для моделей, які підтримують `none` effort в OpenAI
- Пропускають вимкнений reasoning для моделей або proxy, які відхиляють `reasoning.effort: "none"`
- Типово використовують строгий режим для схем інструментів
- Додають приховані заголовки атрибуції лише на перевірених нативних хостах
- Зберігають формування запитів, специфічне для OpenAI (`service_tier`, `store`, сумісність reasoning, підказки prompt-cache)
- Зберігають формування запитів, специфічне для OpenAI (`service_tier`, `store`, reasoning-compat, підказки prompt-cache)
**Проксі/сумісні маршрути:**
**Маршрути proxy/compatible:**
- Використовують м’якшу поведінку сумісності
- Не примусово встановлюють суворі схеми інструментів або заголовки, специфічні для нативних маршрутів
- Не примушують до строгих схем інструментів або нативних заголовків
Azure OpenAI використовує нативний транспорт і поведінку сумісності, але не отримує приховані заголовки атрибуції.