chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-22 21:32:21 +00:00
parent 2f98ded452
commit ab63bc7769

View File

@ -2,32 +2,32 @@
read_when:
- Перше налаштування OpenClaw
- Пошук поширених шаблонів конфігурації
- Перехід до конкретних розділів конфігурації
- Перехід до певних розділів конфігурації
summary: 'Огляд конфігурації: поширені завдання, швидке налаштування та посилання на повний довідник'
title: Конфігурація
x-i18n:
generated_at: "2026-04-21T21:40:53Z"
generated_at: "2026-04-22T21:30:54Z"
model: gpt-5.4
provider: openai
source_hash: c627ccf9f17087e0b71663fe3086d637aeaa8cd1d6d34d816bfcbc0f0cc6f07c
source_hash: 36162008b66dcaaac6d51882f20d74aebd9b637bfddde00395cdfbd5721e3d20
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)
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (Cron, хуки)
- Налаштувати сесії, медіа, мережу або UI
Перегляньте [повний довідник](/uk/gateway/configuration-reference) для всіх доступних полів.
Перегляньте [повний довідник](/uk/gateway/configuration-reference), щоб побачити всі доступні поля.
<Tip>
**Вперше працюєте з конфігурацією?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) із готовими конфігураціями для копіювання.
**Вперше працюєте з конфігурацією?** Почніть із `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) з готовими конфігураціями для копіювання.
</Tip>
## Мінімальна конфігурація
@ -45,8 +45,8 @@ OpenClaw читає необов’язкову конфігурацію <Toolti
<Tabs>
<Tab title="Інтерактивний майстер">
```bash
openclaw onboard # full onboarding flow
openclaw configure # config wizard
openclaw onboard # повний процес початкового налаштування
openclaw configure # майстер конфігурації
```
</Tab>
<Tab title="CLI (однорядкові команди)">
@ -57,12 +57,12 @@ 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** як запасним варіантом. Для деталізованих
UI та інших інструментів gateway також надає `config.schema.lookup`, щоб
отримати один вузол схеми для заданого шляху разом із підсумками безпосередніх дочірніх елементів.
</Tab>
<Tab title="Пряме редагування">
Відредагуйте `~/.openclaw/openclaw.json` безпосередньо. Gateway відстежує файл і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
@ -72,29 +72,29 @@ OpenClaw читає необов’язкову конфігурацію <Toolti
## Сувора валідація
<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 зберігають однакові підказки для полів.
- Значення полів `title` і `description` переносяться у вивід схеми для
редакторів та інструментів форм.
- Вкладені об’єкти, шаблони з wildcard (`*`) і елементи масиву (`[]`) успадковують ті самі
метадані документації, якщо для відповідного поля є документація.
- Гілки композиції `anyOf` / `oneOf` / `allOf` також успадковують ті самі
метадані документації, тож варіанти union/intersection зберігають ті самі підказки для полів.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з неглибоким
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені обмеження
та подібні поля валідації), відповідними метаданими UI-підказок і короткими зведеннями
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені межі
та подібні поля валідації), відповідними метаданими підказок UI і стислими описами
безпосередніх дочірніх елементів для інструментів деталізації.
- Схеми Plugin/каналів під час виконання об’єднуються, коли gateway може завантажити
поточний реєстр маніфестів.
- `pnpm config:docs:check` виявляє розбіжності між артефактами базової конфігурації,
видимими в документації, і поточною поверхнею схеми.
- `pnpm config:docs:check` виявляє розбіжності між артефактами базової конфігурації для документації
і поточною поверхнею схеми.
Коли валідація не проходить:
@ -103,21 +103,25 @@ OpenClaw приймає лише конфігурації, які повніст
- Запустіть `openclaw doctor`, щоб побачити точні проблеми
- Запустіть `openclaw doctor --fix` (або `--yes`), щоб застосувати виправлення
Gateway також зберігає довірену останню відому коректну копію після успішного запуску. Якщо
`openclaw.json` згодом буде змінено поза OpenClaw і він більше не проходитиме валідацію, під час запуску
та гарячого перезавантаження пошкоджений файл буде збережено як `.clobbered.*` зі штампом часу,
відновлено останню відому коректну копію та записано помітне попередження з причиною відновлення.
Під час наступного ходу головного агента він також отримає попередження про системну подію з повідомленням, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Оновлення останньої відомої коректної
копії відбувається після запуску з успішною валідацією і після прийнятих гарячих перезавантажень, включно з
записами конфігурації, виконаними OpenClaw, якщо хеш збереженого файлу все ще відповідає прийнятому
запису. Оновлення пропускається, якщо кандидат містить замасковані заповнювачі секретів
Gateway також зберігає довірену останню відому справну копію після успішного запуску. Якщо
`openclaw.json` пізніше буде змінено поза OpenClaw і він більше не проходитиме валідацію, під час запуску
та гарячого перезавантаження зіпсований файл буде збережено як позначений часовою міткою знімок `.clobbered.*`,
відновлено останню відому справну копію та записано помітне попередження з причиною відновлення.
Якщо перед інакше коректною JSON-конфігурацією випадково додано рядок статусу/журналу,
під час запуску gateway і виконання `openclaw doctor --fix` цей префікс можна видалити,
зберегти забруднений файл як `.clobbered.*` і продовжити роботу з відновленим
JSON.
Наступний хід основного агента також отримує попередження системної події про те, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Оновлення останньої відомої справної копії
відбувається після валідованого запуску та після прийнятих гарячих перезавантажень, включно з
записами конфігурації, виконаними самим OpenClaw, якщо хеш збереженого файлу все ще збігається з прийнятим
записом. Оновлення пропускається, якщо кандидат містить замасковані заповнювачі секретів
на кшталт `***` або скорочені значення токенів.
## Поширені завдання
<AccordionGroup>
<Accordion title="Налаштування каналу (WhatsApp, Telegram, Discord тощо)">
<Accordion title="Налаштувати канал (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Перегляньте окрему сторінку каналу для кроків налаштування:
- [WhatsApp](/uk/channels/whatsapp) — `channels.whatsapp`
@ -131,7 +135,7 @@ Gateway також зберігає довірену останню відому
- [iMessage](/uk/channels/imessage) — `channels.imessage`
- [Mattermost](/uk/channels/mattermost) — `channels.mattermost`
Усі канали мають спільний шаблон політики приватних повідомлень:
Усі канали використовують однаковий шаблон політики DM:
```json5
{
@ -148,8 +152,8 @@ Gateway також зберігає довірену останню відому
</Accordion>
<Accordion title="Вибір і налаштування моделей">
Укажіть основну модель і необов’язкові резервні варіанти:
<Accordion title="Вибрати та налаштувати моделі">
Задайте основну модель і необов’язкові резервні варіанти:
```json5
{
@ -168,30 +172,30 @@ Gateway також зберігає довірену останню відому
}
```
- `agents.defaults.models` визначає каталог моделей і слугує allowlist для `/model`.
- `agents.defaults.models` визначає каталог моделей і виконує роль allowlist для `/model`.
- Посилання на моделі використовують формат `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 провайдерів див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
- `agents.defaults.imageMaxDimensionPx` керує зменшенням масштабу зображень у транскриптах/інструментах (типове значення `1200`); менші значення зазвичай зменшують використання vision-токенів у сценаріях із великою кількістю скриншотів.
- Див. [Models CLI](/uk/concepts/models) для перемикання моделей у чаті та [Model Failover](/uk/concepts/model-failover) для ротації автентифікації й поведінки резервного перемикання.
- Для користувацьких/self-hosted provider див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
</Accordion>
<Accordion title="Керування тим, хто може надсилати повідомлення боту">
Доступ до приватних повідомлень керується окремо для кожного каналу через `dmPolicy`:
<Accordion title="Керувати тим, хто може надсилати повідомлення боту">
Доступ до DM контролюється окремо для кожного каналу через `dmPolicy`:
- `"pairing"` (типово): невідомі відправники отримують одноразовий код сполучення для підтвердження
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища paired allow)
- `"open"`: дозволити всі вхідні приватні повідомлення (потребує `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі приватні повідомлення
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища дозволів після сполучення)
- `"open"`: дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі DM
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або allowlist, специфічні для каналу.
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або специфічні для каналу allowlist.
Див. [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для деталей по кожному каналу.
</Accordion>
<Accordion title="Налаштування фільтрації згадок у групових чатах">
Для повідомлень у групах типово **потрібна згадка**. Налаштуйте шаблони для кожного агента:
<Accordion title="Налаштувати обмеження згадками в групових чатах">
Повідомлення в групах типово **вимагають згадки**. Налаштуйте шаблони для кожного агента:
```json5
{
@ -213,15 +217,15 @@ Gateway також зберігає довірену останню відому
}
```
- **Згадки в метаданих**: нативні @-згадки (WhatsApp tap-to-mention, Telegram @bot тощо)
- **Текстові шаблони**: безпечні regex-шаблони в `mentionPatterns`
- **Metadata mentions**: нативні @-згадки (tap-to-mention у WhatsApp, @bot у Telegram тощо)
- **Text patterns**: безпечні regex-шаблони в `mentionPatterns`
- Див. [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень по каналах і режиму self-chat.
</Accordion>
<Accordion title="Обмеження Skills для кожного агента">
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте конкретних
агентів через `agents.list[].skills`:
<Accordion title="Обмежити Skills для агента">
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте
конкретних агентів через `agents.list[].skills`:
```json5
{
@ -238,16 +242,16 @@ Gateway також зберігає довірену останню відому
}
```
- Не вказуйте `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">
Керуйте тим, наскільки активно gateway перезапускає канали, які виглядають застарілими:
<Accordion title="Налаштувати моніторинг стану каналів gateway">
Керуйте тим, наскільки агресивно gateway перезапускає канали, які виглядають неактивними:
```json5
{
@ -269,14 +273,14 @@ Gateway також зберігає довірену останню відому
}
```
- Установіть `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
@ -297,15 +301,15 @@ Gateway також зберігає довірену останню відому
}
```
- `dmScope`: `main` (спільна) | `per-peer` | `per-channel-peer` | `per-account-channel-peer`
- `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/concepts/session) щодо області дії, зв’язків ідентичностей і політики надсилання.
- Див. [повний довідник](/uk/gateway/configuration-reference#session) для всіх полів.
</Accordion>
<Accordion title="Увімкнення ізоляції">
Запускайте сесії агента в ізольованих sandbox-середовищах виконання:
<Accordion title="Увімкнути ізоляцію">
Запускайте сесії агентів в ізольованих середовищах sandbox:
```json5
{
@ -322,14 +326,14 @@ Gateway також зберігає довірену останню відому
Спочатку зберіть образ: `scripts/sandbox-setup.sh`
Див. [Sandboxing](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
Див. [Ізоляція](/uk/gateway/sandboxing) для повного посібника і [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
</Accordion>
<Accordion title="Увімкнення relay-backed push для офіційних збірок iOS">
Relay-backed push налаштовується в `openclaw.json`.
<Accordion title="Увімкнути push через relay для офіційних збірок iOS">
Push через relay налаштовується в `openclaw.json`.
Установіть це в конфігурації gateway:
Вкажіть це в конфігурації gateway:
```json5
{
@ -347,7 +351,7 @@ Gateway також зберігає довірену останню відому
}
```
Еквівалент для CLI:
Еквівалент у CLI:
```bash
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
@ -355,35 +359,35 @@ Gateway також зберігає довірену останню відому
Що це робить:
- Дозволяє 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`, імпульсів пробудження та пробуджень для повторного підключення.
3. Спарте застосунок iOS з gateway і дочекайтеся підключення обох сесій: Node та операторської.
4. Застосунок iOS отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції застосунку, а потім публікує payload `push.apns.register` через relay на спарений gateway.
5. Gateway зберігає дескриптор relay і дозвіл на надсилання, а потім використовує їх для `push.test`, сигналів пробудження та пробуджень для повторного підключення.
Операційні примітки:
- Якщо ви перемикаєте застосунок iOS на інший gateway, перепідключіть застосунок, щоб він міг опублікувати нову relay-реєстрацію, прив’язану до цього gateway.
- Якщо ви випускаєте нову збірку iOS, що вказує на інше розгортання relay, застосунок оновлює свій кешований relay-registration замість повторного використання старого relay origin.
- Якщо ви перемикаєте застосунок 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: {
@ -404,7 +408,7 @@ Gateway також зберігає довірену останню відому
</Accordion>
<Accordion title="Налаштування завдань Cron">
<Accordion title="Налаштувати завдання Cron">
```json5
{
cron: {
@ -419,14 +423,14 @@ Gateway також зберігає довірену останню відому
}
```
- `sessionRetention`: видаляти завершені ізольовані сесії запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищати `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Див. [Завдання Cron](/uk/automation/cron-jobs) для огляду можливостей і прикладів CLI.
- `sessionRetention`: очищає завершені ізольовані сесії запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищає `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Див. [Завдання Cron](/uk/automation/cron-jobs) для огляду функції та прикладів CLI.
</Accordion>
<Accordion title="Налаштування Webhook (hooks)">
Увімкніть HTTP-ендпойнти Webhook на Gateway:
<Accordion title="Налаштувати Webhook (хуки)">
Увімкніть HTTP-ендпоїнти Webhook на Gateway:
```json5
{
@ -450,20 +454,20 @@ Gateway також зберігає довірену останню відому
```
Примітка щодо безпеки:
- Розглядайте весь вміст 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`, щоб обмежити ключі сесій, які можуть вибирати викликаючі сторони.
- Увесь вміст 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, де це можливо).
Див. [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів mapping і інтеграції Gmail.
Див. [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів зіставлення та інтеграції Gmail.
</Accordion>
<Accordion title="Налаштування маршрутизації кількох агентів">
Запускайте кілька ізольованих агентів з окремими робочими просторами та сесіями:
<Accordion title="Налаштувати маршрутизацію між кількома агентами">
Запускайте кількох ізольованих агентів з окремими робочими просторами та сесіями:
```json5
{
@ -480,12 +484,12 @@ Gateway також зберігає довірену останню відому
}
```
Див. [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing) для правил binding і профілів доступу для кожного агента.
Див. [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing) для правил прив’язки та профілів доступу для кожного агента.
</Accordion>
<Accordion title="Розподіл конфігурації на кілька файлів ($include)">
Використовуйте `$include` для організації великих конфігурацій:
<Accordion title="Розділити конфігурацію на кілька файлів ($include)">
Використовуйте `$include`, щоб упорядковувати великі конфігурації:
```json5
// ~/.openclaw/openclaw.json
@ -498,41 +502,41 @@ Gateway також зберігає довірену останню відому
}
```
- **Один файл**: замінює об’єкт, у якому міститься
- **Масив файлів**: об’єднується глибоким злиттям у вказаному порядку (пізніший має пріоритет)
- **Сусідні ключі**: об’єднуються після include (перевизначають включені значення)
- **Вкладені include**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файла, що включає
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних include
- **Один файл**: замінює об’єкт, що містить його
- **Масив файлів**: об’єднується deep-merge за порядком (пізніші мають пріоритет)
- **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файлу, що включає
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок розбору та циклічних includes
</Accordion>
</AccordionGroup>
## Гаряче перезавантаження конфігурації
Gateway відстежує `~/.openclaw/openclaw.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`, виправте відхилений payload, а потім виконайте
`openclaw config validate`. Див. [Усунення проблем Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
Якщо ви бачите в журналах `Config auto-restored from last-known-good` або
`config reload restored last-known-good config`, перевірте відповідний файл
`.clobbered.*` поруч із `openclaw.json`, виправте відхилений payload, а потім виконайте
`openclaw config validate`. Див. [усунення несправностей Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
для контрольного списку відновлення.
### Режими перезавантаження
| Режим | Поведінка |
| ---------------------- | ---------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Миттєво застосовує безпечні зміни. Автоматично перезапускає для критичних змін. |
| **`hot`** | Застосовує лише безпечні зміни без перезапуску. Записує попередження, коли потрібен перезапуск — ви виконуєте його самі. |
| **`restart`** | Перезапускає Gateway після будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файла. Зміни набудуть чинності під час наступного ручного перезапуску. |
| **`hybrid`** (типово) | Безпечно застосовує зміни гарячим способом миттєво. Автоматично перезапускається для критичних змін. |
| **`hot`** | Гарячим способом застосовує лише безпечні зміни. Записує попередження, коли потрібен перезапуск — ви виконуєте його самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набудуть чинності під час наступного ручного перезапуску. |
```json5
{
@ -542,46 +546,46 @@ 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>
## Config 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.get`: отримати поточний snapshot + hash
- `config.patch`: бажаний шлях часткового оновлення
- `config.schema.lookup`: перевірити одне піддерево конфігурації для заданого шляху з неглибоким
вузлом схеми, відповідними метаданими підказок і стислими описами безпосередніх дочірніх елементів
- `config.get`: отримати поточний знімок + хеш
- `config.patch`: бажаний шлях для часткового оновлення
- `config.apply`: лише повна заміна конфігурації
- `update.run`: явне самооновлення + перезапуск
Якщо ви не замінюєте всю конфігурацію, віддавайте перевагу `config.schema.lookup`
потім `config.patch`.
Якщо ви не замінюєте всю конфігурацію, віддавайте перевагу `config.schema.lookup`,
а потім `config.patch`.
<AccordionGroup>
<Accordion title="config.apply (повна заміна)">
Перевіряє + записує повну конфігурацію та перезапускає Gateway за один крок.
Перевіряє, записує повну конфігурацію та перезапускає Gateway за один крок.
<Warning>
`config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
@ -590,12 +594,12 @@ RPC запису control-plane (`config.apply`, `config.patch`, `update.run`) м
Параметри:
- `raw` (string) — payload JSON5 для всієї конфігурації
- `baseHash` (необов’язково) — хеш конфігурації з `config.get` (обов’язково, якщо конфігурація існує)
- `sessionKey` (необов’язково) — ключ сесії для ping пробудження після перезапуску
- `note` (необов’язково) — примітка для restart sentinel
- `baseHash` (необов’язково) — хеш конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (необов’язково) — ключ сесії для сигналу пробудження після перезапуску
- `note` (необов’язково) — примітка для маркера перезапуску
- `restartDelayMs` (необов’язково) — затримка перед перезапуском (типово 2000)
Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє 30-секундна пауза.
Запити на перезапуск об’єднуються, якщо один уже очікує або виконується, а між циклами перезапуску діє 30-секундна пауза.
```bash
openclaw gateway call config.get --params '{}' # capture payload.hash
@ -617,9 +621,9 @@ RPC запису control-plane (`config.apply`, `config.patch`, `update.run`) м
Параметри:
- `raw` (string) — JSON5 лише з ключами, які потрібно змінити
- `raw` (string) — JSON5 лише з тими ключами, які потрібно змінити
- `baseHash` (обов’язково) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — такі самі, як у `config.apply`
- `sessionKey`, `note`, `restartDelayMs` — ті самі, що й у `config.apply`
Поведінка перезапуску збігається з `config.apply`: об’єднання очікуваних перезапусків плюс 30-секундна пауза між циклами перезапуску.
@ -635,12 +639,12 @@ RPC запису control-plane (`config.apply`, `config.patch`, `update.run`) м
## Змінні середовища
OpenClaw читає env vars із батьківського процесу, а також із:
OpenClaw зчитує змінні середовища з батьківського процесу, а також з:
- `.env` з поточного робочого каталогу (якщо є)
- `~/.openclaw/.env` (глобальний резервний варіант)
Жоден із цих файлів не перевизначає вже наявні env vars. Ви також можете задавати вбудовані env vars у конфігурації:
Жоден із цих файлів не перевизначає наявні змінні середовища. Ви також можете задавати вбудовані змінні середовища в конфігурації:
```json5
{
@ -652,7 +656,7 @@ OpenClaw читає env vars із батьківського процесу, а
```
<Accordion title="Імпорт shell env (необов’язково)">
Якщо ввімкнено і потрібні ключі не задані, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
Якщо цю функцію ввімкнено й очікувані ключі не задано, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@ -662,11 +666,11 @@ OpenClaw читає env vars із батьківського процесу, а
}
```
Еквівалент env var: `OPENCLAW_LOAD_SHELL_ENV=1`
Еквівалент змінної середовища: `OPENCLAW_LOAD_SHELL_ENV=1`
</Accordion>
<Accordion title="Підстановка env var у значення конфігурації">
Посилайтеся на env vars у будь-якому рядковому значенні конфігурації за допомогою `${VAR_NAME}`:
<Accordion title="Підстановка env var у значеннях конфігурації">
Посилайтеся на змінні середовища в будь-якому рядковому значенні конфігурації за допомогою `${VAR_NAME}`:
```json5
{
@ -677,15 +681,15 @@ OpenClaw читає env vars із батьківського процесу, а
Правила:
- Зіставляються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні vars спричиняють помилку під час завантаження
- Використовуйте `$${VAR}` для буквального виводу
- Зіставляються лише назви у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні змінні викликають помилку під час завантаження
- Використовуйте `$${VAR}` для виведення літерала
- Працює всередині файлів `$include`
- Вбудована підстановка: `"${BASE}/v1"``"https://api.example.com/v1"`
</Accordion>
<Accordion title="Secret refs (env, file, exec)">
<Accordion title="Посилання на секрети (env, file, exec)">
Для полів, які підтримують об’єкти SecretRef, можна використовувати:
```json5
@ -718,15 +722,15 @@ OpenClaw читає env vars із батьківського процесу, а
}
```
Подробиці щодо SecretRef (включно з `secrets.providers` для `env`/`file`/`exec`) наведено в [Керування секретами](/uk/gateway/secrets).
Підтримувані шляхи облікових даних перелічено в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
Докладніше про SecretRef (включно з `secrets.providers` для `env`/`file`/`exec`) див. у [Керування секретами](/uk/gateway/secrets).
Підтримувані шляхи облікових даних наведено в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
</Accordion>
Див. [Середовище](/uk/help/environment) для повного опису пріоритетів і джерел.
## Повний довідник
Повний довідник поле за полем дивіться в **[Довіднику конфігурації](/uk/gateway/configuration-reference)**.
Повний довідник для кожного поля див. в **[Довіднику конфігурації](/uk/gateway/configuration-reference)**.
---