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