chore(i18n): refresh uk translations
This commit is contained in:
parent
692b5508ec
commit
ec2e40b1a6
@ -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
Loading…
Reference in New Issue
Block a user