chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-22 22:39:11 +00:00
parent 850076f97a
commit f6c1e01393
2 changed files with 338 additions and 330 deletions

View File

@ -1,33 +1,33 @@
---
read_when:
- Перше налаштування OpenClaw
- Пошук поширених шаблонів конфігурації
- Перехід до конкретних розділів конфігурації
- Налаштування OpenClaw уперше
- Шукаєте поширені шаблони конфігурації
- Перехід до певних розділів конфігурації
summary: 'Огляд конфігурації: поширені завдання, швидке налаштування та посилання на повний довідник'
title: Конфігурація
x-i18n:
generated_at: "2026-04-22T22:25:45Z"
generated_at: "2026-04-22T22:37:31Z"
model: gpt-5.4
provider: openai
source_hash: 2296617a25a339048cb1df7b895fec35e96b0740851c89add907fc49307e08d1
source_hash: 966f6a6500fc2f649ee4612404092fd70305065544807c1d8bbc80aa840f9e97
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 supports comments and trailing commas">**JSON5**</Tooltip> з `~/.openclaw/openclaw.json`.
Якщо файл відсутній, 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>
## Мінімальна конфігурація
@ -45,8 +45,8 @@ OpenClaw читає необов’язковий конфігураційний
<Tabs>
<Tab title="Інтерактивний майстер">
```bash
openclaw onboard # full onboarding flow
openclaw configure # config wizard
openclaw onboard # повний процес початкового налаштування
openclaw configure # майстер конфігурації
```
</Tab>
<Tab title="CLI (однорядкові команди)">
@ -58,11 +58,11 @@ OpenClaw читає необов’язковий конфігураційний
</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,57 +72,60 @@ OpenClaw читає необов’язковий конфігураційний
## Сувора валідація
<Warning>
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, неправильні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли підключати метадані JSON Schema.
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли додавати метадані JSON Schema.
</Warning>
Примітки щодо інструментів схеми:
- `openclaw config schema` виводить ту саму сім’ю JSON Schema, яку використовують Control UI
і валідація конфігурації.
- Розглядайте цей вивід схеми як канонічний машиночитний контракт для
`openclaw.json`; цей огляд і довідник із конфігурації його узагальнюють.
- `openclaw config schema` виводить те саме сімейство JSON Schema, яке використовується в Control UI
і для валідації конфігурації.
- Вважайте цей вивід схеми канонічним машиночитним контрактом для
`openclaw.json`; цей огляд і довідник з конфігурації його узагальнюють.
- Значення полів `title` і `description` переносяться до виводу схеми для
редакторів та інструментів форм.
- Вкладені об’єкти, шаблони (`*`) та елементи масиву (`[]`) успадковують ті самі
метадані документації, якщо для відповідного поля існує документація.
- Гілки композицій `anyOf` / `oneOf` / `allOf` також успадковують ті самі
редакторів і інструментів форм.
- Вкладені об’єкти, записи wildcard (`*`) та елементи масиву (`[]`) успадковують ті самі
метадані документації там, де існує відповідна документація поля.
- Гілки композиції `anyOf` / `oneOf` / `allOf` також успадковують ті самі
метадані документації, тож варіанти union/intersection зберігають ту саму довідку полів.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з поверхневим
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені обмеження
та подібні поля валідації), відповідними метаданими підказок UI і підсумками
безпосередніх дочірніх елементів для інструментів деталізації.
- Схеми Plugin/каналів часу виконання об’єднуються, коли gateway може завантажити
та подібні поля валідації), відповідні метадані UI-підказок і зведення про безпосередніх дочірніх елементів
для інструментів детального перегляду.
- Схеми 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.*`,
відновлять останню коректну копію та запишуть помітне попередження з причиною відновлення.
Якщо перед інакше коректною JSON-конфігурацією випадково буде додано рядок статусу/журналу,
Gateway також зберігає довірену останню відому коректну копію після успішного запуску. Якщо
`openclaw.json` пізніше змінюється поза OpenClaw і більше не проходить валідацію, під час запуску
та гарячого перезавантаження зламаний файл зберігається як `.clobbered.*`-знімок із часовою позначкою,
відновлюється остання відома коректна копія, а в журнал записується помітне попередження з причиною відновлення.
Відновлення під час читання на старті також вважає критичними ознаками пошкодження різке зменшення розміру,
відсутні метадані конфігурації та відсутність `gateway.mode`, коли в останній відомій коректній
копії ці поля були.
Якщо перед інакше коректною конфігурацією JSON випадково додається рядок статусу/журналу,
запуск gateway і `openclaw doctor --fix` можуть прибрати цей префікс,
зберегти забруднений файл як `.clobbered.*` і продовжити роботу з відновленим
JSON.
Наступний хід основного агента також отримує попередження про системну подію, яке повідомляє, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Оновлення останньої коректної версії
відбувається після валідованого запуску та після прийнятих гарячих перезавантажень, включно з
записами конфігурації, виконаними самим OpenClaw, якщо хеш збереженого файлу все ще збігається з прийнятим
записом. Оновлення пропускається, якщо кандидат містить замасковані заповнювачі секретів
на кшталт `***` або скорочені значення токенів.
Наступний хід головного агента також отримує попередження системної події про те, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Підвищення статусу останньої відомої коректної копії
оновлюється після валідованого запуску і після прийнятих гарячих перезавантажень, включно з
записами конфігурації, виконаними самим OpenClaw, якщо хеш збереженого файла все ще збігається з прийнятим
записом. Підвищення пропускається, коли кандидат містить замасковані заповнювачі секретів,
такі як `***` або скорочені значення токенів.
## Поширені завдання
<AccordionGroup>
<Accordion title="Налаштувати канал (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Перегляньте окрему сторінку каналу для кроків налаштування:
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Дивіться окрему сторінку каналу для кроків налаштування:
- [WhatsApp](/uk/channels/whatsapp) — `channels.whatsapp`
- [Telegram](/uk/channels/telegram) — `channels.telegram`
@ -135,7 +138,7 @@ JSON.
- [iMessage](/uk/channels/imessage) — `channels.imessage`
- [Mattermost](/uk/channels/mattermost) — `channels.mattermost`
Усі канали використовують однаковий шаблон політики особистих повідомлень:
Усі канали використовують однаковий шаблон політики DM:
```json5
{
@ -153,7 +156,7 @@ JSON.
</Accordion>
<Accordion title="Вибрати та налаштувати моделі">
Встановіть основну модель і необов’язкові резервні варіанти:
Задайте основну модель і необов’язкові резервні варіанти:
```json5
{
@ -173,30 +176,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` керує зменшенням розміру зображень у транскриптах/інструментах (типове значення `1200`); менші значення зазвичай зменшують використання vision-token у сценаріях із великою кількістю скриншотів.
- Див. [Models CLI](/uk/concepts/models), щоб перемикати моделі в чаті, і [Model Failover](/uk/concepts/model-failover) щодо ротації автентифікації та поведінки резервного перемикання.
- Для користувацьких/self-hosted провайдерів див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
- `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) у довіднику.
</Accordion>
<Accordion title="Керувати тим, хто може надсилати повідомлення боту">
Доступ до особистих повідомлень керується окремо для кожного каналу через `dmPolicy`:
Доступ до DM керується окремо для кожного каналу через `dmPolicy`:
- `"pairing"` (типово): невідомі відправники отримують одноразовий код pairing для схвалення
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища парного allow)
- `"open"`: дозволити всі вхідні особисті повідомлення (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі особисті повідомлення
- `"pairing"` (типово): невідомі відправники отримують одноразовий код pairing для підтвердження
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища paired allow)
- `"open"`: дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі DM
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або allowlist, специфічні для каналу.
Див. [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для деталей по кожному каналу.
Дивіться [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для подробиць по кожному каналу.
</Accordion>
<Accordion title="Налаштувати вимогу згадки в групових чатах">
Групові повідомлення типово **вимагають згадки**. Налаштуйте шаблони для кожного агента:
<Accordion title="Налаштувати фільтрацію згадок у групових чатах">
Для групових повідомлень типово **потрібна згадка**. Налаштуйте шаблони для кожного агента:
```json5
{
@ -218,15 +221,15 @@ JSON.
}
```
- **Metadata mentions**: нативні @-згадки (WhatsApp tap-to-mention, Telegram @bot тощо)
- **Text patterns**: безпечні шаблони regex у `mentionPatterns`
- Див. [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень на рівні каналів і режиму self-chat.
- **Згадки в метаданих**: нативні @-згадки (tap-to-mention у WhatsApp, @bot у Telegram тощо)
- **Текстові шаблони**: безпечні regex-шаблони в `mentionPatterns`
- Дивіться [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для по-канальних перевизначень і режиму self-chat.
</Accordion>
<Accordion title="Обмежити Skills для агента">
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте конкретні
агенти через `agents.list[].skills`:
Використовуйте `agents.defaults.skills` для спільної базової конфігурації, а потім перевизначайте конкретних
агентів через `agents.list[].skills`:
```json5
{
@ -235,23 +238,23 @@ JSON.
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // inherits github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
{ id: "writer" }, // успадковує github, weather
{ id: "docs", skills: ["docs-search"] }, // замінює значення за замовчуванням
{ id: "locked-down", skills: [] }, // без Skills
],
},
}
```
- Не вказуйте `agents.defaults.skills`, щоб типово не обмежувати Skills.
- Не вказуйте `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).
- Встановіть `agents.list[].skills: []`, щоб не дозволити жодних Skills.
- Дивіться [Skills](/uk/tools/skills), [конфігурацію Skills](/uk/tools/skills-config) і
[Довідник з конфігурації](/uk/gateway/configuration-reference#agents-defaults-skills).
</Accordion>
<Accordion title="Тонко налаштувати моніторинг стану каналів gateway">
<Accordion title="Налаштувати моніторинг стану каналів gateway">
Керуйте тим, наскільки агресивно gateway перезапускає канали, які виглядають неактивними:
```json5
@ -274,20 +277,20 @@ 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>
<Accordion title="Налаштувати сеанси та скидання">
Сеанси керують безперервністю розмови та ізоляцією:
<Accordion title="Налаштувати сесії та скидання">
Сесії керують безперервністю розмови та ізоляцією:
```json5
{
session: {
dmScope: "per-channel-peer", // recommended for multi-user
dmScope: "per-channel-peer", // рекомендовано для багатьох користувачів
threadBindings: {
enabled: true,
idleHours: 24,
@ -302,15 +305,15 @@ JSON.
}
```
- `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) для всіх полів.
- `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) для всіх полів.
</Accordion>
<Accordion title="Увімкнути ізоляцію">
Запускайте сеанси агента в ізольованих середовищах sandbox:
Запускайте сесії агентів в ізольованих runtime ізолятора:
```json5
{
@ -327,14 +330,14 @@ JSON.
Спочатку зберіть образ: `scripts/sandbox-setup.sh`
Див. [Sandboxing](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
Дивіться [Sandboxing](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
</Accordion>
<Accordion title="Увімкнути push через relay для офіційних збірок iOS">
Push через relay налаштовується в `openclaw.json`.
<Accordion title="Увімкнути relay-backed push для офіційних збірок iOS">
Relay-backed push налаштовується в `openclaw.json`.
Установіть це в конфігурації gateway:
Укажіть це в конфігурації gateway:
```json5
{
@ -343,7 +346,7 @@ JSON.
apns: {
relay: {
baseUrl: "https://relay.example.com",
// Необов’язково. Типово: 10000
// Необов’язково. Типове значення: 10000
timeoutMs: 10000,
},
},
@ -352,7 +355,7 @@ JSON.
}
```
Еквівалент у CLI:
Еквівалент через CLI:
```bash
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
@ -361,30 +364,30 @@ JSON.
Що це робить:
- Дозволяє gateway надсилати `push.test`, сигнали пробудження та сигнали повторного підключення через зовнішній relay.
- Використовує грант надсилання в межах реєстрації, який пересилає спарений застосунок iOS. Gateway не потрібен токен relay для всього розгортання.
- Прив’язує кожну реєстрацію через relay до ідентичності gateway, з якою був спарений застосунок iOS, тому інший gateway не може повторно використати збережену реєстрацію.
- Залишає локальні/ручні збірки iOS на прямому APNs. Надсилання через relay застосовується лише до офіційних розповсюджуваних збірок, які зареєструвалися через relay.
- Має збігатися з базовим URL relay, вбудованим в офіційну/TestFlight збірку iOS, щоб трафік реєстрації та надсилання потрапляв до того самого розгортання relay.
- Використовує grant на надсилання в межах реєстрації, який пересилає спарений застосунок iOS. Gateway не потрібен relay-токен для всього розгортання.
- Прив’язує кожну relay-backed реєстрацію до ідентичності gateway, з якою було спарено застосунок iOS, тож інший gateway не може повторно використати збережену реєстрацію.
- Залишає локальні/ручні збірки iOS на прямому APNs. Relay-backed надсилання застосовується лише до офіційно розповсюджених збірок, які зареєструвалися через 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 та оператора.
4. Застосунок iOS отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції застосунку, а потім публікує корисне навантаження `push.apns.register` через relay до спареного gateway.
5. Gateway зберігає дескриптор relay і грант надсилання, а потім використовує їх для `push.test`, сигналів пробудження та повторного підключення.
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`, сигналів пробудження та сигналів повторного підключення.
Операційні примітки:
- Якщо ви перемкнете застосунок iOS на інший gateway, повторно підключіть застосунок, щоб він міг опублікувати нову реєстрацію relay, прив’язану до цього gateway.
- Якщо ви випустите нову збірку iOS, яка вказує на інше розгортання relay, застосунок оновить кешовану реєстрацію relay замість повторного використання старого джерела relay.
- Якщо ви перемикаєте застосунок 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` залишається аварійним варіантом для розробки лише на loopback; не зберігайте URL relay з HTTP у конфігурації.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` лишається запасним варіантом для розробки лише в local loopback; не зберігайте HTTP relay URL у конфігурації.
Див. [застосунок iOS](/uk/platforms/ios#relay-backed-push-for-official-builds) для наскрізного процесу та [Потік автентифікації й довіри](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки 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.
</Accordion>
@ -404,12 +407,12 @@ JSON.
- `every`: рядок тривалості (`30m`, `2h`). Установіть `0m`, щоб вимкнути.
- `target`: `last` | `none` | `<channel-id>` (наприклад, `discord`, `matrix`, `telegram` або `whatsapp`)
- `directPolicy`: `allow` (типово) або `block` для цілей Heartbeat у стилі особистих повідомлень
- Див. [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
- `directPolicy`: `allow` (типово) або `block` для цілей Heartbeat у стилі DM
- Дивіться [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
</Accordion>
<Accordion title="Налаштувати Cron jobs">
<Accordion title="Налаштувати завдання Cron">
```json5
{
cron: {
@ -424,14 +427,14 @@ JSON.
}
```
- `sessionRetention`: видаляти завершені ізольовані сеанси запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищати `cron/runs/<jobId>.jsonl` за розміром і кількістю рядків, що зберігаються.
- Див. [Cron jobs](/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:
Увімкніть HTTP-ендпоїнти Webhook на Gateway:
```json5
{
@ -455,20 +458,20 @@ JSON.
```
Примітка щодо безпеки:
- Вважайте весь вміст корисного навантаження hook/Webhook недовіреним вводом.
- Увесь вміст payload hook/Webhook слід вважати недовіреним введенням.
- Використовуйте окремий `hooks.token`; не використовуйте повторно спільний токен Gateway.
- Автентифікація hook працює лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в рядку запиту відхиляються.
- `hooks.path` не може бути `/`; залишайте вхід Webhook на окремому підшляху, наприклад `/hooks`.
- Залишайте прапорці обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте вузькоспеціалізоване налагодження.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити ключі сеансів, які може вибирати викликач.
- Для агентів, керованих через hook, надавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс sandboxing, де це можливо).
- Автентифікація hook працює лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в query-рядку відхиляються.
- `hooks.path` не може бути `/`; використовуйте для входу Webhook окремий підшлях, наприклад `/hooks`.
- Тримайте прапорці обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте вузькоспрямоване налагодження.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також задайте `hooks.allowedSessionKeyPrefixes`, щоб обмежити session key, які може вибрати викликач.
- Для агентів, керованих hook, надавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс ізоляція, де це можливо).
Див. [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів зіставлення та інтеграції Gmail.
Дивіться [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів mappings та інтеграції Gmail.
</Accordion>
<Accordion title="Налаштувати маршрутизацію між кількома агентами">
Запускайте кілька ізольованих агентів з окремими робочими просторами та сеансами:
Запускайте кілька ізольованих агентів з окремими workspace і сесіями:
```json5
{
@ -485,12 +488,12 @@ JSON.
}
```
Див. [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing) для правил прив’язки та профілів доступу для кожного агента.
Дивіться [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing) для правил bindings і профілів доступу для кожного агента.
</Accordion>
<Accordion title="Розділити конфігурацію на кілька файлів ($include)">
Використовуйте `$include`, щоб упорядковувати великі конфігурації:
Використовуйте `$include` для організації великих конфігурацій:
```json5
// ~/.openclaw/openclaw.json
@ -503,12 +506,12 @@ JSON.
}
```
- **Один файл**: замінює об’єкт, у якому міститься
- **Масив файлів**: об’єднується через deep-merge у вказаному порядку (пізніші мають пріоритет)
- **Сусідні ключі**: об’єднуються після include (перевизначають включені значення)
- **Вкладені include**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файла, який включає
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних include
- **Один файл**: замінює об’єкт, що його містить
- **Масив файлів**: глибоко об’єднується за порядком (пізніші значення мають пріоритет)
- **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файлу, який виконує включення
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних includes
</Accordion>
</AccordionGroup>
@ -517,27 +520,27 @@ JSON.
Gateway відстежує `~/.openclaw/openclaw.json` і автоматично застосовує зміни — для більшості налаштувань ручний перезапуск не потрібен.
Прямі зміни файлу вважаються недовіреними, доки не пройдуть валідацію. Спостерігач чекає,
поки завершаться тимчасові записи/перейменування редактора, читає остаточний файл і відхиляє
недійсні зовнішні зміни, відновлюючи останню коректну конфігурацію. Записи конфігурації,
виконані самим OpenClaw, використовують ту саму схему перевірки перед записом; руйнівні перезаписи,
наприклад видалення `gateway.mode` або зменшення файлу більш ніж удвічі, відхиляються
Прямі редагування файлу вважаються недовіреними, доки не пройдуть валідацію. Спостерігач чекає,
поки завершаться тимчасові записи/перейменування редактора, читає підсумковий файл і відхиляє
некоректні зовнішні редагування, відновлюючи останню відому коректну конфігурацію. Власні записи конфігурації OpenClaw
використовують той самий контроль схеми перед записом; руйнівні пошкодження, такі
як видалення `gateway.mode` або зменшення файлу більш ніж удвічі, відхиляються
і зберігаються як `.rejected.*` для перевірки.
Якщо ви бачите `Config auto-restored from last-known-good` або
`config reload restored last-known-good config` у журналах, перегляньте відповідний
файл `.clobbered.*` поруч із `openclaw.json`, виправте відхилене корисне навантаження, а потім виконайте
`openclaw config validate`. Див. [Усунення проблем Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
`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 при будь-якій зміні конфігурації, безпечній чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набувають чинності при наступному ручному перезапуску. |
| Режим | Поведінка |
| ---------------------- | -------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Миттєво гаряче застосовує безпечні зміни. Автоматично перезапускається для критичних. |
| **`hot`** | Гаряче застосовує лише безпечні зміни. Записує попередження, коли потрібен перезапуск — ви виконуєте його самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набудуть чинності під час наступного ручного перезапуску. |
```json5
{
@ -553,40 +556,40 @@ Gateway відстежує `~/.openclaw/openclaw.json` і автоматично
| Категорія | Поля | Потрібен перезапуск? |
| ------------------ | ----------------------------------------------------------------- | -------------------- |
| Канали | `channels.*`, `web` (WhatsApp) — усі вбудовані канали та канали Plugin | Ні |
| Агент і моделі | `agent`, `agents`, `models`, `routing` | Ні |
| Канали | `channels.*`, `web` (WhatsApp) — усі вбудовані канали й канали plugin | Ні |
| Агенти й моделі | `agent`, `agents`, `models`, `routing` | Ні |
| Автоматизація | `hooks`, `cron`, `agent.heartbeat` | Ні |
| Сеанси й повідомлення | `session`, `messages` | Ні |
| Сесії та повідомлення | `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>
## Config RPC (програмні оновлення)
## RPC конфігурації (програмні оновлення)
<Note>
RPC control plane для запису (`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.schema.lookup`: переглянути одне піддерево конфігурації для вказаного шляху з поверхневим
вузлом схеми, відповідними метаданими підказок і зведеннями про безпосередніх дочірніх елементів
- `config.get`: отримати поточний знімок + хеш
- `config.patch`: бажаний шлях часткового оновлення
- `config.patch`: бажаний шлях для часткового оновлення
- `config.apply`: лише повна заміна конфігурації
- `update.run`: явне самооновлення + перезапуск
- `update.run`: явне self-update + перезапуск
Коли ви не замінюєте всю конфігурацію, надавайте перевагу `config.schema.lookup`,
Якщо ви не замінюєте всю конфігурацію, надавайте перевагу `config.schema.lookup`,
а потім `config.patch`.
<AccordionGroup>
<Accordion title="config.apply (повна заміна)">
Перевіряє + записує повну конфігурацію та перезапускає Gateway за один крок.
Виконує валідацію + записує повну конфігурацію та перезапускає Gateway одним кроком.
<Warning>
`config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
@ -594,16 +597,16 @@ RPC control plane для запису (`config.apply`, `config.patch`, `update.r
Параметри:
- `raw` (string) — корисне навантаження JSON5 для всієї конфігурації
- `baseHash` (optional) — хеш конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (optional) — ключ сеансу для ping пробудження після перезапуску
- `note` (optional) — примітка для sentinel перезапуску
- `restartDelayMs` (optional) — затримка перед перезапуском (типово 2000)
- `raw` (string) — payload JSON5 для всієї конфігурації
- `baseHash` (необов’язково) — хеш конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (необов’язково) — session key для wake-up ping після перезапуску
- `note` (необов’язково) — примітка для sentinel перезапуску
- `restartDelayMs` (необов’язково) — затримка перед перезапуском (типово 2000)
Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє 30-секундний період охолодження.
Запити на перезапуск об’єднуються, якщо один уже очікує або виконується, і між циклами перезапуску діє 30-секундний період охолодження.
```bash
openclaw gateway call config.get --params '{}' # capture payload.hash
openclaw gateway call config.get --params '{}' # зафіксувати payload.hash
openclaw gateway call config.apply --params '{
"raw": "{ agents: { defaults: { workspace: \"~/.openclaw/workspace\" } } }",
"baseHash": "<hash>",
@ -622,11 +625,11 @@ RPC control plane для запису (`config.apply`, `config.patch`, `update.r
Параметри:
- `raw` (string) — JSON5 лише з ключами, які потрібно змінити
- `baseHash` (required) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — такі самі, як у `config.apply`
- `raw` (string) — JSON5 лише з тими ключами, які потрібно змінити
- `baseHash` (обов’язково) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — так само, як у `config.apply`
Поведінка перезапуску збігається з `config.apply`: об’єднання відкладених перезапусків і 30-секундний період охолодження між циклами перезапуску.
Поведінка перезапуску відповідає `config.apply`: об’єднання очікуваних перезапусків плюс 30-секундний період охолодження між циклами перезапуску.
```bash
openclaw gateway call config.patch --params '{
@ -640,12 +643,12 @@ RPC control plane для запису (`config.apply`, `config.patch`, `update.r
## Змінні середовища
OpenClaw читає змінні середовища з батьківського процесу, а також з:
OpenClaw зчитує env vars із батьківського процесу, а також з:
- `.env` у поточному робочому каталозі (якщо є)
- `~/.openclaw/.env` (глобальний резервний варіант)
- `~/.openclaw/.env` (глобальний запасний варіант)
Жоден із цих файлів не перевизначає вже наявні змінні середовища. Ви також можете встановлювати вбудовані змінні середовища в конфігурації:
Жоден із цих файлів не перевизначає вже наявні env vars. Ви також можете задавати вбудовані env vars у конфігурації:
```json5
{
@ -656,8 +659,8 @@ OpenClaw читає змінні середовища з батьківсько
}
```
<Accordion title="Імпорт shell env (необов’язково)">
Якщо це ввімкнено й очікувані ключі не встановлені, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
<Accordion title="Імпорт env оболонки (необов’язково)">
Якщо його ввімкнено і очікувані ключі не встановлені, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@ -671,7 +674,7 @@ OpenClaw читає змінні середовища з батьківсько
</Accordion>
<Accordion title="Підстановка env var у значеннях конфігурації">
Посилайтеся на змінні середовища в будь-якому рядковому значенні конфігурації за допомогою `${VAR_NAME}`:
Посилайтеся на env vars у будь-якому рядковому значенні конфігурації за допомогою `${VAR_NAME}`:
```json5
{
@ -682,7 +685,7 @@ OpenClaw читає змінні середовища з батьківсько
Правила:
- Збігаються лише назви у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Зіставляються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні змінні спричиняють помилку під час завантаження
- Екрануйте через `$${VAR}` для буквального виводу
- Працює всередині файлів `$include`
@ -723,16 +726,16 @@ OpenClaw читає змінні середовища з батьківсько
}
```
Докладніше про 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)**.
---
овязане: [Приклади конфігурації](/uk/gateway/configuration-examples) · [Довідник із конфігурації](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_
овязане: [Приклади конфігурації](/uk/gateway/configuration-examples) · [Довідник з конфігурації](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_

View File

@ -2,25 +2,25 @@
read_when:
- Центр усунення несправностей направив вас сюди для глибшої діагностики
- Вам потрібні стабільні розділи посібника на основі симптомів із точними командами
summary: Детальний посібник з усунення несправностей для Gateway, каналів, автоматизації, Node і браузера
summary: Глибокий посібник із пошуку та усунення несправностей для Gateway, каналів, автоматизації, Node і браузера
title: Усунення несправностей
x-i18n:
generated_at: "2026-04-22T20:50:00Z"
generated_at: "2026-04-22T22:37:31Z"
model: gpt-5.4
provider: openai
source_hash: 6df9cfcce30542401fc3d815781e226d45bb5462580722fa5353e404eef28ee6
source_hash: 426d90f3f9b693d49694d0bbd6dab2434c726ddd34cd47a753c91096e50ca6d8
source_path: gateway/troubleshooting.md
workflow: 15
---
# Усунення несправностей Gateway
Ця сторінка — детальний посібник.
Почніть із [/help/troubleshooting](/uk/help/troubleshooting), якщо спочатку хочете швидкий сценарій діагностики.
Ця сторінка — поглиблений посібник.
Почніть із [/help/troubleshooting](/uk/help/troubleshooting), якщо спочатку хочете пройти швидкий потік первинної діагностики.
## Послідовність команд
## Сходинки команд
Спочатку виконайте ці команди в такому порядку:
Спочатку виконайте це в такому порядку:
```bash
openclaw status
@ -34,10 +34,10 @@ openclaw channels status --probe
- `openclaw gateway status` показує `Runtime: running`, `Connectivity probe: ok` і рядок `Capability: ...`.
- `openclaw doctor` не повідомляє про блокувальні проблеми конфігурації/сервісу.
- `openclaw channels status --probe` показує живий стан транспорту для кожного облікового запису та,
де це підтримується, результати probe/audit, такі як `works` або `audit ok`.
- `openclaw channels status --probe` показує живий стан транспорту для кожного облікового запису і,
де це підтримується, результати probe/audit, наприклад `works` або `audit ok`.
## Anthropic 429: для довгого контексту потрібне додаткове використання
## Додаткове використання Anthropic 429 потрібне для довгого контексту
Використовуйте це, коли журнали/помилки містять:
`HTTP 429: rate_limit_error: Extra usage is required for long context requests`.
@ -48,31 +48,31 @@ openclaw models status
openclaw config get agents.defaults.models
```
Зверніть увагу на таке:
Шукайте таке:
- Для вибраної моделі Anthropic Opus/Sonnet встановлено `params.context1m: true`.
- Поточні облікові дані Anthropic не дають права на використання довгого контексту.
- Запити не вдаються лише для довгих сесій/запусків моделі, яким потрібен beta-шлях 1M.
- Вибрана модель Anthropic Opus/Sonnet має `params.context1m: true`.
- Поточні облікові дані Anthropic не мають права на використання довгого контексту.
- Запити збиваються лише на довгих сесіях/запусках моделей, яким потрібен шлях beta 1M.
Варіанти виправлення:
1. Вимкніть `context1m` для цієї моделі, щоб повернутися до звичайного вікна контексту.
2. Використайте облікові дані Anthropic, які мають право на запити з довгим контекстом, або перейдіть на Anthropic API key.
2. Використовуйте облікові дані Anthropic, які мають право на запити з довгим контекстом, або перейдіть на ключ Anthropic API.
3. Налаштуйте резервні моделі, щоб запуски продовжувалися, коли запити Anthropic із довгим контекстом відхиляються.
Пов’язане:
Пов’язано:
- [/providers/anthropic](/uk/providers/anthropic)
- [/reference/token-use](/uk/reference/token-use)
- [/help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic](/uk/help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic)
## Локальний OpenAI-compatible backend проходить прямі probe, але запуски агента не вдаються
## Локальний сумісний із OpenAI бекенд проходить прямі probe, але запуски агента збиваються
Використовуйте це, коли:
- `curl ... /v1/models` працює
- малі прямі виклики `/v1/chat/completions` працюють
- запуски моделей OpenClaw не вдаються лише під час звичайних ходів агента
- маленькі прямі виклики `/v1/chat/completions` працюють
- запуски моделі OpenClaw збиваються лише на звичайних ходах агента
```bash
curl http://127.0.0.1:1234/v1/models
@ -83,35 +83,38 @@ openclaw infer model run --model <provider/model> --prompt "hi" --json
openclaw logs --follow
```
Зверніть увагу на таке:
Шукайте таке:
- прямі малі виклики успішні, але запуски OpenClaw не вдаються лише на більших prompt
- backend повертає помилки про те, що `messages[].content` очікує рядок
- backend аварійно завершується лише за більшої кількості токенів у prompt або з повними prompt середовища виконання агента
- прямі маленькі виклики успішні, але запуски OpenClaw збиваються лише на більших prompts
- помилки бекенда про те, що `messages[].content` очікує рядок
- збої бекенда, які з’являються лише за більшої кількості prompt-токенів або повних
prompts середовища виконання агента
Поширені ознаки:
- `messages[...].content: invalid type: sequence, expected a string`backend
- `messages[...].content: invalid type: sequence, expected a string`бекенд
відхиляє структуровані частини вмісту Chat Completions. Виправлення: установіть
`models.providers.<provider>.models[].compat.requiresStringContent: true`.
- прямі малі запити успішні, але запуски агентів OpenClaw не вдаються через аварії backend/моделі
(наприклад, Gemma у деяких збірках `inferrs`) → транспорт OpenClaw,
імовірно, уже налаштований правильно; проблема в тому, що backend не справляється з більшою формою prompt середовища агента.
- збої зменшуються після вимкнення інструментів, але не зникають → схеми інструментів
були частиною навантаження, але решта проблеми все ще пов’язана з upstream-обмеженнями моделі/сервера або помилкою backend.
- прямі маленькі запити успішні, але запуски агента OpenClaw збиваються через збої
бекенда/моделі (наприклад, Gemma на деяких збірках `inferrs`) → транспорт OpenClaw
імовірно вже налаштований правильно; бекенд збивається через більшу форму prompt
середовища виконання агента.
- збоїв стає менше після вимкнення інструментів, але вони не зникають → схеми інструментів
були частиною навантаження, але решта проблеми все ще є обмеженням моделі/сервера
вгору за стеком або помилкою бекенда.
Варіанти виправлення:
1. Установіть `compat.requiresStringContent: true` для backend Chat Completions, які підтримують лише рядковий вміст.
2. Установіть `compat.supportsTools: false` для моделей/backend, які не можуть надійно обробляти
поверхню схем інструментів OpenClaw.
3. Де можливо, зменште навантаження від prompt: менший bootstrap робочого простору, коротша
історія сесії, легша локальна модель або backend із кращою підтримкою довгого контексту.
4. Якщо прямі малі запити й далі успішні, а ходи агента OpenClaw все одно аварійно завершуються
всередині backend, вважайте це обмеженням upstream-сервера/моделі й подайте туди
відтворюваний приклад із прийнятною формою payload.
1. Установіть `compat.requiresStringContent: true` для бекендів Chat Completions, що підтримують лише рядки.
2. Установіть `compat.supportsTools: false` для моделей/бекендів, які не можуть
надійно працювати з поверхнею схем інструментів OpenClaw.
3. Де можливо, зменште навантаження на prompt: менший bootstrap робочого простору, коротша
історія сесії, легша локальна модель або бекенд із кращою підтримкою довгого контексту.
4. Якщо маленькі прямі запити й далі проходять, а ходи агента OpenClaw усе одно збиваються
всередині бекенда, розглядайте це як обмеження сервера/моделі вгору за стеком і подайте
туди відтворюваний приклад із прийнятою формою payload.
Пов’язане:
Пов’язано:
- [/gateway/local-models](/uk/gateway/local-models)
- [/gateway/configuration](/uk/gateway/configuration)
@ -119,7 +122,7 @@ openclaw logs --follow
## Немає відповідей
Якщо канали працюють, але відповідей немає, перевірте маршрутизацію та політику, перш ніж щось перепідключати.
Якщо канали працюють, але відповідей немає, перевірте маршрутизацію та політики, перш ніж щось перепідключати.
```bash
openclaw status
@ -129,25 +132,25 @@ openclaw config get channels
openclaw logs --follow
```
Зверніть увагу на таке:
Шукайте таке:
- Для відправників у DM pairing очікує підтвердження.
- Обмеження згадування для груп (`requireMention`, `mentionPatterns`).
- Pairing очікує підтвердження для відправників у DM.
- Обмеження згадкою в групі (`requireMention`, `mentionPatterns`).
- Невідповідності allowlist каналу/групи.
Поширені ознаки:
- `drop guild message (mention required` → повідомлення групи ігнорується, доки немає згадування.
- `pairing request` → відправнику потрібне схвалення.
- `drop guild message (mention required` → повідомлення групи ігнорується, доки немає згадки.
- `pairing request` → відправник потребує схвалення.
- `blocked` / `allowlist` → відправника/канал було відфільтровано політикою.
Пов’язане:
Пов’язано:
- [/channels/troubleshooting](/uk/channels/troubleshooting)
- [/channels/pairing](/uk/channels/pairing)
- [/channels/groups](/uk/channels/groups)
## Підключення UI dashboard/control
## Підключення dashboard/control UI
Коли dashboard/control UI не підключається, перевірте URL, режим автентифікації та припущення щодо безпечного контексту.
@ -159,50 +162,51 @@ openclaw doctor
openclaw gateway status --json
```
Зверніть увагу на таке:
Шукайте таке:
- Правильний probe URL і URL dashboard.
- Невідповідність режиму автентифікації/токена між клієнтом і gateway.
- Правильний URL probe і URL dashboard.
- Невідповідність режиму автентифікації/токена між клієнтом і Gateway.
- Використання HTTP там, де потрібна ідентичність пристрою.
Поширені ознаки:
- `device identity required` → небезпечний контекст або відсутня автентифікація пристрою.
- `origin not allowed``Origin` браузера не входить до `gateway.controlUi.allowedOrigins`
(або ви підключаєтеся з browser origin не на loopback без явного
- `origin not allowed``Origin` браузера відсутній у `gateway.controlUi.allowedOrigins`
(або ви підключаєтеся з origin браузера не на loopback без явного
allowlist).
- `device nonce required` / `device nonce mismatch` → клієнт не завершує
автентифікацію пристрою на основі challenge (`connect.challenge` + `device.nonce`).
challenge-based потік автентифікації пристрою (`connect.challenge` + `device.nonce`).
- `device signature invalid` / `device signature expired` → клієнт підписав неправильний
payload (або використав застарілу часову позначку) для поточного handshake.
payload (або використав застарілу часову мітку) для поточного handshake.
- `AUTH_TOKEN_MISMATCH` з `canRetryWithDeviceToken=true` → клієнт може виконати одну довірену повторну спробу з кешованим токеном пристрою.
- Ця повторна спроба з кешованим токеном повторно використовує кешований набір scope, збережений із прив’язаним
- Ця повторна спроба з кешованим токеном повторно використовує кешований набір scopes, збережений із парним
токеном пристрою. Виклики з явним `deviceToken` / явними `scopes` зберігають
запитаний ними набір scope.
- Поза цим шляхом повторної спроби пріоритет автентифікації connect такий: явний спільний
token/password спочатку, потім явний `deviceToken`, потім збережений токен пристрою,
потім bootstrap token.
- У шляху async Tailscale Serve Control UI невдалі спроби для одного й того самого
`{scope, ip}` серіалізуються до того, як limiter зафіксує збій. Тому дві хибні
свій запитаний набір scopes.
- Поза цим шляхом повторної спроби пріоритет автентифікації підключення такий: явний спільний
токен/пароль спочатку, далі явний `deviceToken`, далі збережений токен пристрою,
далі bootstrap-токен.
- На асинхронному шляху Tailscale Serve Control UI невдалі спроби для того самого
`{scope, ip}` серіалізуються до того, як обмежувач зафіксує невдачу. Тому дві хибні
одночасні повторні спроби від того самого клієнта можуть показати `retry later`
у другій спробі замість двох звичайних невідповідностей.
- `too many failed authentication attempts (retry later)` від loopback-клієнта з browser origin
→ повторні збої з того самого нормалізованого `Origin` тимчасово блокуються; інший localhost origin використовує окремий bucket.
- повторюване `unauthorized` після цієї повторної спроби → розсинхронізація shared token/device token; оновіть конфігурацію токена та повторно схваліть/перевипустіть токен пристрою за потреби.
- `gateway connect failed:` → неправильна ціль host/port/url.
- `too many failed authentication attempts (retry later)` від loopback-клієнта з browser-origin
→ повторні невдачі від того самого нормалізованого `Origin` тимчасово блокуються;
інший localhost origin використовує окремий bucket.
- повторюваний `unauthorized` після цієї повторної спроби → розсинхронізація shared token/device token; оновіть конфігурацію токена та за потреби повторно схваліть/ротуйте токен пристрою.
- `gateway connect failed:` → неправильний хост/порт/цільовий url.
### Коротка карта кодів деталей автентифікації
### Швидка карта кодів деталей автентифікації
Використовуйте `error.details.code` з невдалої відповіді `connect`, щоб вибрати наступну дію:
Використовуйте `error.details.code` з невдалого `connect` response, щоб вибрати наступну дію:
| Код деталей | Значення | Рекомендована дія |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUTH_TOKEN_MISSING` | Клієнт не надіслав обов’язковий спільний token. | Вставте/установіть token у клієнті й повторіть спробу. Для шляхів dashboard: `openclaw config get gateway.auth.token`, потім вставте його в налаштуваннях Control UI. |
| `AUTH_TOKEN_MISMATCH` | Спільний token не збігся з токеном автентифікації gateway. | Якщо `canRetryWithDeviceToken=true`, дозвольте одну довірену повторну спробу. Повторні спроби з кешованим токеном повторно використовують збережені схвалені scope; виклики з явними `deviceToken` / `scopes` зберігають запитані scope. Якщо збій повторюється, виконайте [контрольний список відновлення розсинхронізації токенів](/cli/devices#token-drift-recovery-checklist). |
| `AUTH_DEVICE_TOKEN_MISMATCH` | Кешований токен для конкретного пристрою застарів або відкликаний. | Перевипустіть/повторно схваліть токен пристрою за допомогою [CLI пристроїв](/cli/devices), а потім підключіться знову. |
| `PAIRING_REQUIRED` | Ідентичність пристрою потребує схвалення. Перевірте `error.details.reason`: `not-paired`, `scope-upgrade`, `role-upgrade` або `metadata-upgrade`, і використовуйте `requestId` / `remediationHint`, якщо вони є. | Схваліть очікуваний запит: `openclaw devices list`, потім `openclaw devices approve <requestId>`. Підвищення scope/ролей використовує той самий процес після перевірки запитаного доступу. |
| `AUTH_TOKEN_MISSING` | Клієнт не надіслав обов’язковий спільний токен. | Вставте/установіть токен у клієнті та повторіть спробу. Для шляхів dashboard: `openclaw config get gateway.auth.token`, потім вставте його в налаштування Control UI. |
| `AUTH_TOKEN_MISMATCH` | Спільний токен не збігся з токеном автентифікації Gateway. | Якщо `canRetryWithDeviceToken=true`, дозвольте одну довірену повторну спробу. Повторні спроби з кешованим токеном повторно використовують збережені схвалені scopes; виклики з явним `deviceToken` / `scopes` зберігають запитані scopes. Якщо все одно не працює, виконайте [контрольний список відновлення після розсинхронізації токенів](/cli/devices#token-drift-recovery-checklist). |
| `AUTH_DEVICE_TOKEN_MISMATCH` | Кешований токен для пристрою застарів або був відкликаний. | Ротуйте/повторно схваліть токен пристрою за допомогою [CLI devices](/cli/devices), потім підключіться знову. |
| `PAIRING_REQUIRED` | Ідентичність пристрою потребує схвалення. Перевірте `error.details.reason` для `not-paired`, `scope-upgrade`, `role-upgrade` або `metadata-upgrade` і використовуйте `requestId` / `remediationHint`, якщо вони є. | Схваліть очікуваний запит: `openclaw devices list`, потім `openclaw devices approve <requestId>`. Оновлення scope/role використовують той самий потік після того, як ви переглянете запитаний доступ. |
Перевірка міграції device auth v2:
Перевірка міграції автентифікації пристроїв v2:
```bash
openclaw --version
@ -210,20 +214,20 @@ openclaw doctor
openclaw gateway status
```
Якщо журнали показують помилки nonce/signature, оновіть клієнт, який підключається, і переконайтеся, що він:
Якщо в журналах видно помилки nonce/signature, оновіть клієнт, що підключається, і перевірте, що він:
1. чекає на `connect.challenge`
1. очікує на `connect.challenge`
2. підписує payload, прив’язаний до challenge
3. надсилає `connect.params.device.nonce` з тим самим nonce challenge
3. надсилає `connect.params.device.nonce` з тим самим challenge nonce
Якщо `openclaw devices rotate` / `revoke` / `remove` неочікувано заборонено:
Якщо `openclaw devices rotate` / `revoke` / `remove` несподівано заборонено:
- сесії з токеном прив’язаного пристрою можуть керувати лише **власним** пристроєм, якщо
- сесії токенів парних пристроїв можуть керувати лише **власним** пристроєм, якщо
виклик також не має `operator.admin`
- `openclaw devices rotate --scope ...` може запитувати лише ті operator scope,
- `openclaw devices rotate --scope ...` може запитувати лише ті operator scopes,
які сесія виклику вже має
Пов’язане:
Пов’язано:
- [/web/control-ui](/web/control-ui)
- [/gateway/configuration](/uk/gateway/configuration) (режими автентифікації gateway)
@ -243,28 +247,28 @@ openclaw doctor
openclaw gateway status --deep # also scan system-level services
```
Зверніть увагу на таке:
Шукайте таке:
- `Runtime: stopped` із підказками щодо завершення.
- Невідповідність конфігурації сервісу (`Config (cli)` проти `Config (service)`).
- Конфлікти порту/слухача.
- Невідповідність конфігурації сервісу (`Config (cli)` vs `Config (service)`).
- Конфлікти портів/слухачів.
- Додаткові встановлення launchd/systemd/schtasks, коли використовується `--deep`.
- Підказки очищення `Other gateway-like services detected (best effort)`.
Поширені ознаки:
- `Gateway start blocked: set gateway.mode=local` або `existing config is missing gateway.mode` → локальний режим gateway не ввімкнено, або файл конфігурації було пошкоджено і він втратив `gateway.mode`. Виправлення: установіть `gateway.mode="local"` у своїй конфігурації або повторно виконайте `openclaw onboard --mode local` / `openclaw setup`, щоб знову проставити очікувану конфігурацію локального режиму. Якщо ви запускаєте OpenClaw через Podman, типовий шлях до конфігурації: `~/.openclaw/openclaw.json`.
- `refusing to bind gateway ... without auth` → прив’язка не до loopback без дійсного шляху автентифікації gateway (token/password або trusted-proxy, якщо налаштовано).
- `Gateway start blocked: set gateway.mode=local` або `existing config is missing gateway.mode` → локальний режим Gateway не ввімкнений, або файл конфігурації був пошкоджений і втратив `gateway.mode`. Виправлення: установіть `gateway.mode="local"` у своїй конфігурації або повторно запустіть `openclaw onboard --mode local` / `openclaw setup`, щоб знову проставити очікувану конфігурацію локального режиму. Якщо ви запускаєте OpenClaw через Podman, стандартний шлях до конфігурації — `~/.openclaw/openclaw.json`.
- `refusing to bind gateway ... without auth` → прив’язка не до loopback без дійсного шляху автентифікації gateway (токен/пароль або trusted-proxy, якщо налаштовано).
- `another gateway instance is already listening` / `EADDRINUSE` → конфлікт порту.
- `Other gateway-like services detected (best effort)` → існують застарілі або паралельні launchd/systemd/schtasks unit. У більшості конфігурацій на одну машину має бути один gateway; якщо вам справді потрібно більше одного, ізолюйте порти + config/state/workspace. Див. [/gateway#multiple-gateways-same-host](/uk/gateway#multiple-gateways-same-host).
- `Other gateway-like services detected (best effort)` → існують застарілі або паралельні юніти launchd/systemd/schtasks. У більшості конфігурацій слід тримати один Gateway на машину; якщо вам справді потрібно більше одного, ізолюйте порти + конфігурацію/стан/робочий простір. Див. [/gateway#multiple-gateways-same-host](/uk/gateway#multiple-gateways-same-host).
Пов’язане:
Пов’язано:
- [/gateway/background-process](/uk/gateway/background-process)
- [/gateway/configuration](/uk/gateway/configuration)
- [/gateway/doctor](/uk/gateway/doctor)
## Gateway відновив останню відому справну конфігурацію
## Gateway відновив останню відому коректну конфігурацію
Використовуйте це, коли Gateway запускається, але в журналах сказано, що він відновив `openclaw.json`.
@ -275,22 +279,22 @@ openclaw config validate
openclaw doctor
```
Зверніть увагу на таке:
Шукайте таке:
- `Config auto-restored from last-known-good`
- `gateway: invalid config was restored from last-known-good backup`
- `config reload restored last-known-good config after invalid-config`
- Файл `openclaw.json.clobbered.*` з часовою позначкою поруч з активною конфігурацією
- Файл `openclaw.json.clobbered.*` із часовою міткою поруч з активною конфігурацією
- Системну подію головного агента, що починається з `Config recovery warning`
Що сталося:
- Відхилена конфігурація не пройшла валідацію під час запуску або гарячого перезавантаження.
- OpenClaw зберіг відхилений payload як `.clobbered.*`.
- Активну конфігурацію було відновлено з останньої валідованої останньої відомої справної копії.
- Наступний хід головного агента отримує попередження не переписувати сліпо відхилену конфігурацію.
- Активну конфігурацію було відновлено з останньої перевіреної останньої відомої коректної копії.
- Наступний хід головного агента отримує попередження не переписувати відхилену конфігурацію навмання.
Перевірка й виправлення:
Перевірка та виправлення:
```bash
CONFIG="$(openclaw config file)"
@ -302,10 +306,11 @@ openclaw doctor
Поширені ознаки:
- Існує `.clobbered.*` → було відновлено зовнішнє пряме редагування або зчитування під час запуску.
- Існує `.rejected.*` → запис конфігурації, виконаний OpenClaw, не пройшов перевірки схеми або цілісності перед commit.
- існує `.clobbered.*` → було відновлено зовнішнє пряме редагування або читання під час запуску.
- існує `.rejected.*` → запис конфігурації, який виконував сам OpenClaw, не пройшов перевірки схеми або clobber перед підтвердженням.
- `Config write rejected:` → запис намагався прибрати обов’язкову структуру, різко зменшити файл або зберегти невалідну конфігурацію.
- `Config last-known-good promotion skipped` → кандидат містив замасковані placeholder секретів, наприклад `***`.
- `missing-meta-vs-last-good`, `gateway-mode-missing-vs-last-good` або `size-drop-vs-last-good:*` → під час запуску поточний файл було визнано пошкодженим, бо порівняно з останньою відомою коректною резервною копією він втратив поля або розмір.
- `Config last-known-good promotion skipped` → кандидат містив редаговані заповнювачі секретів, наприклад `***`.
Варіанти виправлення:
@ -314,16 +319,16 @@ openclaw doctor
3. Перед перезапуском виконайте `openclaw config validate`.
4. Якщо редагуєте вручну, зберігайте повну конфігурацію JSON5, а не лише частковий об’єкт, який хотіли змінити.
Пов’язане:
Пов’язано:
- [/gateway/configuration#strict-validation](/uk/gateway/configuration#strict-validation)
- [/gateway/configuration#config-hot-reload](/uk/gateway/configuration#config-hot-reload)
- [/cli/config](/cli/config)
- [/gateway/doctor](/uk/gateway/doctor)
## Попередження probe Gateway
## Попередження Gateway probe
Використовуйте це, коли `openclaw gateway probe` до чогось доходить, але все одно виводить блок попередження.
Використовуйте це, коли `openclaw gateway probe` до чогось достукується, але все одно виводить блок попередження.
```bash
openclaw gateway probe
@ -331,20 +336,20 @@ openclaw gateway probe --json
openclaw gateway probe --ssh user@gateway-host
```
Зверніть увагу на таке:
Шукайте таке:
- `warnings[].code` і `primaryTargetId` у виводі JSON.
- Чи стосується попередження SSH fallback, кількох gateway, відсутніх scope або нерозв’язаних auth ref.
- Чи стосується попередження SSH fallback, кількох Gateway, відсутніх scopes або нерозв’язаних auth ref.
Поширені ознаки:
- `SSH tunnel failed to start; falling back to direct probes.` → налаштування SSH не вдалося, але команда все одно спробувала прямі налаштовані/loopback-цілі.
- `multiple reachable gateways detected` → відповіло більше однієї цілі. Зазвичай це означає навмисну конфігурацію з кількома gateway або застарілі/дубльовані listener.
- `Read-probe diagnostics are limited by gateway scopes (missing operator.read)` → підключення спрацювало, але деталізований RPC обмежено scope; прив’яжіть ідентичність пристрою або використайте облікові дані з `operator.read`.
- `Capability: pairing-pending` або `gateway closed (1008): pairing required`gateway відповів, але цьому клієнту все ще потрібне pairing/схвалення перед звичайним доступом оператора.
- нерозв’язане попередження SecretRef для `gateway.auth.*` / `gateway.remote.*`auth-матеріал був недоступний у цьому шляху команди для цілі, що завершилась невдачею.
- `multiple reachable gateways detected` → відповіло більше однієї цілі. Зазвичай це означає навмисну конфігурацію з кількома Gateway або застарілі/дубльовані слухачі.
- `Read-probe diagnostics are limited by gateway scopes (missing operator.read)` → підключення спрацювало, але детальний RPC обмежений scopes; виконайте pairing ідентичності пристрою або використайте облікові дані з `operator.read`.
- `Capability: pairing-pending` або `gateway closed (1008): pairing required`Gateway відповів, але цьому клієнту все ще потрібне pairing/схвалення перед звичайним operator-доступом.
- нерозв’язане попередження SecretRef для `gateway.auth.*` / `gateway.remote.*`у цьому шляху виконання команди для цільового вузла, що не пройшов перевірку, матеріал автентифікації був недоступний.
Пов’язане:
Пов’язано:
- [/cli/gateway](/cli/gateway)
- [/gateway#multiple-gateways-same-host](/uk/gateway#multiple-gateways-same-host)
@ -352,7 +357,7 @@ openclaw gateway probe --ssh user@gateway-host
## Канал підключений, але повідомлення не проходять
Якщо стан каналу — connected, але потік повідомлень не працює, зосередьтеся на політиці, дозволах і правилах доставки, специфічних для каналу.
Якщо стан каналу — підключено, але потік повідомлень мертвий, зосередьтеся на політиках, дозволах і правилах доставки, специфічних для каналу.
```bash
openclaw channels status --probe
@ -362,19 +367,19 @@ openclaw logs --follow
openclaw config get channels
```
Зверніть увагу на таке:
Шукайте таке:
- Політику DM (`pairing`, `allowlist`, `open`, `disabled`).
- Allowlist групи та вимоги до згадувань.
- Політика DM (`pairing`, `allowlist`, `open`, `disabled`).
- Allowlist групи та вимоги щодо згадки.
- Відсутні дозволи/scopes API каналу.
Поширені ознаки:
- `mention required` → повідомлення ігнорується політикою згадування в групі.
- `mention required` → повідомлення ігнорується політикою згадок у групі.
- `pairing` / сліди очікування схвалення → відправника не схвалено.
- `missing_scope`, `not_in_channel`, `Forbidden`, `401/403` → проблема з автентифікацією/дозволами каналу.
- `missing_scope`, `not_in_channel`, `Forbidden`, `401/403` → проблема автентифікації/дозволів каналу.
Пов’язане:
Пов’язано:
- [/channels/troubleshooting](/uk/channels/troubleshooting)
- [/channels/whatsapp](/uk/channels/whatsapp)
@ -383,7 +388,7 @@ openclaw config get channels
## Доставка Cron і Heartbeat
Якщо Cron або Heartbeat не запустилися чи не доставили результат, спочатку перевірте стан scheduler, а потім ціль доставки.
Якщо Cron або Heartbeat не запустилися чи не доставилися, спочатку перевірте стан планувальника, а потім ціль доставки.
```bash
openclaw cron status
@ -393,31 +398,31 @@ openclaw system heartbeat last
openclaw logs --follow
```
Зверніть увагу на таке:
Шукайте таке:
- Cron увімкнено, і присутнє наступне пробудження.
- Статус історії виконання завдань (`ok`, `skipped`, `error`).
- Cron увімкнено та є наступне пробудження.
- Стан історії виконання завдань (`ok`, `skipped`, `error`).
- Причини пропуску Heartbeat (`quiet-hours`, `requests-in-flight`, `alerts-disabled`, `empty-heartbeat-file`, `no-tasks-due`).
Поширені ознаки:
- `cron: scheduler disabled; jobs will not run automatically` → Cron вимкнено.
- `cron: timer tick failed` → збій тіку scheduler; перевірте помилки файлів/журналів/середовища виконання.
- `cron: timer tick failed` → збій тіку планувальника; перевірте помилки файлів/журналів/середовища виконання.
- `heartbeat skipped` з `reason=quiet-hours` → поза вікном активних годин.
- `heartbeat skipped` з `reason=empty-heartbeat-file``HEARTBEAT.md` існує, але містить лише порожні рядки / markdown-заголовки, тому OpenClaw пропускає виклик моделі.
- `heartbeat skipped` з `reason=no-tasks-due``HEARTBEAT.md` містить блок `tasks:`, але жодне із завдань не має виконуватися під час цього тіку.
- `heartbeat: unknown accountId` → недійсний account id для цілі доставки Heartbeat.
- `heartbeat skipped` з `reason=dm-blocked` → ціль Heartbeat була визначена як пункт призначення стилю DM, тоді як `agents.defaults.heartbeat.directPolicy` (або перевизначення для конкретного агента) встановлено в `block`.
- `heartbeat skipped` з `reason=empty-heartbeat-file``HEARTBEAT.md` існує, але містить лише порожні рядки / заголовки markdown, тому OpenClaw пропускає виклик моделі.
- `heartbeat skipped` з `reason=no-tasks-due``HEARTBEAT.md` містить блок `tasks:`, але жодне із завдань не має бути виконане на цьому тіку.
- `heartbeat: unknown accountId` → невалідний account id для цілі доставки Heartbeat.
- `heartbeat skipped` з `reason=dm-blocked` → ціль Heartbeat визначилася як призначення в стилі DM, тоді як `agents.defaults.heartbeat.directPolicy` (або перевизначення для конкретного агента) установлено в `block`.
Пов’язане:
Пов’язано:
- [/automation/cron-jobs#troubleshooting](/uk/automation/cron-jobs#troubleshooting)
- [/automation/cron-jobs](/uk/automation/cron-jobs)
- [/gateway/heartbeat](/uk/gateway/heartbeat)
## Збій інструмента прив’язаного Node
## Збій інструмента парного Node
Якщо Node прив’язано, але інструменти не працюють, ізолюйте стан foreground, дозволів і схвалення.
Якщо Node виконала pairing, але інструменти не працюють, ізолюйте стан foreground, дозволів і схвалення.
```bash
openclaw nodes status
@ -427,11 +432,11 @@ openclaw logs --follow
openclaw status
```
Зверніть увагу на таке:
Шукайте таке:
- Node онлайн з очікуваними можливостями.
- Надані дозволи ОС для камери/мікрофона/геолокації/екрана.
- Стан схвалення exec і allowlist.
- Стан схвалень exec і allowlist.
Поширені ознаки:
@ -440,15 +445,15 @@ openclaw status
- `SYSTEM_RUN_DENIED: approval required` → очікується схвалення exec.
- `SYSTEM_RUN_DENIED: allowlist miss` → команду заблоковано allowlist.
Пов’язане:
Пов’язано:
- [/nodes/troubleshooting](/uk/nodes/troubleshooting)
- [/nodes/index](/uk/nodes/index)
- [/tools/exec-approvals](/uk/tools/exec-approvals)
## Збій browser tool
## Збій інструмента браузера
Використовуйте це, коли дії browser tool не вдаються, хоча сам gateway справний.
Використовуйте це, коли дії інструмента браузера не працюють, хоча сам Gateway справний.
```bash
openclaw browser status
@ -458,42 +463,42 @@ openclaw logs --follow
openclaw doctor
```
Зверніть увагу на таке:
Шукайте таке:
- Чи встановлено `plugins.allow` і чи містить він `browser`.
- Валідний шлях до виконуваного файла браузера.
- Коректний шлях до виконуваного файлу браузера.
- Досяжність профілю CDP.
- Наявність локального Chrome для профілів `existing-session` / `user`.
Поширені ознаки:
- `unknown command "browser"` або `unknown command 'browser'` → вбудований browser Plugin виключено через `plugins.allow`.
- browser tool відсутній / недоступний, хоча `browser.enabled=true``plugins.allow` виключає `browser`, тому Plugin ніколи не завантажився.
- `unknown command "browser"` або `unknown command 'browser'` → вбудований Plugin браузера виключено через `plugins.allow`.
- інструмент браузера відсутній / недоступний, хоча `browser.enabled=true``plugins.allow` виключає `browser`, тому Plugin ніколи не завантажувався.
- `Failed to start Chrome CDP on port` → не вдалося запустити процес браузера.
- `browser.executablePath not found` → налаштований шлях недійсний.
- `browser.cdpUrl must be http(s) or ws(s)` → налаштований CDP URL використовує непідтримувану схему, таку як `file:` або `ftp:`.
- `browser.cdpUrl has invalid port` → налаштований CDP URL має помилковий або неприпустимий порт.
- `Could not find DevToolsActivePort for chrome` → Chrome MCP existing-session ще не зміг під’єднатися до вибраного каталогу даних браузера. Відкрийте сторінку inspect браузера, увімкніть remote debugging, тримайте браузер відкритим, схваліть перший запит на підключення, а потім повторіть спробу. Якщо стан входу не потрібен, віддайте перевагу керованому профілю `openclaw`.
- `No Chrome tabs found for profile="user"` → профіль підключення Chrome MCP не має відкритих локальних вкладок Chrome.
- `Remote CDP for profile "<name>" is not reachable` → налаштований віддалений endpoint CDP недосяжний із хоста gateway.
- `Browser attachOnly is enabled ... not reachable` або `Browser attachOnly is enabled and CDP websocket ... is not reachable` → профіль лише з attach не має досяжної цілі, або HTTP endpoint відповів, але CDP WebSocket все одно не вдалося відкрити.
- `Playwright is not available in this gateway build; '<feature>' is unsupported.`у поточній інсталяції gateway бракує вбудованої залежності середовища виконання `playwright-core` для browser Plugin; виконайте `openclaw doctor --fix`, потім перезапустіть gateway. Знімки ARIA та базові знімки сторінок усе ще можуть працювати, але навігація, AI snapshots, знімки елементів за CSS-селекторами та експорт PDF залишаться недоступними.
- `browser.cdpUrl must be http(s) or ws(s)` → налаштований URL CDP використовує непідтримувану схему, наприклад `file:` або `ftp:`.
- `browser.cdpUrl has invalid port` → налаштований URL CDP має хибний або неприпустимий порт.
- `Could not find DevToolsActivePort for chrome` → Chrome MCP existing-session поки не зміг приєднатися до вибраного каталогу даних браузера. Відкрийте сторінку inspect браузера, увімкніть віддалене налагодження, тримайте браузер відкритим, схваліть перший запит на приєднання, а потім повторіть спробу. Якщо авторизований стан не потрібен, надавайте перевагу керованому профілю `openclaw`.
- `No Chrome tabs found for profile="user"` → профіль приєднання Chrome MCP не має відкритих локальних вкладок Chrome.
- `Remote CDP for profile "<name>" is not reachable` → налаштована віддалена кінцева точка CDP недосяжна з хоста Gateway.
- `Browser attachOnly is enabled ... not reachable` або `Browser attachOnly is enabled and CDP websocket ... is not reachable` → профіль лише для приєднання не має досяжної цілі, або HTTP-ендпоінт відповів, але CDP WebSocket усе одно не вдалося відкрити.
- `Playwright is not available in this gateway build; '<feature>' is unsupported.`у поточному встановленні Gateway бракує залежності середовища виконання `playwright-core` вбудованого browser Plugin; виконайте `openclaw doctor --fix`, потім перезапустіть Gateway. Знімки ARIA та базові знімки сторінки все ще можуть працювати, але навігація, AI-знімки, знімки елементів за CSS-селекторами та експорт PDF залишатимуться недоступними.
- `fullPage is not supported for element screenshots` → запит на знімок екрана поєднав `--full-page` з `--ref` або `--element`.
- `element screenshots are not supported for existing-session profiles; use ref from snapshot.` → виклики знімків екрана Chrome MCP / `existing-session` повинні використовувати захоплення сторінки або `--ref` зі snapshot, а не CSS `--element`.
- `existing-session file uploads do not support element selectors; use ref/inputRef.` → хуки завантаження файлів у Chrome MCP потребують snapshot ref, а не CSS-селекторів.
- `existing-session file uploads currently support one file at a time.` → для профілів Chrome MCP надсилайте по одному файлу за виклик.
- `element screenshots are not supported for existing-session profiles; use ref from snapshot.` → виклики знімків екрана Chrome MCP / `existing-session` мають використовувати захоплення сторінки або `--ref` зі snapshot, а не CSS `--element`.
- `existing-session file uploads do not support element selectors; use ref/inputRef.` → хуки завантаження файлів Chrome MCP потребують snapshot ref, а не CSS-селекторів.
- `existing-session file uploads currently support one file at a time.` → для профілів Chrome MCP надсилайте одне завантаження за виклик.
- `existing-session dialog handling does not support timeoutMs.` → хуки діалогів у профілях Chrome MCP не підтримують перевизначення timeout.
- `response body is not supported for existing-session profiles yet.``responsebody` поки що потребує керованого браузера або сирого профілю CDP.
- застарілі перевизначення viewport / dark-mode / locale / offline у профілях attach-only або remote CDP → виконайте `openclaw browser stop --browser-profile <name>`, щоб закрити активну керовану сесію й звільнити стан емуляції Playwright/CDP без перезапуску всього gateway.
- застарілі перевизначення viewport / dark-mode / locale / offline у профілях attach-only або remote CDP → виконайте `openclaw browser stop --browser-profile <name>`, щоб закрити активну сесію керування та звільнити стан емуляції Playwright/CDP без перезапуску всього Gateway.
Пов’язане:
Пов’язано:
- [/tools/browser-linux-troubleshooting](/uk/tools/browser-linux-troubleshooting)
- [/tools/browser](/uk/tools/browser)
## Якщо ви оновилися і щось раптово зламалося
## Якщо ви оновилися і щось раптом зламалося
Більшість збоїв після оновлення — це дрейф конфігурації або жорсткіші типові значення, які тепер примусово застосовуються.
Більшість збоїв після оновлення — це дрейф конфігурації або застосування суворіших типових значень.
### 1) Змінилася поведінка автентифікації та перевизначення URL
@ -506,15 +511,15 @@ openclaw config get gateway.auth.mode
Що перевірити:
- Якщо `gateway.mode=remote`, виклики CLI можуть бути спрямовані на віддалений Gateway, тоді як ваш локальний сервіс справний.
- Якщо `gateway.mode=remote`, виклики CLI можуть бути націлені на віддалений вузол, тоді як ваш локальний сервіс справний.
- Явні виклики `--url` не повертаються до збережених облікових даних.
Поширені ознаки:
- `gateway connect failed:` → неправильна ціль URL.
- `unauthorized`endpoint досяжний, але автентифікація неправильна.
- `gateway connect failed:` → неправильний цільовий URL.
- `unauthorized`ендпоінт досяжний, але автентифікація неправильна.
### 2) Обмеження прив’язки та автентифікації стали жорсткішими
### 2) Запобіжники для bind і автентифікації стали суворішими
```bash
openclaw config get gateway.bind
@ -526,13 +531,13 @@ openclaw logs --follow
Що перевірити:
- Прив’язки не до loopback (`lan`, `tailnet`, `custom`) потребують дійсного шляху автентифікації Gateway: спільна автентифікація token/password або правильно налаштоване розгортання `trusted-proxy` не на loopback.
- Прив’язки не до loopback (`lan`, `tailnet`, `custom`) потребують дійсного шляху автентифікації gateway: shared token/password auth або правильно налаштоване розгортання `trusted-proxy` не на loopback.
- Старі ключі на кшталт `gateway.token` не замінюють `gateway.auth.token`.
Поширені ознаки:
- `refusing to bind gateway ... without auth` → прив’язка не до loopback без дійсного шляху автентифікації gateway.
- `Connectivity probe: failed`, тоді як runtime запущено → gateway живий, але недоступний із поточною auth/url.
- `Connectivity probe: failed` при запущеному runtime → Gateway живий, але недоступний з поточними auth/url.
### 3) Змінився стан pairing та ідентичності пристрою
@ -550,17 +555,17 @@ openclaw doctor
Поширені ознаки:
- `device identity required` → автентифікацію пристрою не виконано.
- `device identity required`не виконано автентифікацію пристрою.
- `pairing required` → відправника/пристрій потрібно схвалити.
Якщо після перевірок конфігурація сервісу та runtime все ще не збігаються, перевстановіть метадані сервісу з того самого каталогу profile/state:
Якщо після перевірок конфігурація сервісу та runtime все ще не збігаються, перевстановіть метадані сервісу з того самого каталогу профілю/стану:
```bash
openclaw gateway install --force
openclaw gateway restart
```
Пов’язане:
Пов’язано:
- [/gateway/pairing](/uk/gateway/pairing)
- [/gateway/authentication](/uk/gateway/authentication)