chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-23 08:18:47 +00:00
parent 692b5508ec
commit ec2e40b1a6
2 changed files with 895 additions and 1095 deletions

View File

@ -1,38 +1,38 @@
---
read_when:
- Перше налаштування OpenClaw
- Шукаєте поширені шаблони конфігурації
- Перехід до певних розділів конфігурації
- Пошук поширених шаблонів конфігурації
- Перехід до конкретних розділів конфігурації
summary: 'Огляд конфігурації: поширені завдання, швидке налаштування та посилання на повний довідник'
title: Конфігурація
x-i18n:
generated_at: "2026-04-23T07:25:03Z"
generated_at: "2026-04-23T08:14:09Z"
model: gpt-5.4
provider: openai
source_hash: 6a68c5e4d375e0910b65fa4da2bcfc6fa560cbcba750778605420dc1b83eeb15
source_hash: a674bbc73f3a501ffd47ef9396d55d6087806921cfb24ef576398022dd0248c3
source_path: gateway/configuration.md
workflow: 15
---
# Конфігурація
OpenClaw читає необов’язкову конфігурацію <Tooltip tip="JSON5 supports comments and trailing commas">**JSON5**</Tooltip> з `~/.openclaw/openclaw.json`.
Активний шлях конфігурації має бути звичайним файлом. Макети
`openclaw.json` із символічними посиланнями не підтримуються для записів,
якими керує OpenClaw; атомарний запис може замінити
цей шлях замість збереження символічного посилання. Якщо ви зберігаєте конфігурацію поза
стандартним каталогом стану, вкажіть `OPENCLAW_CONFIG_PATH` безпосередньо на реальний файл.
OpenClaw читає необов’язковий конфігураційний файл <Tooltip tip="JSON5 підтримує коментарі та кінцеві коми">**JSON5**</Tooltip> з `~/.openclaw/openclaw.json`.
Активний шлях конфігурації має вказувати на звичайний файл. Схеми
`openclaw.json` із символьними посиланнями не підтримуються для записів,
якими керує OpenClaw; атомарний запис може замінити шлях замість збереження
символьного посилання. Якщо ви зберігаєте конфігурацію поза типовим
каталогом стану, вкажіть `OPENCLAW_CONFIG_PATH` безпосередньо на реальний файл.
Якщо файл відсутній, OpenClaw використовує безпечні типові значення. Поширені причини додати конфігурацію:
Якщо файл відсутній, OpenClaw використовує безпечні значення за замовчуванням. Типові причини додати конфігурацію:
- Підключити канали та керувати тим, хто може надсилати повідомлення боту
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (cron, hooks)
- Тонко налаштувати сесії, медіа, мережу або UI
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (Cron, хуки)
- Налаштувати сесії, медіа, мережу або UI
Перегляньте [повний довідник](/uk/gateway/configuration-reference), щоб побачити всі доступні поля.
<Tip>
**Вперше налаштовуєте конфігурацію?** Почніть із `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) для повних готових конфігурацій, які можна скопіювати й вставити.
**Вперше працюєте з конфігурацією?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) для готових конфігурацій, які можна повністю скопіювати й вставити.
</Tip>
## Мінімальна конфігурація
@ -62,44 +62,32 @@ OpenClaw читає необов’язкову конфігурацію <Toolti
```
</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`, щоб
отримати один вузол схеми з прив’язкою до шляху разом із короткими описами безпосередніх дочірніх елементів.
Відкрийте [http://127.0.0.1:18789](http://127.0.0.1:18789) і використайте вкладку **Config**.
Control UI відображає форму з живої схеми конфігурації, включно з метаданими документації полів
`title` / `description`, а також схемами plugin і каналів, коли вони
доступні, з редактором **Raw JSON** як запасним варіантом. Для інтерфейсів
деталізації та інших інструментів gateway також надає `config.schema.lookup`,
щоб отримати один вузол схеми для певного шляху разом із короткими
відомостями про безпосередні дочірні елементи.
</Tab>
<Tab title="Пряме редагування">
Редагуйте `~/.openclaw/openclaw.json` напряму. Gateway відстежує файл і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
Відредагуйте `~/.openclaw/openclaw.json` напряму. Gateway відстежує файл і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
</Tab>
</Tabs>
## Сувора валідація
<Warning>
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, неправильні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на кореневому рівні — `$schema` (рядок), щоб редактори могли додавати метадані JSON Schema.
OpenClaw приймає лише конфігурації, що повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на кореневому рівні — `$schema` (рядок), щоб редактори могли підключати метадані JSON Schema.
</Warning>
Нотатки щодо інструментів схеми:
- `openclaw config schema` виводить ту саму сім’ю JSON Schema, яку використовують Control UI
і валідація конфігурації.
- Вважайте цей вивід схеми канонічним машинозчитуваним контрактом для
`openclaw.json`; цей огляд і довідник конфігурації його підсумовують.
- Значення полів `title` і `description` переносяться у вивід схеми для
редакторів та інструментів форм.
- Вкладені об’єкти, записи з шаблоном (`*`) і елементи масивів (`[]`) успадковують ті самі
метадані документації там, де існує відповідна документація поля.
- Гілки композиції `anyOf` / `oneOf` / `allOf` також успадковують ті самі метадані
документації, тому варіанти union/intersection зберігають ту саму довідку полів.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з неглибоким
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, типові межі
та подібні поля валідації), відповідними метаданими підказок UI та короткими описами безпосередніх дочірніх елементів
для інструментів деталізованого перегляду.
- Схеми runtime plugin/каналів об’єднуються, коли gateway може завантажити
поточний реєстр маніфестів.
- `pnpm config:docs:check` виявляє розбіжності між артефактами базового рівня конфігурації для документації
та поточною поверхнею схеми.
`openclaw config schema` виводить канонічну JSON Schema, яку використовують Control UI
та валідація. `config.schema.lookup` отримує один вузол для певного шляху разом
із короткими відомостями про дочірні елементи для інструментів деталізації.
Метадані документації полів `title`/`description` поширюються на вкладені об’єкти,
підстановочні символи (`*`), елементи масиву (`[]`) та гілки `anyOf`/
`oneOf`/`allOf`. Схеми runtime plugin і каналів додаються під час завантаження
реєстру маніфестів.
Коли валідація не проходить:
@ -108,29 +96,21 @@ OpenClaw приймає лише конфігурації, які повніст
- Запустіть `openclaw doctor`, щоб побачити точні проблеми
- Запустіть `openclaw doctor --fix` (або `--yes`), щоб застосувати виправлення
Gateway також зберігає довірену останню відому справну копію після успішного запуску. Якщо
`openclaw.json` пізніше змінено поза OpenClaw і він більше не проходить валідацію, запуск
і гаряче перезавантаження збережуть зіпсований файл як часовий знімок `.clobbered.*`,
відновлять останню відому справну копію та запишуть помітне попередження з причиною відновлення.
Відновлення під час читання на запуску також розглядає різке зменшення розміру, відсутність метаданих конфігурації та
відсутній `gateway.mode` як критичні ознаки пошкодження, якщо остання відома справна
копія мала ці поля.
Якщо перед інакше дійсною конфігурацією JSON випадково додано рядок статусу/журналу,
запуск gateway і `openclaw doctor --fix` можуть прибрати цей префікс,
зберегти забруднений файл як `.clobbered.*` і продовжити роботу з відновленим
JSON.
Наступний хід основного агента також отримує попередження про системну подію, яке повідомляє, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Підвищення статусу останньої відомої справної копії
оновлюється після перевіреного запуску та після прийнятих гарячих перезавантажень, зокрема
записів конфігурації, якими керує OpenClaw, якщо хеш збереженого файлу все ще збігається з прийнятим
записом. Підвищення пропускається, коли кандидат містить замасковані
заповнювачі секретів, такі як `***` або скорочені значення токенів.
Після кожного успішного запуску Gateway зберігає довірену останню коректну копію.
Якщо пізніше `openclaw.json` не проходить валідацію (або втрачає `gateway.mode`,
різко зменшується, або на початку з’являється сторонній рядок журналу),
OpenClaw зберігає пошкоджений файл як `.clobbered.*`, відновлює останню коректну
копію та записує причину відновлення в журнал. Під час наступного ходу агента
також надходить попередження про системну подію, щоб основний агент не
перезаписав відновлену конфігурацію без перевірки. Підвищення до статусу
останньої коректної копії пропускається, якщо кандидат містить замасковані
заповнювачі секретів, такі як `***`.
## Поширені завдання
<AccordionGroup>
<Accordion title="Налаштувати канал (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Дивіться окрему сторінку каналу для кроків налаштування:
<Accordion title="Налаштування каналу (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Кроки налаштування дивіться на окремій сторінці каналу:
- [WhatsApp](/uk/channels/whatsapp) — `channels.whatsapp`
- [Telegram](/uk/channels/telegram) — `channels.telegram`
@ -143,7 +123,7 @@ JSON.
- [iMessage](/uk/channels/imessage) — `channels.imessage`
- [Mattermost](/uk/channels/mattermost) — `channels.mattermost`
Усі канали використовують однаковий шаблон політики особистих повідомлень:
Усі канали використовують однаковий шаблон політики DM:
```json5
{
@ -160,8 +140,8 @@ JSON.
</Accordion>
<Accordion title="Вибрати й налаштувати моделі">
Налаштуйте основну модель і необов’язкові резервні варіанти:
<Accordion title="Вибір і налаштування моделей">
Задайте основну модель і необов’язкові резервні варіанти:
```json5
{
@ -180,31 +160,31 @@ JSON.
}
```
- `agents.defaults.models` визначає каталог моделей і слугує списком дозволених значень для `/model`.
- Використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додавати записи до списку дозволених без видалення наявних моделей. Звичайні заміни, які видалили б записи, відхиляються, якщо не передати `--replace`.
- `agents.defaults.models` визначає каталог моделей і виконує роль списку дозволених значень для `/model`.
- Використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додати записи до списку дозволених без видалення наявних моделей. Звичайні заміни, які видалили б записи, відхиляються, якщо ви не передасте `--replace`.
- Посилання на моделі використовують формат `provider/model` (наприклад, `anthropic/claude-opus-4-6`).
- `agents.defaults.imageMaxDimensionPx` керує зменшенням масштабу зображень у транскрипті/інструментах (типове значення `1200`); менші значення зазвичай зменшують використання vision-токенів у сеансах із великою кількістю скриншотів.
- Дивіться [Models CLI](/uk/concepts/models) для перемикання моделей у чаті та [Model Failover](/uk/concepts/model-failover) для ротації автентифікації та поведінки резервних варіантів.
- Для користувацьких/self-hosted providers дивіться [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) щодо ротації авторизації та поведінки резервних моделей.
- Для користувацьких/самостійно розміщених провайдерів див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
</Accordion>
<Accordion title="Керувати тим, хто може надсилати повідомлення боту">
Доступ до особистих повідомлень керується для кожного каналу через `dmPolicy`:
<Accordion title="Керування тим, хто може надсилати повідомлення боту">
Доступ до DM керується окремо для кожного каналу через `dmPolicy`:
- `"pairing"` (типово): невідомі відправники отримують одноразовий код сполучення для підтвердження
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища дозволених сполучених відправників)
- `"open"`: дозволити всі вхідні особисті повідомлення (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі особисті повідомлення
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища парного списку дозволених)
- `"open"`: дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі DM
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або списки дозволених, специфічні для каналу.
Дивіться [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для деталей по кожному каналу.
Див. [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для подробиць щодо кожного каналу.
</Accordion>
<Accordion title="Налаштувати керування згадками в груповому чаті">
Для групових повідомлень типовим значенням є **обов’язкова згадка**. Налаштуйте шаблони для кожного агента:
<Accordion title="Налаштування фільтрації згадок у групових чатах">
За замовчуванням для групових повідомлень **потрібна згадка**. Налаштуйте шаблони для кожного агента:
```json5
{
@ -226,14 +206,14 @@ JSON.
}
```
- **Metadata mentions**: нативні @-згадки (WhatsApp tap-to-mention, Telegram @bot тощо)
- **Text patterns**: безпечні шаблони regex у `mentionPatterns`
- Дивіться [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень по каналах і режиму чату з самим собою.
- **Згадки в метаданих**: нативні @-згадки (WhatsApp tap-to-mention, Telegram @bot тощо)
- **Текстові шаблони**: безпечні шаблони regex у `mentionPatterns`
- Див. [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень на рівні каналів і режиму self-chat.
</Accordion>
<Accordion title="Обмежити Skills для кожного агента">
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте конкретних
<Accordion title="Обмеження Skills для агента">
Використовуйте `agents.defaults.skills` для спільної базової конфігурації, а потім перевизначайте конкретних
агентів через `agents.list[].skills`:
```json5
@ -251,16 +231,16 @@ JSON.
}
```
- Не вказуйте `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 config](/uk/tools/skills-config) і
[Configuration Reference](/uk/gateway/configuration-reference#agents-defaults-skills).
</Accordion>
<Accordion title="Налаштувати моніторинг стану каналів gateway">
Керуйте тим, наскільки агресивно gateway перезапускає канали, які виглядають застарілими:
<Accordion title="Налаштування моніторингу стану каналів gateway">
Керуйте тим, наскільки агресивно gateway перезапускає канали, що виглядають застарілими:
```json5
{
@ -282,15 +262,15 @@ JSON.
}
```
- Встановіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски моніторингу стану.
- Установіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски через моніторинг стану.
- `channelStaleEventThresholdMinutes` має бути більшим або дорівнювати інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоматичні перезапуски для одного каналу чи облікового запису без вимкнення глобального монітора.
- Дивіться [Health Checks](/uk/gateway/health) для операційного налагодження та [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
- Використовуйте `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
{
@ -312,13 +292,13 @@ 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) для всіх полів.
- Див. [Session Management](/uk/concepts/session) щодо області видимості, зв’язків ідентичностей і політики надсилання.
- Див. [повний довідник](/uk/gateway/configuration-reference#session) для всіх полів.
</Accordion>
<Accordion title="Увімкнути ізоляцію">
Запускайте сесії агентів в ізольованих середовищах ізоляції:
<Accordion title="Увімкнення ізоляції">
Запускайте сесії агентів в ізольованих sandbox runtime:
```json5
{
@ -335,14 +315,14 @@ JSON.
Спочатку зберіть образ: `scripts/sandbox-setup.sh`
Дивіться [Ізоляція](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
Див. [Sandboxing](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
</Accordion>
<Accordion title="Увімкнути relay-backed push для офіційних збірок iOS">
<Accordion title="Увімкнення relay-backed push для офіційних збірок iOS">
Relay-backed push налаштовується в `openclaw.json`.
Встановіть це в конфігурації gateway:
Додайте це в конфігурацію gateway:
```json5
{
@ -351,7 +331,7 @@ JSON.
apns: {
relay: {
baseUrl: "https://relay.example.com",
// Необов’язково. Типове значення: 10000
// Optional. Default: 10000
timeoutMs: 10000,
},
},
@ -360,7 +340,7 @@ JSON.
}
```
Еквівалент CLI:
Еквівалент у CLI:
```bash
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
@ -368,35 +348,35 @@ JSON.
Що це робить:
- Дозволяє gateway надсилати `push.test`, сигнали пробудження та сигнали повторного підключення через зовнішній relay.
- Використовує право надсилання з областю реєстрації, яке пересилає спарений застосунок 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.
Наскрізний процес:
1. Встановіть офіційну/TestFlight збірку iOS, скомпільовану з тим самим базовим URL relay.
2. Налаштуйте `gateway.push.apns.relay.baseUrl` на gateway.
3. Спаріть застосунок iOS із gateway і дозвольте підключитися сесіям node та оператора.
4. Застосунок iOS отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції застосунку, а потім публікує relay-backed payload `push.apns.register` до спареного gateway.
5. Gateway зберігає relay handle і право надсилання, а потім використовує їх для `push.test`, сигналів пробудження та сигналів повторного підключення.
1. Установіть офіційну/TestFlight збірку iOS, скомпільовану з тим самим базовим URL relay.
2. Налаштуйте `gateway.push.apns.relay.baseUrl` у gateway.
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 на інший gateway, перепідключіть застосунок, щоб він міг опублікувати нову relay-реєстрацію, прив’язану до цього gateway.
- Якщо ви випускаєте нову збірку iOS, яка вказує на інше розгортання relay, застосунок оновлює кешовану relay-реєстрацію замість повторного використання старого джерела relay.
Примітка щодо сумісності:
- `OPENCLAW_APNS_RELAY_BASE_URL` і `OPENCLAW_APNS_RELAY_TIMEOUT_MS` усе ще працюють як тимчасові перевизначення env.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` залишається запасним варіантом для розробки лише для loopback; не зберігайте HTTP URL relay у конфігурації.
- `OPENCLAW_APNS_RELAY_BASE_URL` і `OPENCLAW_APNS_RELAY_TIMEOUT_MS` усе ще працюють як тимчасові перевизначення через env.
- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` залишається аварійним варіантом для розробки лише в loopback; не зберігайте HTTP URL relay у конфігурації.
Дивіться [iOS App](/uk/platforms/ios#relay-backed-push-for-official-builds) для наскрізного процесу та [Authentication and trust flow](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
Див. [iOS App](/uk/platforms/ios#relay-backed-push-for-official-builds) для повного наскрізного процесу та [Authentication and trust flow](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
</Accordion>
<Accordion title="Налаштувати Heartbeat (періодичні перевірки)">
<Accordion title="Налаштування Heartbeat (періодичні перевірки)">
```json5
{
agents: {
@ -410,14 +390,14 @@ JSON.
}
```
- `every`: рядок тривалості (`30m`, `2h`). Встановіть `0m`, щоб вимкнути.
- `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">
<Accordion title="Налаштування завдань Cron">
```json5
{
cron: {
@ -432,14 +412,14 @@ JSON.
}
```
- `sessionRetention`: очищати завершені ізольовані сесії запуску з `sessions.json` (типово `24h`; встановіть `false`, щоб вимкнути).
- `sessionRetention`: видаляти завершені ізольовані сесії запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищати `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Дивіться [завдання Cron](/uk/automation/cron-jobs) для огляду функціональності та прикладів CLI.
- Див. [Cron jobs](/uk/automation/cron-jobs) для огляду можливостей і прикладів CLI.
</Accordion>
<Accordion title="Налаштувати Webhook (hooks)">
Увімкніть HTTP-ендпойнти Webhook на Gateway:
<Accordion title="Налаштування Webhook (хуків)">
Увімкніть HTTP-ендпоїнти Webhook у Gateway:
```json5
{
@ -463,20 +443,20 @@ JSON.
```
Примітка щодо безпеки:
- Розглядайте весь вміст payload 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, віддавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише надсилання повідомлень плюс ізоляція, де це можливо).
- `hooks.path` не може бути `/`; використовуйте для вхідних Webhook окремий підшлях, наприклад `/hooks`.
- Залишайте прапорці обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте чітко обмежене налагодження.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також установіть `hooks.allowedSessionKeyPrefixes`, щоб обмежити ключі сесій, які може вибирати викликач.
- Для агентів, керованих через hook, віддавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс sandboxing, де це можливо).
Дивіться [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів зіставлення та інтеграції Gmail.
Див. [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів mapping і інтеграції Gmail.
</Accordion>
<Accordion title="Налаштувати маршрутизацію з кількома агентами">
Запускайте кількох ізольованих агентів з окремими робочими просторами та сесіями:
<Accordion title="Налаштування маршрутизації з кількома агентами">
Запускайте кілька ізольованих агентів з окремими робочими просторами та сесіями:
```json5
{
@ -493,11 +473,11 @@ 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) щодо правил прив’язки та профілів доступу для кожного агента.
</Accordion>
<Accordion title="Розділити конфігурацію на кілька файлів ($include)">
<Accordion title="Розділення конфігурації на кілька файлів ($include)">
Використовуйте `$include`, щоб упорядкувати великі конфігурації:
```json5
@ -511,47 +491,47 @@ JSON.
}
```
- **Один файл**: замінює об’єкт-контейнер
- **Один файл**: замінює об’єкт, у якому міститься
- **Масив файлів**: глибоко об’єднується за порядком (пізніші мають пріоритет)
- **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- **Сусідні ключі**: об’єднуються після include (перевизначають включені значення)
- **Вкладені include**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файлу, який включає
- **Записи, якими керує OpenClaw**: коли запис змінює лише один розділ верхнього рівня,
підкріплений include одного файлу, наприклад `plugins: { $include: "./plugins.json5" }`,
OpenClaw оновлює цей включений файл і залишає `openclaw.json` недоторканим
- **Непідтримуваний запис наскрізь**: кореневі includes, масиви include і includes
із сусідніми перевизначеннями аварійно завершуються для записів, якими керує OpenClaw, замість
що підкріплений include одного файлу, наприклад `plugins: { $include: "./plugins.json5" }`,
OpenClaw оновлює цей включений файл і залишає `openclaw.json` без змін
- **Непідтримуваний наскрізний запис**: кореневі include, масиви include та include
із сусідніми перевизначеннями завершуються без змін для записів, якими керує OpenClaw, замість
сплощення конфігурації
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок розбору та циклічних includes
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок розбору та циклічних include
</Accordion>
</AccordionGroup>
## Гаряче перезавантаження конфігурації
Gateway відстежує `~/.openclaw/openclaw.json` і автоматично застосовує зміни — для більшості параметрів ручний перезапуск не потрібен.
Gateway відстежує `~/.openclaw/openclaw.json` і застосовує зміни автоматично — для більшості параметрів ручний перезапуск не потрібен.
Прямі редагування файлу вважаються ненадійними, доки не пройдуть валідацію. Спостерігач
чекає, доки вщухне тимчасовий запис/перейменування редактора, зчитує
остаточний файл і відхиляє недійсні зовнішні зміни, відновлюючи останню відому справну конфігурацію. Записи конфігурації,
якими керує OpenClaw, використовують той самий бар’єр схеми перед записом; руйнівні пошкодження
на кшталт видалення `gateway.mode` або зменшення файлу більш ніж наполовину відхиляються
і зберігаються як `.rejected.*` для перевірки.
Прямі редагування файлу вважаються недовіреними, доки не пройдуть валідацію. Спостерігач
чекає, поки вщухнуть тимчасові записи/перейменування редактора, читає фінальний файл
і відхиляє некоректні зовнішні зміни, відновлюючи останню коректну конфігурацію. Записи конфігурації,
якими керує 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)
файл `.clobbered.*` поруч із `openclaw.json`, виправте відхилений payload, а потім запустіть
`openclaw config validate`. Див. [Gateway troubleshooting](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
для контрольного списку відновлення.
### Режими перезавантаження
| Режим | Поведінка |
| ---------------------- | -------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Миттєво гаряче застосовує безпечні зміни. Автоматично перезапускає для критичних. |
| **`hot`** | Гаряче застосовує лише безпечні зміни. Пише попередження, коли потрібен перезапуск — ви обробляєте це самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файлів. Зміни набувають чинності під час наступного ручного перезапуску. |
| Режим | Поведінка |
| ---------------------- | ---------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Безпечно застосовує зміни одразу. Для критичних змін автоматично виконує перезапуск. |
| **`hot`** | Застосовує лише безпечні зміни без перезапуску. Записує попередження, коли потрібен перезапуск — ви виконуєте його самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набудуть чинності під час наступного ручного перезапуску. |
```json5
{
@ -561,114 +541,74 @@ Gateway відстежує `~/.openclaw/openclaw.json` і автоматично
}
```
### Що гаряче застосовується, а що потребує перезапуску
### Що застосовується без перезапуску, а що потребує перезапуску
Більшість полів гаряче застосовуються без простою. У режимі `hybrid` зміни, що потребують перезапуску, обробляються автоматично.
Більшість полів застосовуються без перезапуску та без простою. У режимі `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>
### Планування перезавантаження
Коли ви редагуєте вихідний файл, на який є посилання через `$include`, OpenClaw планує
перезавантаження на основі макета, заданого у вихідних файлах, а не сплощеного подання в пам’яті.
Це робить рішення гарячого перезавантаження (гаряче застосування чи перезапуск) передбачуваними, навіть коли
один розділ верхнього рівня живе у власному включеному файлі, наприклад
`plugins: { $include: "./plugins.json5" }`. Планування перезавантаження аварійно завершується, якщо
вихідний макет неоднозначний.
перезавантаження на основі структури, визначеної у вихідних файлах, а не сплощеного представлення в пам’яті.
Це робить рішення для гарячого перезавантаження (застосувати без перезапуску чи перезапустити) передбачуваними навіть тоді, коли
один розділ верхнього рівня розміщено у власному включеному файлі, наприклад
`plugins: { $include: "./plugins.json5" }`. Планування перезавантаження завершується без змін, якщо
структура джерела неоднозначна.
## RPC конфігурації (програмні оновлення)
Для інструментів, які записують конфігурацію через API gateway, віддавайте перевагу такому процесу:
- `config.schema.lookup`, щоб перевірити одне піддерево (поверхневий вузол схеми + короткі
відомості про дочірні елементи)
- `config.get`, щоб отримати поточний знімок разом із `hash`
- `config.patch` для часткових оновлень (JSON merge patch: об’єкти об’єднуються, `null`
видаляє, масиви замінюються)
- `config.apply` лише тоді, коли ви справді хочете замінити всю конфігурацію
- `update.run` для явного самостійного оновлення з подальшим перезапуском
<Note>
RPC запису control-plane (`config.apply`, `config.patch`, `update.run`) мають обмеження частоти: **3 запити на 60 секунд** для кожного `deviceId+clientIp`. У разі спрацювання обмеження RPC повертає `UNAVAILABLE` з `retryAfterMs`.
Записи контрольної площини (`config.apply`, `config.patch`, `update.run`) обмежуються
до 3 запитів на 60 секунд для кожної пари `deviceId+clientIp`. Запити на перезапуск
об’єднуються, а потім між циклами перезапуску застосовується затримка 30 секунд.
</Note>
Безпечний/типовий процес:
Приклад часткового patch:
- `config.schema.lookup`: переглянути одне піддерево конфігурації з прив’язкою до шляху з неглибоким
вузлом схеми, відповідними метаданими підказок і короткими описами безпосередніх дочірніх елементів
- `config.get`: отримати поточний знімок + хеш
- `config.patch`: бажаний шлях часткового оновлення
- `config.apply`: лише повна заміна конфігурації
- `update.run`: явне самооновлення + перезапуск
```bash
openclaw gateway call config.get --params '{}' # capture payload.hash
openclaw gateway call config.patch --params '{
"raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }",
"baseHash": "<hash>"
}'
```
Коли ви не замінюєте всю конфігурацію, віддавайте перевагу `config.schema.lookup`,
а потім `config.patch`.
<AccordionGroup>
<Accordion title="config.apply (повна заміна)">
Перевіряє + записує повну конфігурацію і перезапускає Gateway за один крок.
<Warning>
`config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
</Warning>
Параметри:
- `raw` (string) — payload JSON5 для всієї конфігурації
- `baseHash` (optional) — хеш конфігурації з `config.get` (обов’язковий, коли конфігурація існує)
- `sessionKey` (optional) — ключ сесії для ping пробудження після перезапуску
- `note` (optional) — примітка для sentinel перезапуску
- `restartDelayMs` (optional) — затримка перед перезапуском (типово 2000)
Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє 30-секундний період охолодження.
```bash
openclaw gateway call config.get --params '{}' # capture payload.hash
openclaw gateway call config.apply --params '{
"raw": "{ agents: { defaults: { workspace: \"~/.openclaw/workspace\" } } }",
"baseHash": "<hash>",
"sessionKey": "agent:main:whatsapp:direct:+15555550123"
}'
```
</Accordion>
<Accordion title="config.patch (часткове оновлення)">
Об’єднує часткове оновлення з наявною конфігурацією (семантика JSON merge patch):
- Об’єкти об’єднуються рекурсивно
- `null` видаляє ключ
- Масиви замінюються
Параметри:
- `raw` (string) — JSON5 лише з тими ключами, які потрібно змінити
- `baseHash` (required) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — ті самі, що й у `config.apply`
Поведінка перезапуску збігається з `config.apply`: об’єднання відкладених перезапусків плюс 30-секундний період охолодження між циклами перезапуску.
```bash
openclaw gateway call config.patch --params '{
"raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }",
"baseHash": "<hash>"
}'
```
</Accordion>
</AccordionGroup>
І `config.apply`, і `config.patch` приймають `raw`, `baseHash`, `sessionKey`,
`note` і `restartDelayMs`. `baseHash` є обов’язковим для `config.patch` і
рекомендованим для `config.apply`, коли конфігурація вже існує.
## Змінні середовища
OpenClaw читає змінні середовища з батьківського процесу, а також із:
OpenClaw читає змінні середовища з батьківського процесу, а також з:
- `.env` у поточному робочому каталозі (якщо є)
- `~/.openclaw/.env` (глобальний резервний варіант)
- `~/.openclaw/.env` (глобальний запасний варіант)
Жоден із цих файлів не перевизначає наявні змінні середовища. Ви також можете задавати вбудовані змінні середовища в конфігурації:
Жоден із цих файлів не перевизначає вже наявні змінні середовища. Ви також можете задавати вбудовані змінні середовища в конфігурації:
```json5
{
@ -679,8 +619,8 @@ OpenClaw читає змінні середовища з батьківсько
}
```
<Accordion title="Імпорт shell env (необов’язково)">
Якщо цю функцію ввімкнено, а очікувані ключі не задано, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
<Accordion title="Імпорт змінних середовища оболонки (необов’язково)">
Якщо ввімкнено і очікувані ключі не задано, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@ -690,7 +630,7 @@ OpenClaw читає змінні середовища з батьківсько
}
```
Еквівалент змінної середовища: `OPENCLAW_LOAD_SHELL_ENV=1`
Еквівалентна змінна середовища: `OPENCLAW_LOAD_SHELL_ENV=1`
</Accordion>
<Accordion title="Підстановка змінних середовища у значеннях конфігурації">
@ -705,9 +645,9 @@ OpenClaw читає змінні середовища з батьківсько
Правила:
- Зіставляються лише назви у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Зіставляються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні змінні спричиняють помилку під час завантаження
- Екранування через `$${VAR}` для буквального виводу
- Використовуйте `$${VAR}` для буквального виводу
- Працює всередині файлів `$include`
- Вбудована підстановка: `"${BASE}/v1"``"https://api.example.com/v1"`
@ -746,16 +686,16 @@ OpenClaw читає змінні середовища з батьківсько
}
```
Подробиці про SecretRef (зокрема `secrets.providers` для `env`/`file`/`exec`) наведено в [Керування секретами](/uk/gateway/secrets).
Підтримувані шляхи облікових даних перелічено в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
Подробиці про SecretRef (зокрема `secrets.providers` для `env`/`file`/`exec`) наведено в [Secrets Management](/uk/gateway/secrets).
Підтримувані шляхи облікових даних перелічено в [SecretRef Credential Surface](/uk/reference/secretref-credential-surface).
</Accordion>
Дивіться [Середовище](/uk/help/environment) для повного порядку пріоритету та джерел.
Див. [Environment](/uk/help/environment) для повного опису пріоритетів і джерел.
## Повний довідник
Повний довідник по полях дивіться в **[Довіднику конфігурації](/uk/gateway/configuration-reference)**.
Повний довідник по полях див. в **[Configuration Reference](/uk/gateway/configuration-reference)**.
---
овязане: [Приклади конфігурації](/uk/gateway/configuration-examples) · [Довідник конфігурації](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_
овязане: [Configuration Examples](/uk/gateway/configuration-examples) · [Configuration Reference](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_

File diff suppressed because it is too large Load Diff