chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-22 22:34:57 +00:00
parent 8b0f41c613
commit cb8dd3bbfc
3 changed files with 939 additions and 934 deletions

View File

@ -3,13 +3,13 @@ read_when:
- Додавання або змінення CLI моделей (models list/set/scan/aliases/fallbacks)
- Зміна поведінки резервних варіантів моделі або UX вибору
- Оновлення перевірок сканування моделей (інструменти/зображення)
summary: 'CLI моделей: список, встановлення, псевдоніми, резервні варіанти, сканування, статус'
summary: 'CLI моделей: список, встановлення, псевдоніми, резервні варіанти, сканування, стан'
title: CLI моделей
x-i18n:
generated_at: "2026-04-22T19:55:24Z"
generated_at: "2026-04-22T22:25:43Z"
model: gpt-5.4
provider: openai
source_hash: 99174b625d265fe4743f4e0ca7ea3897bb446a485dde0841e101fe136a08558a
source_hash: 18d915f3f761aaff5efc3bf752f5abddeb625e1a386ab3d701f46fd92244f20e
source_path: concepts/models.md
workflow: 15
---
@ -24,34 +24,34 @@ x-i18n:
OpenClaw вибирає моделі в такому порядку:
1. **Основна** модель (`agents.defaults.model.primary` або `agents.defaults.model`).
2. **Резервні варіанти** в `agents.defaults.model.fallbacks` (за порядком).
2. **Резервні варіанти** в `agents.defaults.model.fallbacks` (по порядку).
3. **Резервне перемикання автентифікації провайдера** відбувається всередині провайдера перед переходом до наступної моделі.
Пов’язане:
- `agents.defaults.models` — це allowlist/каталог моделей, які OpenClaw може використовувати (разом із псевдонімами).
- `agents.defaults.imageModel` використовується **лише тоді**, коли основна модель не може приймати зображення.
- `agents.defaults.pdfModel` використовується інструментом `pdf`. Якщо його не вказано, інструмент повертається до `agents.defaults.imageModel`, а потім до визначеної для сесії/типової моделі.
- `agents.defaults.imageGenerationModel` використовується спільною можливістю генерації зображень. Якщо його не вказано, `image_generate` усе одно може визначити типовий варіант провайдера з автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації зображень у порядку `provider-id`. Якщо ви задаєте конкретний провайдер/модель, також налаштуйте автентифікацію/API key цього провайдера.
- `agents.defaults.musicGenerationModel` використовується спільною можливістю генерації музики. Якщо його не вказано, `music_generate` усе одно може визначити типовий варіант провайдера з автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації музики в порядку `provider-id`. Якщо ви задаєте конкретний провайдер/модель, також налаштуйте автентифікацію/API key цього провайдера.
- `agents.defaults.videoGenerationModel` використовується спільною можливістю генерації відео. Якщо його не вказано, `video_generate` усе одно може визначити типовий варіант провайдера з автентифікацією. Спочатку він пробує поточного типового провайдера, потім решту зареєстрованих провайдерів генерації відео в порядку `provider-id`. Якщо ви задаєте конкретний провайдер/модель, також налаштуйте автентифікацію/API key цього провайдера.
- Типові значення для окремих агентів можуть перевизначати `agents.defaults.model` через `agents.list[].model` разом із прив’язками (див. [/concepts/multi-agent](/uk/concepts/multi-agent)).
- `agents.defaults.pdfModel` використовується інструментом `pdf`. Якщо його не вказано, інструмент повертається до `agents.defaults.imageModel`, а потім до визначеної моделі сесії/моделі за замовчуванням.
- `agents.defaults.imageGenerationModel` використовується спільною можливістю генерації зображень. Якщо його не вказано, `image_generate` усе одно може визначити значення за замовчуванням провайдера з автентифікацією. Спочатку він пробує поточного провайдера за замовчуванням, а потім решту зареєстрованих провайдерів генерації зображень у порядку provider-id. Якщо ви вказуєте конкретний provider/model, також налаштуйте автентифікацію/API key цього провайдера.
- `agents.defaults.musicGenerationModel` використовується спільною можливістю генерації музики. Якщо його не вказано, `music_generate` усе одно може визначити значення за замовчуванням провайдера з автентифікацією. Спочатку він пробує поточного провайдера за замовчуванням, а потім решту зареєстрованих провайдерів генерації музики у порядку provider-id. Якщо ви вказуєте конкретний provider/model, також налаштуйте автентифікацію/API key цього провайдера.
- `agents.defaults.videoGenerationModel` використовується спільною можливістю генерації відео. Якщо його не вказано, `video_generate` усе одно може визначити значення за замовчуванням провайдера з автентифікацією. Спочатку він пробує поточного провайдера за замовчуванням, а потім решту зареєстрованих провайдерів генерації відео у порядку provider-id. Якщо ви вказуєте конкретний provider/model, також налаштуйте автентифікацію/API key цього провайдера.
- Значення за замовчуванням для окремого агента можуть перевизначати `agents.defaults.model` через `agents.list[].model` разом із прив’язками (див. [/concepts/multi-agent](/uk/concepts/multi-agent)).
## Швидка політика моделей
- Встановіть основною найсильнішу модель останнього покоління, яка вам доступна.
- Використовуйте резервні варіанти для завдань, чутливих до вартості/затримки, і для менш критичного чату.
- Для агентів з увімкненими інструментами або для недовірених вхідних даних уникайте старіших/слабших рівнів моделей.
- Використовуйте резервні варіанти для чутливих до вартості/затримки завдань і менш критичного чату.
- Для агентів з увімкненими інструментами або недовірених вхідних даних уникайте старіших/слабших рівнів моделей.
## Онбординг (рекомендовано)
## Початкове налаштування (рекомендовано)
Якщо ви не хочете вручну редагувати конфігурацію, запустіть онбординг:
Якщо ви не хочете вручну редагувати конфігурацію, запустіть початкове налаштування:
```bash
openclaw onboard
```
Він може налаштувати модель + автентифікацію для поширених провайдерів, зокрема **OpenAI Code (Codex) subscription** (OAuth) та **Anthropic** (API key або Claude CLI).
Воно може налаштувати модель + автентифікацію для поширених провайдерів, включно з підпискою **OpenAI Code (Codex)** (OAuth) і **Anthropic** (API key або Claude CLI).
## Ключі конфігурації (огляд)
@ -63,20 +63,32 @@ openclaw onboard
- `agents.defaults.models` (allowlist + псевдоніми + параметри провайдера)
- `models.providers` (власні провайдери, записані в `models.json`)
Посилання на моделі нормалізуються до нижнього регістру. Псевдоніми провайдерів, як-от `z.ai/*`, нормалізуються до `zai/*`.
Посилання на моделі нормалізуються до нижнього регістру. Псевдоніми провайдерів, такі як `z.ai/*`, нормалізуються до `zai/*`.
Приклади конфігурації провайдерів (зокрема OpenCode) наведено в
Приклади конфігурації провайдерів (включно з OpenCode) наведено в
[/providers/opencode](/uk/providers/opencode).
## «Модель не дозволена» (і чому відповіді зупиняються)
### Безпечне редагування allowlist
Якщо задано `agents.defaults.models`, воно стає **allowlist** для `/model` і для перевизначень сесії. Коли користувач вибирає модель, якої немає в цьому allowlist, OpenClaw повертає:
Використовуйте додаткові записи під час ручного оновлення `agents.defaults.models`:
```bash
openclaw config set agents.defaults.models '{"openai-codex/gpt-5.4":{}}' --strict-json --merge
```
`openclaw config set` захищає мапи моделей/провайдерів від випадкового перезапису. Просте присвоєння об’єкта для `agents.defaults.models`, `models.providers` або `models.providers.<id>.models` відхиляється, якщо воно видалить наявні записи. Використовуйте `--merge` для додаткових змін; використовуйте `--replace` лише тоді, коли передане значення має стати повним цільовим значенням.
Інтерактивне налаштування провайдера та `openclaw configure --section model` також об’єднують вибрані значення в межах провайдера з наявним allowlist, тому додавання Codex, Ollama або іншого провайдера не видаляє не пов’язані записи моделей.
## "Model is not allowed" (і чому відповіді зупиняються)
Якщо встановлено `agents.defaults.models`, він стає **allowlist** для `/model` і для перевизначень сесії. Коли користувач вибирає модель, якої немає в цьому allowlist, OpenClaw повертає:
```
Model "provider/model" is not allowed. Use /model to list available models.
```
Це відбувається **до** генерації звичайної відповіді, тому може здаватися, що повідомлення «не отримало відповіді». Виправити це можна так:
Це відбувається **до** створення звичайної відповіді, тому може здаватися, що повідомлення «не отримало відповіді». Виправити це можна так:
- Додати модель до `agents.defaults.models`, або
- Очистити allowlist (видалити `agents.defaults.models`), або
@ -110,28 +122,26 @@ Model "provider/model" is not allowed. Use /model to list available models.
Примітки:
- `/model` (і `/model list`) — це компактний нумерований вибір (сімейство моделей + доступні провайдери).
- У Discord `/model` і `/models` відкривають інтерактивний вибір із випадними списками провайдера та моделі, а також кроком Submit.
- `/models add` доступна типово й може бути вимкнена через `commands.modelsWrite=false`.
- Якщо ввімкнено, `/models add <provider> <modelId>` — це найшвидший шлях; просто `/models add` запускає керований процес із вибором провайдера спочатку, де це підтримується.
- `/model` (і `/model list`) — це компактний нумерований засіб вибору (сімейство моделей + доступні провайдери).
- У Discord `/model` і `/models` відкривають інтерактивний засіб вибору з випадними списками провайдера й моделі та кроком Submit.
- `/models add` доступна за замовчуванням і може бути вимкнена через `commands.modelsWrite=false`.
- Якщо команду увімкнено, `/models add <provider> <modelId>` — найшвидший шлях; проста `/models add` запускає покроковий потік із вибором провайдера спочатку, де це підтримується.
- Після `/models add` нова модель стає доступною в `/models` і `/model` без перезапуску Gateway.
- `/model <#>` вибирає модель із цього списку.
- `/model` одразу зберігає новий вибір для сесії.
- `/model <#>` вибирає зі списку цього засобу вибору.
- `/model` одразу зберігає новий вибір сесії.
- Якщо агент неактивний, наступний запуск одразу використовує нову модель.
- Якщо запуск уже активний, OpenClaw позначає перемикання на льоту як очікуване й перезапускає в нову модель лише в чистій точці повторної спроби.
- Якщо активність інструментів або виведення відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої можливості повторної спроби або до наступного ходу користувача.
- `/model status` — це детальне подання (кандидати автентифікації та, коли налаштовано, `baseUrl` кінцевої точки провайдера + режим `api`).
- Посилання на модель розбираються шляхом поділу за **першим** `/`. Під час введення `/model <ref>` використовуйте `provider/model`.
- Якщо сам ID моделі містить `/` (у стилі OpenRouter), ви маєте вказати префікс провайдера (приклад: `/model openrouter/moonshotai/kimi-k2`).
- Якщо запуск уже активний, OpenClaw позначає перемикання наживо як очікуване та перезапускає на нову модель лише в чистій точці повторної спроби.
- Якщо активність інструментів або виведення відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої можливості повторної спроби або наступного ходу користувача.
- `/model status` — це докладний перегляд (кандидати автентифікації та, якщо налаштовано, `baseUrl` кінцевої точки провайдера + режим `api`).
- Посилання на моделі розбираються шляхом поділу за **першим** `/`. Використовуйте `provider/model`, коли вводите `/model <ref>`.
- Якщо сам model id містить `/` (у стилі OpenRouter), ви маєте вказати префікс провайдера (приклад: `/model openrouter/moonshotai/kimi-k2`).
- Якщо ви не вказуєте провайдера, OpenClaw визначає введення в такому порядку:
1. збіг псевдоніма
2. однозначний збіг налаштованого провайдера для цього точного ID моделі без префікса
3. застарілий резервний перехід до налаштованого типового провайдера
Якщо цей провайдер більше не надає налаштовану типову модель, OpenClaw
натомість переходить до першого налаштованого провайдера/моделі, щоб уникнути
показу застарілого типового значення видаленого провайдера.
2. унікальний збіг налаштованого провайдера для цього точного model id без префікса
3. застарілий резервний перехід до налаштованого провайдера за замовчуванням
Якщо цей провайдер більше не надає налаштовану модель за замовчуванням, OpenClaw замість цього переходить до першого налаштованого provider/model, щоб уникнути показу застарілого значення за замовчуванням від видаленого провайдера.
Повна поведінка команди/конфігурація: [Косі команди](/uk/tools/slash-commands).
Повна поведінка/конфігурація команди: [Slash commands](/uk/tools/slash-commands).
Приклади:
@ -141,7 +151,7 @@ Model "provider/model" is not allowed. Use /model to list available models.
/models add lmstudio qwen/qwen3.5-9b
```
## CLI команди
## Команди CLI
```bash
openclaw models list
@ -168,30 +178,26 @@ openclaw models image-fallbacks clear
### `models list`
Типово показує налаштовані моделі. Корисні прапорці:
За замовчуванням показує налаштовані моделі. Корисні прапорці:
- `--all`: повний каталог
- `--local`: лише локальні провайдери
- `--provider <name>`: фільтр за провайдером
- `--plain`: одна модель на рядок
- `--json`: машинозчитуваний вивід
- `--json`: машиночитний вивід
`--all` включає рядки статичного каталогу вбудованих провайдерів ще до налаштування автентифікації, тож подання лише для виявлення можуть показувати моделі, недоступні, доки ви не додасте відповідні облікові дані провайдера.
`--all` включає рядки статичного каталогу вбудованих провайдерів ще до налаштування автентифікації, тому перегляди лише для виявлення можуть показувати моделі, які недоступні, доки ви не додасте відповідні облікові дані провайдера.
### `models status`
Показує визначені основну модель, резервні варіанти, модель для зображень і огляд автентифікації налаштованих провайдерів. Також показує стан завершення строку дії OAuth для профілів, знайдених у сховищі автентифікації (типово попереджає за 24 год). `--plain` виводить лише визначену основну модель.
Стан OAuth показується завжди (і включається у вивід `--json`). Якщо налаштований провайдер не має облікових даних, `models status` виводить розділ **Відсутня автентифікація**.
JSON містить `auth.oauth` (вікно попередження + профілі) та `auth.providers`
(ефективна автентифікація для кожного провайдера, зокрема облікові дані з env). `auth.oauth`
стосується лише стану профілів у сховищі автентифікації; провайдери лише з env там не з’являються.
Використовуйте `--check` для автоматизації (код виходу `1` для відсутніх/прострочених, `2` для тих, що скоро спливають).
Використовуйте `--probe` для живих перевірок автентифікації; рядки перевірок можуть надходити з профілів автентифікації, облікових даних env або `models.json`.
Якщо явний `auth.order.<provider>` пропускає збережений профіль, перевірка повідомляє
`excluded_by_auth_order` замість спроби його використати. Якщо автентифікація є, але для цього провайдера неможливо визначити модель, придатну для перевірки, перевірка повідомляє `status: no_model`.
Показує визначену основну модель, резервні варіанти, модель зображень і огляд автентифікації налаштованих провайдерів. Також відображає стан завершення дії OAuth для профілів, знайдених у сховищі автентифікації (типово попереджає в межах 24 год). `--plain` виводить лише визначену основну модель.
Стан OAuth показується завжди (і включається у вивід `--json`). Якщо налаштований провайдер не має облікових даних, `models status` виводить розділ **Missing auth**.
JSON включає `auth.oauth` (вікно попередження + профілі) і `auth.providers` (ефективна автентифікація для кожного провайдера, включно з обліковими даними з env). `auth.oauth` — це лише стан профілів зі сховища автентифікації; провайдери лише з env там не відображаються.
Використовуйте `--check` для автоматизації (код виходу `1`, якщо відсутні/прострочені, `2`, якщо скоро завершаться).
Використовуйте `--probe` для живих перевірок автентифікації; рядки перевірок можуть походити з профілів автентифікації, облікових даних env або `models.json`.
Якщо явний `auth.order.<provider>` пропускає збережений профіль, перевірка повертає `excluded_by_auth_order` замість спроби його використати. Якщо автентифікація є, але для цього провайдера не вдається визначити модель, придатну для probe, перевірка повертає `status: no_model`.
Вибір автентифікації залежить від провайдера/облікового запису. Для постійно активних хостів Gateway
API key зазвичай найпередбачуваніші; також підтримується повторне використання Claude CLI та наявних профілів OAuth/token Anthropic.
Вибір автентифікації залежить від провайдера/облікового запису. Для хостів Gateway, які працюють постійно, API key зазвичай найпередбачуваніші; також підтримується повторне використання Claude CLI та наявних профілів OAuth/token Anthropic.
Приклад (Claude CLI):
@ -200,64 +206,59 @@ claude auth login
openclaw models status
```
## Сканування (безплатні моделі OpenRouter)
## Сканування (безкоштовні моделі OpenRouter)
`openclaw models scan` перевіряє **каталог безплатних моделей** OpenRouter і може
за бажанням виконувати перевірку моделей на підтримку інструментів і зображень.
`openclaw models scan` перевіряє **каталог безкоштовних моделей** OpenRouter і за потреби може виконувати probe моделей на підтримку інструментів і зображень.
Основні прапорці:
- `--no-probe`: пропустити живі перевірки (лише метадані)
- `--no-probe`: пропустити живі probe (лише метадані)
- `--min-params <b>`: мінімальний розмір параметрів (у мільярдах)
- `--max-age-days <days>`: пропустити старіші моделі
- `--provider <name>`: фільтр за префіксом провайдера
- `--provider <name>`: фільтр префікса провайдера
- `--max-candidates <n>`: розмір списку резервних варіантів
- `--set-default`: встановити `agents.defaults.model.primary` на перший вибір
- `--set-image`: встановити `agents.defaults.imageModel.primary` на перший вибір зображення
- `--set-image`: встановити `agents.defaults.imageModel.primary` на перший вибір зображень
Перевірка потребує API key OpenRouter (з профілів автентифікації або
`OPENROUTER_API_KEY`). Без ключа використовуйте `--no-probe`, щоб лише перелічити кандидатів.
Виконання probe потребує OpenRouter API key (з профілів автентифікації або `OPENROUTER_API_KEY`). Без ключа використовуйте `--no-probe`, щоб лише перелічити кандидатів.
Результати сканування ранжуються за:
1. Підтримка зображень
2. Затримка інструментів
3. Розмір контексту
4. Кількість параметрів
1. Підтримкою зображень
2. Затримкою інструментів
3. Розміром контексту
4. Кількістю параметрів
Вхідні дані
- Список OpenRouter `/models` (фільтр `:free`)
- Потребує API key OpenRouter із профілів автентифікації або `OPENROUTER_API_KEY` (див. [/environment](/uk/help/environment))
- Потребує OpenRouter API key з профілів автентифікації або `OPENROUTER_API_KEY` (див. [/environment](/uk/help/environment))
- Необов’язкові фільтри: `--max-age-days`, `--min-params`, `--provider`, `--max-candidates`
- Керування перевіркою: `--timeout`, `--concurrency`
- Керування probe: `--timeout`, `--concurrency`
Під час запуску в TTY ви можете інтерактивно вибирати резервні варіанти. У неінтерактивному
режимі передайте `--yes`, щоб прийняти типові значення.
Під час запуску в TTY ви можете інтерактивно вибрати резервні варіанти. У неінтерактивному режимі передайте `--yes`, щоб прийняти значення за замовчуванням.
## Реєстр моделей (`models.json`)
Власні провайдери в `models.providers` записуються в `models.json` у каталозі
агента (типово `~/.openclaw/agents/<agentId>/agent/models.json`). Цей файл
типово об’єднується, якщо тільки `models.mode` не встановлено в `replace`.
Власні провайдери в `models.providers` записуються в `models.json` у каталозі агента (типово `~/.openclaw/agents/<agentId>/agent/models.json`). Цей файл за замовчуванням об’єднується, якщо `models.mode` не встановлено в `replace`.
Пріоритет у режимі злиття для однакових ID провайдерів:
Пріоритет у режимі злиття для збіжних ID провайдерів:
- Непорожній `baseUrl`, уже наявний в `models.json` агента, має пріоритет.
- Непорожній `baseUrl`, уже наявний у `models.json` агента, має пріоритет.
- Непорожній `apiKey` у `models.json` агента має пріоритет лише тоді, коли цей провайдер не керується через SecretRef у поточному контексті конфігурації/профілю автентифікації.
- Значення `apiKey` провайдера, якими керує SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для env-посилань, `secretref-managed` для посилань file/exec) замість збереження розкритих секретів.
- Значення заголовків провайдера, якими керує SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для env-посилань, `secretref-managed` для посилань file/exec).
- Порожні або відсутні `apiKey`/`baseUrl` агента переходять до конфігурації `models.providers`.
- Значення `apiKey` для провайдерів, якими керує SecretRef, оновлюються з маркерів джерела (`ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань) замість збереження розкритих секретів.
- Значення заголовків провайдера, якими керує SecretRef, оновлюються з маркерів джерела (`secretref-env:ENV_VAR_NAME` для env-посилань, `secretref-managed` для file/exec-посилань).
- Порожні або відсутні `apiKey`/`baseUrl` агента повертаються до конфігурації `models.providers`.
- Інші поля провайдера оновлюються з конфігурації та нормалізованих даних каталогу.
Збереження маркерів є авторитетним щодо джерела: OpenClaw записує маркери з активного знімка конфігурації джерела (до розв’язання), а не з розв’язаних значень секретів часу виконання.
Це застосовується щоразу, коли OpenClaw повторно генерує `models.json`, зокрема в шляхах, ініційованих командами, як-от `openclaw agent`.
Збереження маркерів є авторитетним щодо джерела: OpenClaw записує маркери з активного знімка конфігурації джерела (до розкриття значень), а не з розкритих значень секретів під час виконання.
Це застосовується щоразу, коли OpenClaw повторно генерує `models.json`, включно зі шляхами, ініційованими командами, такими як `openclaw agent`.
## Пов’язане
- [Провайдери моделей](/uk/concepts/model-providers) — маршрутизація провайдерів і автентифікація
- [Резервне перемикання моделей](/uk/concepts/model-failover) — ланцюжки резервних варіантів
- [Генерація зображень](/uk/tools/image-generation) — конфігурація моделі зображень
- [Генерація музики](/uk/tools/music-generation) — конфігурація музичної моделі
- [Генерація відео](/uk/tools/video-generation) — конфігурація відеомоделі
- [Генерація музики](/uk/tools/music-generation) — конфігурація моделі музики
- [Генерація відео](/uk/tools/video-generation) — конфігурація моделі відео
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) — ключі конфігурації моделей

File diff suppressed because it is too large Load Diff

View File

@ -2,32 +2,32 @@
read_when:
- Перше налаштування OpenClaw
- Пошук поширених шаблонів конфігурації
- Перехід до певних розділів конфігурації
- Перехід до конкретних розділів конфігурації
summary: 'Огляд конфігурації: поширені завдання, швидке налаштування та посилання на повний довідник'
title: Конфігурація
x-i18n:
generated_at: "2026-04-22T21:30:54Z"
generated_at: "2026-04-22T22:25:45Z"
model: gpt-5.4
provider: openai
source_hash: 36162008b66dcaaac6d51882f20d74aebd9b637bfddde00395cdfbd5721e3d20
source_hash: 2296617a25a339048cb1df7b895fec35e96b0740851c89add907fc49307e08d1
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 використовує безпечні значення за замовчуванням. Поширені причини додати конфігурацію:
Якщо файл відсутній, OpenClaw використовує безпечні значення за замовчуванням. Типові причини додати конфігурацію:
- Підключити канали та керувати тим, хто може надсилати повідомлення боту
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (Cron, хуки)
- Налаштувати сесії, медіа, мережу або UI
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (cron, hooks)
- Тонко налаштувати сеанси, медіа, мережу або UI
Перегляньте [повний довідник](/uk/gateway/configuration-reference), щоб побачити всі доступні поля.
<Tip>
**Вперше працюєте з конфігурацією?** Почніть із `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) з готовими конфігураціями для копіювання.
**Вперше налаштовуєте конфігурацію?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) з повними конфігураціями для копіювання.
</Tip>
## Мінімальна конфігурація
@ -45,8 +45,8 @@ OpenClaw зчитує необов’язкову конфігурацію <Tool
<Tabs>
<Tab title="Інтерактивний майстер">
```bash
openclaw onboard # повний процес початкового налаштування
openclaw configure # майстер конфігурації
openclaw onboard # full onboarding flow
openclaw configure # config wizard
```
</Tab>
<Tab title="CLI (однорядкові команди)">
@ -57,12 +57,12 @@ OpenClaw зчитує необов’язкову конфігурацію <Tool
```
</Tab>
<Tab title="Control UI">
Відкрийте [http://127.0.0.1:18789](http://127.0.0.1:18789) і скористайтеся вкладкою **Config**.
Control UI відображає форму на основі актуальної схеми конфігурації, включно з метаданими документації полів
`title` / `description`, а також схемами Plugin і каналів, коли
вони доступні, з редактором **Raw JSON** як запасним варіантом. Для деталізованих
UI та інших інструментів gateway також надає `config.schema.lookup`, щоб
отримати один вузол схеми для заданого шляху разом із підсумками безпосередніх дочірніх елементів.
Відкрийте [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,47 +72,47 @@ OpenClaw зчитує необов’язкову конфігурацію <Tool
## Сувора валідація
<Warning>
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли підключати метадані JSON Schema.
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, неправильні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли підключати метадані JSON Schema.
</Warning>
Примітки щодо інструментів схеми:
- `openclaw config schema` виводить ту саму сім’ю JSON Schema, яку використовують Control UI
і валідація конфігурації.
- Вважайте цей вивід схеми канонічним машиночитаним контрактом для
`openclaw.json`; цей огляд і довідник конфігурації його узагальнюють.
- Значення полів `title` і `description` переносяться у вивід схеми для
- Розглядайте цей вивід схеми як канонічний машиночитний контракт для
`openclaw.json`; цей огляд і довідник із конфігурації його узагальнюють.
- Значення полів `title` і `description` переносяться до виводу схеми для
редакторів та інструментів форм.
- Вкладені об’єкти, шаблони з wildcard (`*`) і елементи масиву (`[]`) успадковують ті самі
метадані документації, якщо для відповідного поля є документація.
- Гілки композиції `anyOf` / `oneOf` / `allOf` також успадковують ті самі
метадані документації, тож варіанти union/intersection зберігають ті самі підказки для полів.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з неглибоким
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені межі
та подібні поля валідації), відповідними метаданими підказок UI і стислими описами
- Вкладені об’єкти, шаблони (`*`) та елементи масиву (`[]`) успадковують ті самі
метадані документації, якщо для відповідного поля існує документація.
- Гілки композицій `anyOf` / `oneOf` / `allOf` також успадковують ті самі
метадані документації, тож варіанти union/intersection зберігають ту саму довідку полів.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з поверхневим
вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені обмеження
та подібні поля валідації), відповідними метаданими підказок UI і підсумками
безпосередніх дочірніх елементів для інструментів деталізації.
- Схеми Plugin/каналів під час виконання об’єднуються, коли gateway може завантажити
- Схеми Plugin/каналів часу виконання об’єднуються, коли gateway може завантажити
поточний реєстр маніфестів.
- `pnpm config:docs:check` виявляє розбіжності між артефактами базової конфігурації для документації
і поточною поверхнею схеми.
- `pnpm config:docs:check` виявляє розбіжності між артефактами базових конфігурацій,
орієнтованими на документацію, і поточною поверхнею схеми.
Коли валідація не проходить:
- Gateway не запускається
- Працюють лише діагностичні команди (`openclaw doctor`, `openclaw logs`, `openclaw health`, `openclaw status`)
- Запустіть `openclaw doctor`, щоб побачити точні проблеми
- Запустіть `openclaw doctor --fix` (або `--yes`), щоб застосувати виправлення
- Виконайте `openclaw doctor`, щоб побачити точні проблеми
- Виконайте `openclaw doctor --fix` (або `--yes`), щоб застосувати виправлення
Gateway також зберігає довірену останню відому справну копію після успішного запуску. Якщо
`openclaw.json` пізніше буде змінено поза OpenClaw і він більше не проходитиме валідацію, під час запуску
та гарячого перезавантаження зіпсований файл буде збережено як позначений часовою міткою знімок `.clobbered.*`,
відновлено останню відому справну копію та записано помітне попередження з причиною відновлення.
Якщо перед інакше коректною JSON-конфігурацією випадково додано рядок статусу/журналу,
під час запуску gateway і виконання `openclaw doctor --fix` цей префікс можна видалити,
Gateway також зберігає довірену останню коректну копію після успішного запуску. Якщо
`openclaw.json` пізніше буде змінено поза OpenClaw і він перестане проходити валідацію, запуск
і гаряче перезавантаження збережуть пошкоджений файл як позначений часом знімок `.clobbered.*`,
відновлять останню коректну копію та запишуть помітне попередження з причиною відновлення.
Якщо перед інакше коректною JSON-конфігурацією випадково буде додано рядок статусу/журналу,
запуск gateway і `openclaw doctor --fix` можуть прибрати цей префікс,
зберегти забруднений файл як `.clobbered.*` і продовжити роботу з відновленим
JSON.
Наступний хід основного агента також отримує попередження системної події про те, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Оновлення останньої відомої справної копії
Наступний хід основного агента також отримує попередження про системну подію, яке повідомляє, що
конфігурацію було відновлено і її не можна бездумно перезаписувати. Оновлення останньої коректної версії
відбувається після валідованого запуску та після прийнятих гарячих перезавантажень, включно з
записами конфігурації, виконаними самим OpenClaw, якщо хеш збереженого файлу все ще збігається з прийнятим
записом. Оновлення пропускається, якщо кандидат містить замасковані заповнювачі секретів
@ -135,7 +135,7 @@ JSON.
- [iMessage](/uk/channels/imessage) — `channels.imessage`
- [Mattermost](/uk/channels/mattermost) — `channels.mattermost`
Усі канали використовують однаковий шаблон політики DM:
Усі канали використовують однаковий шаблон політики особистих повідомлень:
```json5
{
@ -153,7 +153,7 @@ JSON.
</Accordion>
<Accordion title="Вибрати та налаштувати моделі">
Задайте основну модель і необов’язкові резервні варіанти:
Встановіть основну модель і необов’язкові резервні варіанти:
```json5
{
@ -172,30 +172,31 @@ JSON.
}
```
- `agents.defaults.models` визначає каталог моделей і виконує роль allowlist для `/model`.
- `agents.defaults.models` визначає каталог моделей і слугує allowlist для `/model`.
- Використовуйте `openclaw config set agents.defaults.models '<json>' --strict-json --merge`, щоб додавати записи allowlist без видалення наявних моделей. Звичайні заміни, які призвели б до видалення записів, відхиляються, якщо не передати `--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 provider див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
- `agents.defaults.imageMaxDimensionPx` керує зменшенням розміру зображень у транскриптах/інструментах (типове значення `1200`); менші значення зазвичай зменшують використання vision-token у сценаріях із великою кількістю скриншотів.
- Див. [Models CLI](/uk/concepts/models), щоб перемикати моделі в чаті, і [Model Failover](/uk/concepts/model-failover) щодо ротації автентифікації та поведінки резервного перемикання.
- Для користувацьких/self-hosted провайдерів див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
</Accordion>
<Accordion title="Керувати тим, хто може надсилати повідомлення боту">
Доступ до DM контролюється окремо для кожного каналу через `dmPolicy`:
Доступ до особистих повідомлень керується окремо для кожного каналу через `dmPolicy`:
- `"pairing"` (типово): невідомі відправники отримують одноразовий код сполучення для підтвердження
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища дозволів після сполучення)
- `"open"`: дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі DM
- `"pairing"` (типово): невідомі відправники отримують одноразовий код pairing для схвалення
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища парного allow)
- `"open"`: дозволити всі вхідні особисті повідомлення (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі особисті повідомлення
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або специфічні для каналу allowlist.
Для груп використовуйте `groupPolicy` + `groupAllowFrom` або allowlist, специфічні для каналу.
Див. [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для деталей по кожному каналу.
</Accordion>
<Accordion title="Налаштувати обмеження згадками в групових чатах">
Повідомлення в групах типово **вимагають згадки**. Налаштуйте шаблони для кожного агента:
<Accordion title="Налаштувати вимогу згадки в групових чатах">
Групові повідомлення типово **вимагають згадки**. Налаштуйте шаблони для кожного агента:
```json5
{
@ -217,15 +218,15 @@ JSON.
}
```
- **Metadata mentions**: нативні @-згадки (tap-to-mention у WhatsApp, @bot у Telegram тощо)
- **Text patterns**: безпечні regex-шаблони в `mentionPatterns`
- Див. [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень по каналах і режиму self-chat.
- **Metadata mentions**: нативні @-згадки (WhatsApp tap-to-mention, Telegram @bot тощо)
- **Text patterns**: безпечні шаблони regex у `mentionPatterns`
- Див. [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень на рівні каналів і режиму self-chat.
</Accordion>
<Accordion title="Обмежити Skills для агента">
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте
конкретних агентів через `agents.list[].skills`:
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте конкретні
агенти через `agents.list[].skills`:
```json5
{
@ -242,15 +243,15 @@ JSON.
}
```
- Не вказуйте `agents.defaults.skills`, якщо за замовчуванням Skills не мають бути обмежені.
- Не вказуйте `agents.defaults.skills`, щоб типово не обмежувати Skills.
- Не вказуйте `agents.list[].skills`, щоб успадкувати значення за замовчуванням.
- Встановіть `agents.list[].skills: []`, щоб не дозволяти жодних Skills.
- Установіть `agents.list[].skills: []`, щоб не було Skills.
- Див. [Skills](/uk/tools/skills), [конфігурація Skills](/uk/tools/skills-config) і
[Довідник конфігурації](/uk/gateway/configuration-reference#agents-defaults-skills).
[Довідник із конфігурації](/uk/gateway/configuration-reference#agents-defaults-skills).
</Accordion>
<Accordion title="Налаштувати моніторинг стану каналів gateway">
<Accordion title="Тонко налаштувати моніторинг стану каналів gateway">
Керуйте тим, наскільки агресивно gateway перезапускає канали, які виглядають неактивними:
```json5
@ -273,15 +274,15 @@ JSON.
}
```
- Встановіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски монітора стану.
- `channelStaleEventThresholdMinutes` має бути більшим або дорівнювати інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу чи облікового запису без вимкнення глобального монітора.
- Див. [Health Checks](/uk/gateway/health) для операційної діагностики та [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
- Встановіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски монітору стану.
- `channelStaleEventThresholdMinutes` має бути більшим або рівним інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу або облікового запису без вимкнення глобального моніторингу.
- Див. [Health Checks](/uk/gateway/health) для операційного налагодження та [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
</Accordion>
<Accordion title="Налаштувати сесії та скидання">
Сесії керують безперервністю розмови та ізоляцією:
<Accordion title="Налаштувати сеанси та скидання">
Сеанси керують безперервністю розмови та ізоляцією:
```json5
{
@ -302,14 +303,14 @@ 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) щодо області дії, зв’язків ідентичностей і політики надсилання.
- `threadBindings`: глобальні значення за замовчуванням для маршрутизації сеансів, прив’язаних до гілок (Discord підтримує `/focus`, `/unfocus`, `/agents`, `/session idle` і `/session max-age`).
- Див. [Керування сеансами](/uk/concepts/session) щодо області видимості, зв’язків ідентичності та політики надсилання.
- Див. [повний довідник](/uk/gateway/configuration-reference#session) для всіх полів.
</Accordion>
<Accordion title="Увімкнути ізоляцію">
Запускайте сесії агентів в ізольованих середовищах sandbox:
Запускайте сеанси агента в ізольованих середовищах sandbox:
```json5
{
@ -326,14 +327,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="Увімкнути push через relay для офіційних збірок iOS">
Push через relay налаштовується в `openclaw.json`.
Вкажіть це в конфігурації gateway:
Установіть це в конфігурації gateway:
```json5
{
@ -342,7 +343,7 @@ JSON.
apns: {
relay: {
baseUrl: "https://relay.example.com",
// Необов’язково. Типове значення: 10000
// Необов’язково. Типово: 10000
timeoutMs: 10000,
},
},
@ -359,35 +360,35 @@ JSON.
Що це робить:
- Дозволяє gateway надсилати `push.test`, сигнали пробудження та пробудження для повторного підключення через зовнішній relay.
- Використовує дозвіл на надсилання в межах реєстрації, який пересилається спареним застосунком iOS. Gateway не потребує relay-токена для всього розгортання.
- Прив’язує кожну реєстрацію через relay до ідентичності gateway, з якою було спарено застосунок iOS, тому інший gateway не може повторно використати збережену реєстрацію.
- Залишає локальні/ручні збірки iOS на прямих APNs. Надсилання через relay застосовується лише до офіційно поширюваних збірок, що зареєстровані через 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 і квитанції застосунку, а потім публікує payload `push.apns.register` через relay на спарений gateway.
5. Gateway зберігає дескриптор relay і дозвіл на надсилання, а потім використовує їх для `push.test`, сигналів пробудження та пробуджень для повторного підключення.
2. Налаштуйте `gateway.push.apns.relay.baseUrl` у gateway.
3. Спарте застосунок iOS із gateway і дозвольте підключитися сеансам node та оператора.
4. Застосунок iOS отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції застосунку, а потім публікує корисне навантаження `push.apns.register` через relay до спареного gateway.
5. Gateway зберігає дескриптор relay і грант надсилання, а потім використовує їх для `push.test`, сигналів пробудження та повторного підключення.
Операційні примітки:
- Якщо ви перемикаєте застосунок iOS на інший gateway, перепідключіть застосунок, щоб він міг опублікувати нову реєстрацію relay, прив’язану до цього gateway.
- Якщо ви випускаєте нову збірку iOS, яка вказує на інше розгортання relay, застосунок оновлює свій кешований запис реєстрації relay замість повторного використання старого джерела relay.
- Якщо ви перемкнете застосунок 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; не зберігайте URL relay з HTTP у конфігурації.
Див. [iOS App](/uk/platforms/ios#relay-backed-push-for-official-builds) для наскрізного процесу та [Authentication and trust flow](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
Див. [застосунок iOS](/uk/platforms/ios#relay-backed-push-for-official-builds) для наскрізного процесу та [Потік автентифікації й довіри](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
</Accordion>
<Accordion title="Налаштувати Heartbeat (періодичні перевірки зв’язку)">
<Accordion title="Налаштувати Heartbeat (періодичні перевірки)">
```json5
{
agents: {
@ -403,12 +404,12 @@ JSON.
- `every`: рядок тривалості (`30m`, `2h`). Установіть `0m`, щоб вимкнути.
- `target`: `last` | `none` | `<channel-id>` (наприклад, `discord`, `matrix`, `telegram` або `whatsapp`)
- `directPolicy`: `allow` (типово) або `block` для цілей Heartbeat у стилі DM
- `directPolicy`: `allow` (типово) або `block` для цілей Heartbeat у стилі особистих повідомлень
- Див. [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
</Accordion>
<Accordion title="Налаштувати завдання Cron">
<Accordion title="Налаштувати Cron jobs">
```json5
{
cron: {
@ -423,14 +424,14 @@ JSON.
}
```
- `sessionRetention`: очищає завершені ізольовані сесії запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищає `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Див. [Завдання Cron](/uk/automation/cron-jobs) для огляду функції та прикладів CLI.
- `sessionRetention`: видаляти завершені ізольовані сеанси запуску з `sessions.json` (типово `24h`; установіть `false`, щоб вимкнути).
- `runLog`: очищати `cron/runs/<jobId>.jsonl` за розміром і кількістю рядків, що зберігаються.
- Див. [Cron jobs](/uk/automation/cron-jobs) для огляду можливостей і прикладів CLI.
</Accordion>
<Accordion title="Налаштувати Webhook (хуки)">
Увімкніть HTTP-ендпоїнти Webhook на Gateway:
<Accordion title="Налаштувати Webhook (hooks)">
Увімкніть HTTP-ендпоїнти Webhook у Gateway:
```json5
{
@ -454,20 +455,20 @@ JSON.
```
Примітка щодо безпеки:
- Увесь вміст payload hook/webhook слід вважати недовіреним введенням.
- Використовуйте окремий `hooks.token`; не використовуйте спільний токен Gateway повторно.
- Автентифікація hook виконується лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в рядку запиту відхиляються.
- `hooks.path` не може бути `/`; використовуйте для вхідних webhook окремий підшлях, наприклад `/hooks`.
- Не вмикайте прапорці обходу небезпечного вмісту (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте вузькоспрямоване налагодження.
- Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також задайте `hooks.allowedSessionKeyPrefixes`, щоб обмежити вибір ключів сесії з боку викликача.
- Для агентів, керованих hook, віддавайте перевагу сильним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс sandboxing, де це можливо).
- Вважайте весь вміст корисного навантаження hook/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) для всіх параметрів зіставлення та інтеграції Gmail.
</Accordion>
<Accordion title="Налаштувати маршрутизацію між кількома агентами">
Запускайте кількох ізольованих агентів з окремими робочими просторами та сесіями:
Запускайте кілька ізольованих агентів з окремими робочими просторами та сеансами:
```json5
{
@ -502,12 +503,12 @@ JSON.
}
```
- **Один файл**: замінює об’єкт, що містить його
- **Масив файлів**: об’єднується deep-merge за порядком (пізніші мають пріоритет)
- **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файлу, що включає
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок розбору та циклічних includes
- **Один файл**: замінює об’єкт, у якому міститься
- **Масив файлів**: об’єднується через deep-merge у вказаному порядку (пізніші мають пріоритет)
- **Сусідні ключі**: об’єднуються після include (перевизначають включені значення)
- **Вкладені include**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файла, який включає
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних include
</Accordion>
</AccordionGroup>
@ -516,27 +517,27 @@ JSON.
Gateway відстежує `~/.openclaw/openclaw.json` і автоматично застосовує зміни — для більшості налаштувань ручний перезапуск не потрібен.
Прямі редагування файлу вважаються недовіреними, доки не пройдуть валідацію. Спостерігач чекає,
поки вщухне тимчасовий запис/перейменування з боку редактора, читає остаточний файл і відхиляє
некоректні зовнішні редагування, відновлюючи останню відому справну конфігурацію. Записи конфігурації,
виконані самим OpenClaw, проходять ту саму перевірку схеми перед записом; руйнівні перезаписи,
Прямі зміни файлу вважаються недовіреними, доки не пройдуть валідацію. Спостерігач чекає,
поки завершаться тимчасові записи/перейменування редактора, читає остаточний файл і відхиляє
недійсні зовнішні зміни, відновлюючи останню коректну конфігурацію. Записи конфігурації,
виконані самим OpenClaw, використовують ту саму схему перевірки перед записом; руйнівні перезаписи,
наприклад видалення `gateway.mode` або зменшення файлу більш ніж удвічі, відхиляються
і зберігаються як `.rejected.*` для перевірки.
Якщо ви бачите в журналах `Config auto-restored from last-known-good` або
`config reload restored last-known-good config`, перевірте відповідний файл
`.clobbered.*` поруч із `openclaw.json`, виправте відхилений payload, а потім виконайте
`openclaw config validate`. Див. [усунення несправностей Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
Якщо ви бачите `Config auto-restored from last-known-good` або
`config reload restored last-known-good config` у журналах, перегляньте відповідний
файл `.clobbered.*` поруч із `openclaw.json`, виправте відхилене корисне навантаження, а потім виконайте
`openclaw config validate`. Див. [Усунення проблем Gateway](/uk/gateway/troubleshooting#gateway-restored-last-known-good-config)
для контрольного списку відновлення.
### Режими перезавантаження
| Режим | Поведінка |
| ---------------------- | ---------------------------------------------------------------------------------------- |
| **`hybrid`** (типово) | Безпечно застосовує зміни гарячим способом миттєво. Автоматично перезапускається для критичних змін. |
| **`hot`** | Гарячим способом застосовує лише безпечні зміни. Записує попередження, коли потрібен перезапуск — ви виконуєте його самі. |
| **`restart`** | Перезапускає Gateway за будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набудуть чинності під час наступного ручного перезапуску. |
| **`hybrid`** (типово) | Миттєво гаряче застосовує безпечні зміни. Автоматично перезапускається для критичних. |
| **`hot`** | Гаряче застосовує лише безпечні зміни. Логує попередження, коли потрібен перезапуск — ви обробляєте це самі. |
| **`restart`** | Перезапускає Gateway при будь-якій зміні конфігурації, безпечній чи ні. |
| **`off`** | Вимикає відстеження файлу. Зміни набувають чинності при наступному ручному перезапуску. |
```json5
{
@ -546,46 +547,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` | Ні |
| Сеанси й повідомлення | `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 керувальної площини для запису (`config.apply`, `config.patch`, `update.run`) мають обмеження частоти: **3 запити за 60 секунд** для кожної пари `deviceId+clientIp`. Якщо ліміт перевищено, RPC повертає `UNAVAILABLE` з `retryAfterMs`.
RPC control plane для запису (`config.apply`, `config.patch`, `update.run`) мають обмеження швидкості: **3 запити за 60 секунд** на `deviceId+clientIp`. При спрацюванні обмеження RPC повертає `UNAVAILABLE` з `retryAfterMs`.
</Note>
Безпечний/типовий процес:
- `config.schema.lookup`: перевірити одне піддерево конфігурації для заданого шляху з неглибоким
вузлом схеми, відповідними метаданими підказок і стислими описами безпосередніх дочірніх елементів
- `config.schema.lookup`: перевірити одне піддерево конфігурації, обмежене шляхом, з поверхневим
вузлом схеми, відповідними метаданими підказок і підсумками безпосередніх дочірніх елементів
- `config.get`: отримати поточний знімок + хеш
- `config.patch`: бажаний шлях для часткового оновлення
- `config.patch`: бажаний шлях часткового оновлення
- `config.apply`: лише повна заміна конфігурації
- `update.run`: явне самооновлення + перезапуск
Якщо ви не замінюєте всю конфігурацію, віддавайте перевагу `config.schema.lookup`,
Коли ви не замінюєте всю конфігурацію, надавайте перевагу `config.schema.lookup`,
а потім `config.patch`.
<AccordionGroup>
<Accordion title="config.apply (повна заміна)">
Перевіряє, записує повну конфігурацію та перезапускає Gateway за один крок.
Перевіряє + записує повну конфігурацію та перезапускає Gateway за один крок.
<Warning>
`config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
@ -593,13 +594,13 @@ RPC керувальної площини для запису (`config.apply`, `
Параметри:
- `raw` (string) — payload JSON5 для всієї конфігурації
- `baseHash` (необов’язково) — хеш конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (необов’язково) — ключ сесії для сигналу пробудження після перезапуску
- `note` (необов’язково) — примітка для маркера перезапуску
- `restartDelayMs` (необов’язково) — затримка перед перезапуском (типово 2000)
- `raw` (string) — корисне навантаження JSON5 для всієї конфігурації
- `baseHash` (optional) — хеш конфігурації з `config.get` (обов’язковий, якщо конфігурація існує)
- `sessionKey` (optional) — ключ сеансу для ping пробудження після перезапуску
- `note` (optional) — примітка для sentinel перезапуску
- `restartDelayMs` (optional) — затримка перед перезапуском (типово 2000)
Запити на перезапуск об’єднуються, якщо один уже очікує або виконується, а між циклами перезапуску діє 30-секундна пауза.
Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє 30-секундний період охолодження.
```bash
openclaw gateway call config.get --params '{}' # capture payload.hash
@ -621,11 +622,11 @@ RPC керувальної площини для запису (`config.apply`, `
Параметри:
- `raw` (string) — JSON5 лише з тими ключами, які потрібно змінити
- `baseHash` (обов’язково) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — ті самі, що й у `config.apply`
- `raw` (string) — JSON5 лише з ключами, які потрібно змінити
- `baseHash` (required) — хеш конфігурації з `config.get`
- `sessionKey`, `note`, `restartDelayMs` — такі самі, як у `config.apply`
Поведінка перезапуску збігається з `config.apply`: об’єднання очікуваних перезапусків плюс 30-секундна пауза між циклами перезапуску.
Поведінка перезапуску збігається з `config.apply`: об’єднання відкладених перезапусків і 30-секундний період охолодження між циклами перезапуску.
```bash
openclaw gateway call config.patch --params '{
@ -639,12 +640,12 @@ RPC керувальної площини для запису (`config.apply`, `
## Змінні середовища
OpenClaw зчитує змінні середовища з батьківського процесу, а також з:
OpenClaw читає змінні середовища з батьківського процесу, а також з:
- `.env` з поточного робочого каталогу (якщо є)
- `.env` у поточному робочому каталозі (якщо є)
- `~/.openclaw/.env` (глобальний резервний варіант)
Жоден із цих файлів не перевизначає наявні змінні середовища. Ви також можете задавати вбудовані змінні середовища в конфігурації:
Жоден із цих файлів не перевизначає вже наявні змінні середовища. Ви також можете встановлювати вбудовані змінні середовища в конфігурації:
```json5
{
@ -656,7 +657,7 @@ OpenClaw зчитує змінні середовища з батьківськ
```
<Accordion title="Імпорт shell env (необов’язково)">
Якщо цю функцію ввімкнено й очікувані ключі не задано, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
Якщо це ввімкнено й очікувані ключі не встановлені, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@ -666,7 +667,7 @@ OpenClaw зчитує змінні середовища з батьківськ
}
```
Еквівалент змінної середовища: `OPENCLAW_LOAD_SHELL_ENV=1`
Еквівалент через env var: `OPENCLAW_LOAD_SHELL_ENV=1`
</Accordion>
<Accordion title="Підстановка env var у значеннях конфігурації">
@ -681,16 +682,16 @@ OpenClaw зчитує змінні середовища з батьківськ
Правила:
- Зіставляються лише назви у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні змінні викликають помилку під час завантаження
- Використовуйте `$${VAR}` для виведення літерала
- Збігаються лише назви у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
- Відсутні/порожні змінні спричиняють помилку під час завантаження
- Екрануйте через `$${VAR}` для буквального виводу
- Працює всередині файлів `$include`
- Вбудована підстановка: `"${BASE}/v1"``"https://api.example.com/v1"`
</Accordion>
<Accordion title="Посилання на секрети (env, file, exec)">
Для полів, які підтримують об’єкти SecretRef, можна використовувати:
Для полів, що підтримують об’єкти SecretRef, можна використовувати:
```json5
{
@ -723,15 +724,15 @@ OpenClaw зчитує змінні середовища з батьківськ
```
Докладніше про SecretRef (включно з `secrets.providers` для `env`/`file`/`exec`) див. у [Керування секретами](/uk/gateway/secrets).
Підтримувані шляхи облікових даних наведено в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
Підтримувані шляхи облікових даних перелічено в [Поверхня облікових даних SecretRef](/uk/reference/secretref-credential-surface).
</Accordion>
Див. [Середовище](/uk/help/environment) для повного опису пріоритетів і джерел.
Див. [Середовище](/uk/help/environment) для повного порядку пріоритетів і джерел.
## Повний довідник
Повний довідник для кожного поля див. в **[Довіднику конфігурації](/uk/gateway/configuration-reference)**.
Повний довідник по полях див. у **[Довідник із конфігурації](/uk/gateway/configuration-reference)**.
---
овязане: [Приклади конфігурації](/uk/gateway/configuration-examples) · [Довідник конфігурації](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_
овязане: [Приклади конфігурації](/uk/gateway/configuration-examples) · [Довідник із конфігурації](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_