diff --git a/docs/uk/gateway/configuration.md b/docs/uk/gateway/configuration.md
index 3d19307d1..63479c708 100644
--- a/docs/uk/gateway/configuration.md
+++ b/docs/uk/gateway/configuration.md
@@ -1,15 +1,15 @@
---
read_when:
- - Налаштування OpenClaw уперше
- - Пошук типових шаблонів конфігурації
- - Навігація до певних розділів конфігурації
-summary: 'Огляд конфігурації: типові завдання, швидке налаштування та посилання на повний довідник'
+ - Перше налаштування OpenClaw
+ - Пошук поширених шаблонів конфігурації
+ - Перехід до конкретних розділів конфігурації
+summary: 'Огляд конфігурації: поширені завдання, швидке налаштування та посилання на повний довідник'
title: Конфігурація
x-i18n:
- generated_at: "2026-04-05T18:03:50Z"
+ generated_at: "2026-04-08T05:15:04Z"
model: gpt-5.4
provider: openai
- source_hash: a39a7de09c5f9540785ec67f37d435a7a86201f0f5f640dae663054f35976712
+ source_hash: 199a1e515bd4003319e71593a2659bb883299a76ff67e273d92583df03c96604
source_path: gateway/configuration.md
workflow: 15
---
@@ -18,16 +18,16 @@ x-i18n:
OpenClaw читає необов’язкову конфігурацію **JSON5** з `~/.openclaw/openclaw.json`.
-Якщо файл відсутній, OpenClaw використовує безпечні типові значення. Типові причини додати конфігурацію:
+Якщо файл відсутній, OpenClaw використовує безпечні значення за замовчуванням. Поширені причини додати конфігурацію:
- Підключити канали та визначити, хто може надсилати повідомлення боту
-- Задати моделі, інструменти, sandboxing або автоматизацію (cron, hooks)
+- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (cron, hooks)
- Налаштувати сесії, медіа, мережу або UI
-Усі доступні поля див. у [повному довіднику](/gateway/configuration-reference).
+Див. [повний довідник](/uk/gateway/configuration-reference) для всіх доступних полів.
-**Вперше працюєте з конфігурацією?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/gateway/configuration-examples) з готовими повними конфігураціями для копіювання.
+**Новачок у конфігурації?** Почніть із `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) із готовими повними конфігураціями для копіювання.
## Мінімальна конфігурація
@@ -45,8 +45,8 @@ OpenClaw читає необов’язкову конфігурацію
```bash
- openclaw onboard # full onboarding flow
- openclaw configure # config wizard
+ openclaw onboard # повний процес початкового налаштування
+ openclaw configure # майстер конфігурації
```
@@ -58,63 +58,67 @@ OpenClaw читає необов’язкову конфігурацію
Відкрийте [http://127.0.0.1:18789](http://127.0.0.1:18789) і використовуйте вкладку **Config**.
- Control UI рендерить форму з live-схеми конфігурації, включно з метаданими документації полів
- `title` / `description`, а також схемами plugins і каналів, коли вони
- доступні, з редактором **Raw JSON** як запасним варіантом. Для UI з деталізацією
- та інших інструментів gateway також надає `config.schema.lookup`, щоб
- отримувати один вузол схеми, обмежений шляхом, і зведення для безпосередніх дочірніх елементів.
+ Control UI відображає форму на основі актуальної схеми конфігурації, зокрема метадані документації полів
+ `title` / `description`, а також схеми plugins і каналів, коли вони
+ доступні, із редактором **Raw JSON** як запасним варіантом. Для деталізованих
+ UI та інших інструментів gateway також надає `config.schema.lookup`, щоб
+ отримати один вузол схеми, обмежений шляхом, разом із короткими зведеннями безпосередніх дочірніх елементів.
- Редагуйте `~/.openclaw/openclaw.json` безпосередньо. Gateway стежить за файлом і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
+ Відредагуйте `~/.openclaw/openclaw.json` напряму. Gateway стежить за файлом і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
## Сувора валідація
-OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, неправильні типи або недійсні значення змушують Gateway **відмовитися від запуску**. Єдиний виняток на кореневому рівні — `$schema` (string), щоб редактори могли підключати метадані JSON Schema.
+OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли додавати метадані JSON Schema.
-Примітки щодо інструментів схем:
+Примітки щодо інструментів схеми:
- `openclaw config schema` виводить ту саму сім’ю JSON Schema, яку використовують Control UI
і валідація конфігурації.
+- Вважайте цей вивід схеми канонічним машинозчитуваним контрактом для
+ `openclaw.json`; цей огляд і довідник конфігурації її узагальнюють.
- Значення полів `title` і `description` переносяться у вивід схеми для
- інструментів редакторів і форм.
-- Вкладені об’єкти, wildcard-записи (`*`) і записи елементів масиву (`[]`) успадковують ті самі
- метадані документації, коли існує відповідна документація поля.
-- Гілки композиції `anyOf` / `oneOf` / `allOf` також успадковують ті самі
- метадані документації, тому варіанти union/intersection зберігають ту саму довідку по полях.
+ редакторів і формових інструментів.
+- Вкладені об’єкти, записи з шаблоном (`*`) і елементи масивів (`[]`) успадковують ті самі
+ метадані документації там, де існує відповідна документація поля.
+- Гілки композицій `anyOf` / `oneOf` / `allOf` також успадковують ті самі
+ метадані документації, тож варіанти union/intersection зберігають ту саму довідку для поля.
- `config.schema.lookup` повертає один нормалізований шлях конфігурації з неглибоким
- вузлом схеми (`title`, `description`, `type`, `enum`, `const`, типові обмеження
- та подібні поля валідації), підібраними метаданими UI hints і зведеннями для безпосередніх дочірніх
- елементів для інструментів drill-down.
-- Runtime-схеми plugins/каналів об’єднуються, коли gateway може завантажити
+ вузлом схеми (`title`, `description`, `type`, `enum`, `const`, поширені межі
+ та подібні поля валідації), відповідними метаданими UI-підказок і короткими зведеннями безпосередніх дочірніх
+ елементів для інструментів деталізації.
+- Схеми plugins/каналів під час виконання додаються через злиття, коли gateway може завантажити
поточний реєстр маніфестів.
+- `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`), щоб застосувати виправлення
-## Типові завдання
+## Поширені завдання
-
- Кожен канал має власний розділ конфігурації під `channels.`. Кроки налаштування див. на окремій сторінці каналу:
+
+ Кожен канал має власний розділ конфігурації в `channels.`. Див. окрему сторінку каналу для кроків налаштування:
- - [WhatsApp](/channels/whatsapp) — `channels.whatsapp`
- - [Telegram](/channels/telegram) — `channels.telegram`
- - [Discord](/channels/discord) — `channels.discord`
- - [Feishu](/channels/feishu) — `channels.feishu`
- - [Google Chat](/channels/googlechat) — `channels.googlechat`
- - [Microsoft Teams](/channels/msteams) — `channels.msteams`
- - [Slack](/channels/slack) — `channels.slack`
- - [Signal](/channels/signal) — `channels.signal`
- - [iMessage](/channels/imessage) — `channels.imessage`
- - [Mattermost](/channels/mattermost) — `channels.mattermost`
+ - [WhatsApp](/uk/channels/whatsapp) — `channels.whatsapp`
+ - [Telegram](/uk/channels/telegram) — `channels.telegram`
+ - [Discord](/uk/channels/discord) — `channels.discord`
+ - [Feishu](/uk/channels/feishu) — `channels.feishu`
+ - [Google Chat](/uk/channels/googlechat) — `channels.googlechat`
+ - [Microsoft Teams](/uk/channels/msteams) — `channels.msteams`
+ - [Slack](/uk/channels/slack) — `channels.slack`
+ - [Signal](/uk/channels/signal) — `channels.signal`
+ - [iMessage](/uk/channels/imessage) — `channels.imessage`
+ - [Mattermost](/uk/channels/mattermost) — `channels.mattermost`
Усі канали використовують однаковий шаблон політики DM:
@@ -125,7 +129,7 @@ OpenClaw приймає лише конфігурації, які повніст
enabled: true,
botToken: "123:abc",
dmPolicy: "pairing", // pairing | allowlist | open | disabled
- allowFrom: ["tg:123"], // only for allowlist/open
+ allowFrom: ["tg:123"], // лише для allowlist/open
},
},
}
@@ -133,8 +137,8 @@ OpenClaw приймає лише конфігурації, які повніст
-
- Задайте основну модель і необов’язкові резервні варіанти:
+
+ Налаштуйте основну модель і необов’язкові резервні:
```json5
{
@@ -153,30 +157,30 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- - `agents.defaults.models` визначає каталог моделей і слугує allowlist для `/model`.
- - Посилання на моделі використовують формат `provider/model` (наприклад `anthropic/claude-opus-4-6`).
- - `agents.defaults.imageMaxDimensionPx` керує зменшенням розміру зображень у транскриптах/інструментах (типово `1200`); менші значення зазвичай зменшують використання vision-token у запусках з великою кількістю скриншотів.
- - Перемикання моделей у чаті див. у [Models CLI](/concepts/models), а ротацію auth і поведінку резервних варіантів — у [Model Failover](/concepts/model-failover).
- - Для кастомних/self-hosted провайдерів див. [Custom providers](/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
+ - `agents.defaults.models` визначає каталог моделей і діє як allowlist для `/model`.
+ - Посилання на моделі використовують формат `provider/model` (наприклад, `anthropic/claude-opus-4-6`).
+ - `agents.defaults.imageMaxDimensionPx` керує зменшенням розміру зображень у стенограмах/інструментах (типове значення `1200`); нижчі значення зазвичай зменшують використання vision-token у сесіях із великою кількістю знімків екрана.
+ - Див. [Models CLI](/uk/concepts/models) для перемикання моделей у чаті та [Model Failover](/uk/concepts/model-failover) для ротації автентифікації й поведінки резервного перемикання.
+ - Для користувацьких/self-hosted providers див. [Custom providers](/uk/gateway/configuration-reference#custom-providers-and-base-urls) у довіднику.
-
- Доступ до DM керується для кожного каналу через `dmPolicy`:
+
+ Доступ до DM керується окремо для кожного каналу через `dmPolicy`:
- - `"pairing"` (типово): невідомі відправники отримують одноразовий код pairing для схвалення
+ - `"pairing"` (типово): невідомі відправники отримують одноразовий код pairing для підтвердження
- `"allowlist"`: лише відправники з `allowFrom` (або зі сховища paired allow)
- `"open"`: дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`)
- `"disabled"`: ігнорувати всі DM
- Для груп використовуйте `groupPolicy` + `groupAllowFrom` або allowlist, специфічні для каналу.
+ Для груп використовуйте `groupPolicy` + `groupAllowFrom` або allowlists, специфічні для каналу.
- Докладніше для кожного каналу див. у [повному довіднику](/gateway/configuration-reference#dm-and-group-access).
+ Див. [повний довідник](/uk/gateway/configuration-reference#dm-and-group-access) для деталей по кожному каналу.
-
- Для групових повідомлень типово **потрібне згадування**. Налаштуйте шаблони для кожного агента:
+
+ Для групових повідомлень типово **потрібна згадка**. Налаштуйте шаблони для кожного агента:
```json5
{
@@ -198,15 +202,15 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- - **Метадані згадувань**: нативні @-згадування (WhatsApp tap-to-mention, Telegram @bot тощо)
- - **Текстові шаблони**: безпечні regex-шаблони в `mentionPatterns`
- - Перевизначення для окремих каналів і режим self-chat див. у [повному довіднику](/gateway/configuration-reference#group-chat-mention-gating).
+ - **Metadata mentions**: нативні @-згадування (WhatsApp tap-to-mention, Telegram @bot тощо)
+ - **Text patterns**: безпечні regex-шаблони в `mentionPatterns`
+ - Див. [повний довідник](/uk/gateway/configuration-reference#group-chat-mention-gating) для перевизначень по каналах і режиму self-chat.
-
- Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте конкретні
- агенти через `agents.list[].skills`:
+
+ Використовуйте `agents.defaults.skills` для спільної базової конфігурації, а потім перевизначайте конкретних
+ агентів через `agents.list[].skills`:
```json5
{
@@ -215,23 +219,23 @@ OpenClaw приймає лише конфігурації, які повніст
skills: ["github", "weather"],
},
list: [
- { id: "writer" }, // inherits github, weather
- { id: "docs", skills: ["docs-search"] }, // replaces defaults
- { id: "locked-down", skills: [] }, // no skills
+ { id: "writer" }, // успадковує github, weather
+ { id: "docs", skills: ["docs-search"] }, // замінює значення за замовчуванням
+ { id: "locked-down", skills: [] }, // без Skills
],
},
}
```
- - Не задавайте `agents.defaults.skills`, щоб типово мати необмежені Skills.
- - Не задавайте `agents.list[].skills`, щоб успадковувати типові значення.
- - Задайте `agents.list[].skills: []`, щоб не мати Skills.
- - Див. [Skills](/tools/skills), [Skills config](/tools/skills-config) і
- [Довідник конфігурації](/gateway/configuration-reference#agentsdefaultsskills).
+ - Не вказуйте `agents.defaults.skills`, якщо типово Skills мають бути без обмежень.
+ - Не вказуйте `agents.list[].skills`, щоб успадкувати значення за замовчуванням.
+ - Встановіть `agents.list[].skills: []`, щоб не було жодних Skills.
+ - Див. [Skills](/uk/tools/skills), [конфігурація Skills](/uk/tools/skills-config) і
+ [Довідник конфігурації](/uk/gateway/configuration-reference#agentsdefaultsskills).
-
+
Керуйте тим, наскільки агресивно gateway перезапускає канали, які виглядають застарілими:
```json5
@@ -254,20 +258,20 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- - Задайте `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски за health-monitor.
- - `channelStaleEventThresholdMinutes` має бути більшим або рівним інтервалу перевірки.
- - Використовуйте `channels..healthMonitor.enabled` або `channels..accounts..healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу або облікового запису без вимкнення глобального монітора.
- - Для операційного налагодження див. [Health Checks](/gateway/health), а всі поля — у [повному довіднику](/gateway/configuration-reference#gateway).
+ - Встановіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски health-monitor.
+ - `channelStaleEventThresholdMinutes` має бути більшим або дорівнювати інтервалу перевірки.
+ - Використовуйте `channels..healthMonitor.enabled` або `channels..accounts..healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу чи облікового запису без вимкнення глобального монітора.
+ - Див. [Health Checks](/uk/gateway/health) для операційного налагодження та [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
-
- Сесії керують безперервністю розмови та ізоляцією:
+
+ Сесії керують безперервністю та ізоляцією розмов:
```json5
{
session: {
- dmScope: "per-channel-peer", // recommended for multi-user
+ dmScope: "per-channel-peer", // рекомендовано для багатьох користувачів
threadBindings: {
enabled: true,
idleHours: 24,
@@ -282,15 +286,15 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- - `dmScope`: `main` (shared) | `per-peer` | `per-channel-peer` | `per-account-channel-peer`
- - `threadBindings`: глобальні типові значення для маршрутизації сесій, прив’язаних до thread (Discord підтримує `/focus`, `/unfocus`, `/agents`, `/session idle` і `/session max-age`).
- - Про області видимості, зв’язки ідентичності та політику надсилання див. [Керування сесіями](/concepts/session).
- - Усі поля див. в [повному довіднику](/gateway/configuration-reference#session).
+ - `dmScope`: `main` (спільна) | `per-peer` | `per-channel-peer` | `per-account-channel-peer`
+ - `threadBindings`: глобальні значення за замовчуванням для маршрутизації сесій, прив’язаних до гілок (Discord підтримує `/focus`, `/unfocus`, `/agents`, `/session idle` і `/session max-age`).
+ - Див. [Керування сесіями](/uk/concepts/session) для області дії, зв’язків ідентичностей і політики надсилання.
+ - Див. [повний довідник](/uk/gateway/configuration-reference#session) для всіх полів.
-
- Запускайте сесії агентів в ізольованих Docker-контейнерах:
+
+ Запускайте сесії агентів в ізольованих контейнерах Docker:
```json5
{
@@ -307,14 +311,14 @@ OpenClaw приймає лише конфігурації, які повніст
Спочатку зберіть образ: `scripts/sandbox-setup.sh`
- Повний посібник див. у [Sandboxing](/gateway/sandboxing), а всі параметри — у [повному довіднику](/gateway/configuration-reference#agentsdefaultssandbox).
+ Див. [Sandboxing](/uk/gateway/sandboxing) для повного посібника та [повний довідник](/uk/gateway/configuration-reference#agentsdefaultssandbox) для всіх параметрів.
-
+
Push через relay налаштовується в `openclaw.json`.
- Задайте це в конфігурації gateway:
+ Додайте це до конфігурації gateway:
```json5
{
@@ -323,7 +327,7 @@ OpenClaw приймає лише конфігурації, які повніст
apns: {
relay: {
baseUrl: "https://relay.example.com",
- // Optional. Default: 10000
+ // Необов’язково. Типове значення: 10000
timeoutMs: 10000,
},
},
@@ -338,37 +342,37 @@ OpenClaw приймає лише конфігурації, які повніст
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
```
- Що це дає:
+ Що це робить:
- - Дає gateway змогу надсилати `push.test`, wake-поштовхи та reconnect wakes через зовнішній relay.
- - Використовує грант надсилання в межах реєстрації, який пересилає спарений застосунок iOS. Gateway не потрібен relay-token для всього розгортання.
- - Прив’язує кожну реєстрацію через relay до ідентичності gateway, з якою спарився застосунок iOS, тому інший gateway не може повторно використати збережену реєстрацію.
- - Залишає локальні/ручні збірки iOS на прямих APNs. Надсилання через relay застосовується лише до офіційних поширених збірок, які зареєструвалися через relay.
- - Має збігатися з базовим URL relay, вбудованим в офіційну/TestFlight збірку iOS, щоб трафік реєстрації та надсилання потрапляв на той самий розгорнутий relay.
+ - Дозволяє gateway надсилати `push.test`, сигнали пробудження та пробудження для повторного підключення через зовнішній relay.
+ - Використовує право надсилання, прив’язане до реєстрації, яке пересилає paired iOS app. Gateway не потребує relay-токена рівня всього розгортання.
+ - Прив’язує кожну реєстрацію через relay до ідентичності gateway, з якою було paired iOS app, тому інший gateway не може повторно використати збережену реєстрацію.
+ - Залишає локальні/ручні збірки iOS на прямому APNs. Надсилання через relay застосовується лише до офіційних розповсюджуваних збірок, що зареєструвалися через relay.
+ - Має збігатися з базовим URL relay, вбудованим в офіційну/TestFlight збірку iOS, щоб трафік реєстрації та надсилання потрапляв до одного й того самого розгортання relay.
- End-to-end потік:
+ Повний потік роботи:
1. Встановіть офіційну/TestFlight збірку iOS, скомпільовану з тим самим базовим URL relay.
2. Налаштуйте `gateway.push.apns.relay.baseUrl` на gateway.
- 3. Спаріть застосунок iOS із gateway і дочекайтеся підключення сесій node та operator.
- 4. Застосунок iOS отримує ідентичність gateway, реєструється в relay через App Attest і app receipt, а потім публікує relay-backed payload `push.apns.register` у спарений gateway.
- 5. Gateway зберігає relay handle і send grant, а потім використовує їх для `push.test`, wake-поштовхів і reconnect wakes.
+ 3. Виконайте pairing iOS app із gateway і дочекайтеся підключення сесій вузла й оператора.
+ 4. iOS app отримує ідентичність gateway, реєструється в relay за допомогою App Attest і квитанції app, а потім публікує payload `push.apns.register` через relay до paired gateway.
+ 5. Gateway зберігає relay handle і право надсилання, а потім використовує їх для `push.test`, сигналів пробудження й пробуджень повторного підключення.
Операційні примітки:
- - Якщо ви переключите застосунок iOS на інший gateway, перепідключіть застосунок, щоб він міг опублікувати нову relay-реєстрацію, прив’язану до цього gateway.
- - Якщо ви випустите нову збірку iOS, яка вказує на інше розгортання relay, застосунок оновить кешовану relay-реєстрацію замість повторного використання старого relay origin.
+ - Якщо ви перемикаєте iOS app на інший gateway, перепідключіть app, щоб воно могло опублікувати нову реєстрацію relay, прив’язану до цього gateway.
+ - Якщо ви випускаєте нову збірку iOS, що вказує на інше розгортання relay, app оновлює кешовану реєстрацію relay замість повторного використання старого походження relay.
Примітка щодо сумісності:
- - `OPENCLAW_APNS_RELAY_BASE_URL` і `OPENCLAW_APNS_RELAY_TIMEOUT_MS` і далі працюють як тимчасові перевизначення через env.
- - `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` залишається loopback-only аварійним варіантом для dev; не зберігайте HTTP relay URL у конфігурації.
+ - `OPENCLAW_APNS_RELAY_BASE_URL` і `OPENCLAW_APNS_RELAY_TIMEOUT_MS` усе ще працюють як тимчасові env-перевизначення.
+ - `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true` залишається лише для loopback як шлях обходу в середовищі розробки; не зберігайте HTTP URL relay у конфігурації.
- End-to-end потік див. у [iOS App](/platforms/ios#relay-backed-push-for-official-builds), а модель безпеки relay — у [Потік автентифікації та довіри](/platforms/ios#authentication-and-trust-flow).
+ Див. [iOS App](/uk/platforms/ios#relay-backed-push-for-official-builds) для повного потоку й [Authentication and trust flow](/uk/platforms/ios#authentication-and-trust-flow) для моделі безпеки relay.
-
+
```json5
{
agents: {
@@ -382,14 +386,14 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- - `every`: рядок тривалості (`30m`, `2h`). Задайте `0m`, щоб вимкнути.
- - `target`: `last` | `none` | `` (наприклад `discord`, `matrix`, `telegram` або `whatsapp`)
+ - `every`: рядок тривалості (`30m`, `2h`). Встановіть `0m`, щоб вимкнути.
+ - `target`: `last` | `none` | `` (наприклад, `discord`, `matrix`, `telegram` або `whatsapp`)
- `directPolicy`: `allow` (типово) або `block` для heartbeat-цілей у стилі DM
- - Повний посібник див. у [Heartbeat](/gateway/heartbeat).
+ - Див. [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
-
+
```json5
{
cron: {
@@ -404,14 +408,14 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- - `sessionRetention`: очищення завершених ізольованих сесій запусків із `sessions.json` (типово `24h`; задайте `false`, щоб вимкнути).
- - `runLog`: очищення `cron/runs/.jsonl` за розміром і кількістю збережених рядків.
- - Огляд функцій і приклади CLI див. у [Cron jobs](/automation/cron-jobs).
+ - `sessionRetention`: очищати завершені ізольовані сесії запуску з `sessions.json` (типове значення `24h`; встановіть `false`, щоб вимкнути).
+ - `runLog`: очищати `cron/runs/.jsonl` за розміром і кількістю збережених рядків.
+ - Див. [Cron jobs](/uk/automation/cron-jobs) для огляду функції та прикладів CLI.
-
- Увімкніть HTTP webhook-ендпоїнти на Gateway:
+
+ Увімкніть HTTP webhook endpoints на Gateway:
```json5
{
@@ -434,21 +438,21 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- Примітка з безпеки:
- - Вважайте весь вміст payload hooks/webhooks недовіреним входом.
- - Використовуйте окремий `hooks.token`; не використовуйте спільний токен Gateway повторно.
- - Автентифікація hooks працює лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в query string відхиляються.
- - `hooks.path` не може бути `/`; використовуйте для webhook ingress окремий підшлях, наприклад `/hooks`.
- - Тримайте прапорці обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте вузькоспрямоване налагодження.
- - Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також задайте `hooks.allowedSessionKeyPrefixes`, щоб обмежити session key, які може вибирати викликач.
- - Для агентів, керованих через hooks, віддавайте перевагу сильним сучасним model tiers і суворій політиці інструментів (наприклад лише обмін повідомленнями плюс sandboxing, де це можливо).
+ Примітка щодо безпеки:
+ - Вважайте весь вміст payload hook/webhook недовіреним введенням.
+ - Використовуйте окремий `hooks.token`; не використовуйте повторно спільний токен Gateway.
+ - Автентифікація hooks працює лише через заголовки (`Authorization: Bearer ...` або `x-openclaw-token`); токени в рядку запиту відхиляються.
+ - `hooks.path` не може бути `/`; залишайте webhook ingress на окремому підшляху, наприклад `/hooks`.
+ - Тримайте прапори обходу небезпечного вмісту вимкненими (`hooks.gmail.allowUnsafeExternalContent`, `hooks.mappings[].allowUnsafeExternalContent`), якщо не виконуєте строго обмежене налагодження.
+ - Якщо ви вмикаєте `hooks.allowRequestSessionKey`, також задайте `hooks.allowedSessionKeyPrefixes`, щоб обмежити ключі сесій, які вибирає викликач.
+ - Для агентів, керованих hooks, надавайте перевагу потужним сучасним рівням моделей і суворій політиці інструментів (наприклад, лише обмін повідомленнями плюс ізоляція, де це можливо).
- Усі параметри mappings і інтеграцію з Gmail див. у [повному довіднику](/gateway/configuration-reference#hooks).
+ Див. [повний довідник](/uk/gateway/configuration-reference#hooks) для всіх параметрів mappings і інтеграції Gmail.
-
- Запускайте кілька ізольованих агентів з окремими workspace і session:
+
+ Запускайте кількох ізольованих агентів з окремими workspace і сесіями:
```json5
{
@@ -465,12 +469,12 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- Правила bindings і профілі доступу для окремих агентів див. у [Multi-Agent](/concepts/multi-agent) і [повному довіднику](/gateway/configuration-reference#multi-agent-routing).
+ Див. [Multi-Agent](/uk/concepts/multi-agent) і [повний довідник](/uk/gateway/configuration-reference#multi-agent-routing) для правил bindings і профілів доступу для кожного агента.
-
- Використовуйте `$include`, щоб організувати великі конфігурації:
+
+ Використовуйте `$include`, щоб упорядкувати великі конфігурації:
```json5
// ~/.openclaw/openclaw.json
@@ -484,26 +488,26 @@ OpenClaw приймає лише конфігурації, які повніст
```
- **Один файл**: замінює об’єкт, у якому міститься
- - **Масив файлів**: deep-merge у заданому порядку (пізніший перемагає)
- - **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- - **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- - **Відносні шляхи**: визначаються відносно файлу, що включає
- - **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних include
+ - **Масив файлів**: deep-merge у вказаному порядку (пізніші мають пріоритет)
+ - **Сусідні ключі**: зливаються після include’ів (перевизначають включені значення)
+ - **Вкладені include’и**: підтримуються до 10 рівнів вкладеності
+ - **Відносні шляхи**: обчислюються відносно файла, який виконує включення
+ - **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу й циклічних include’ів
## Гаряче перезавантаження конфігурації
-Gateway стежить за `~/.openclaw/openclaw.json` і автоматично застосовує зміни — для більшості налаштувань ручний перезапуск не потрібен.
+Gateway стежить за `~/.openclaw/openclaw.json` і застосовує зміни автоматично — для більшості налаштувань ручний перезапуск не потрібен.
### Режими перезавантаження
| Режим | Поведінка |
| ---------------------- | -------------------------------------------------------------------------------------- |
-| **`hybrid`** (типово) | Миттєво гаряче застосовує безпечні зміни. Для критичних автоматично перезапускається. |
-| **`hot`** | Гаряче застосовує лише безпечні зміни. Коли потрібен перезапуск, пише попередження — ви обробляєте це самі. |
-| **`restart`** | Перезапускає Gateway при будь-якій зміні конфігурації, безпечній чи ні. |
+| **`hybrid`** (типово) | Безпечно застосовує зміни одразу. Автоматично перезапускається для критичних змін. |
+| **`hot`** | Лише безпечно застосовує зміни. Записує попередження, коли потрібен перезапуск — ви обробляєте це самі. |
+| **`restart`** | Перезапускає Gateway після будь-якої зміни конфігурації, безпечної чи ні. |
| **`off`** | Вимикає стеження за файлом. Зміни набирають чинності після наступного ручного перезапуску. |
```json5
@@ -516,61 +520,61 @@ Gateway стежить за `~/.openclaw/openclaw.json` і автоматичн
### Що застосовується гаряче, а що потребує перезапуску
-Більшість полів застосовуються гаряче без простою. У режимі `hybrid` зміни, які вимагають перезапуску, обробляються автоматично.
+Більшість полів застосовуються гаряче без простою. У режимі `hybrid` зміни, які потребують перезапуску, обробляються автоматично.
-| Категорія | Поля | Потрібен перезапуск? |
-| --------------------- | -------------------------------------------------------------------- | -------------------- |
-| Канали | `channels.*`, `web` (WhatsApp) — усі вбудовані канали та канали extensions | Ні |
-| Агенти й моделі | `agent`, `agents`, `models`, `routing` | Ні |
-| Автоматизація | `hooks`, `cron`, `agent.heartbeat` | Ні |
-| Сесії та повідомлення | `session`, `messages` | Ні |
-| Інструменти та медіа | `tools`, `browser`, `skills`, `audio`, `talk` | Ні |
-| UI та інше | `ui`, `logging`, `identity`, `bindings` | Ні |
-| Сервер Gateway | `gateway.*` (port, bind, auth, tailscale, TLS, HTTP) | **Так** |
-| Інфраструктура | `discovery`, `canvasHost`, `plugins` | **Так** |
+| Категорія | Поля | Потрібен перезапуск? |
+| ----------------- | -------------------------------------------------------------------- | -------------------- |
+| Канали | `channels.*`, `web` (WhatsApp) — усі вбудовані й extension канали | Ні |
+| Агент і моделі | `agent`, `agents`, `models`, `routing` | Ні |
+| Автоматизація | `hooks`, `cron`, `agent.heartbeat` | Ні |
+| Сесії й повідомлення | `session`, `messages` | Ні |
+| Інструменти й медіа | `tools`, `browser`, `skills`, `audio`, `talk` | Ні |
+| UI та інше | `ui`, `logging`, `identity`, `bindings` | Ні |
+| Сервер gateway | `gateway.*` (port, bind, auth, tailscale, TLS, HTTP) | **Так** |
+| Інфраструктура | `discovery`, `canvasHost`, `plugins` | **Так** |
-`gateway.reload` і `gateway.remote` — винятки: їхня зміна **не** викликає перезапуск.
+`gateway.reload` і `gateway.remote` — винятки: їх зміна **не** викликає перезапуск.
-## RPC конфігурації (програмні оновлення)
+## Config RPC (програмні оновлення)
-RPC керуючої площини для запису (`config.apply`, `config.patch`, `update.run`) мають rate limit **3 запити за 60 секунд** для кожного `deviceId+clientIp`. При спрацюванні ліміту RPC повертає `UNAVAILABLE` з `retryAfterMs`.
+RPC керуючої площини для запису (`config.apply`, `config.patch`, `update.run`) мають обмеження швидкості: **3 запити на 60 секунд** для кожної пари `deviceId+clientIp`. У разі обмеження RPC повертає `UNAVAILABLE` з `retryAfterMs`.
Безпечний/типовий потік:
-- `config.schema.lookup`: перевірити одне піддерево конфігурації, обмежене шляхом, з неглибоким
- вузлом схеми, підібраними метаданими hints і зведеннями безпосередніх дочірніх елементів
-- `config.get`: отримати поточний snapshot + hash
+- `config.schema.lookup`: переглянути одне піддерево конфігурації, обмежене шляхом, з неглибоким
+ вузлом схеми, відповідними метаданими підказок і короткими зведеннями безпосередніх дочірніх елементів
+- `config.get`: отримати поточний знімок + hash
- `config.patch`: бажаний шлях часткового оновлення
- `config.apply`: лише повна заміна конфігурації
-- `update.run`: явне self-update + restart
+- `update.run`: явне самооновлення + перезапуск
-Коли ви не замінюєте всю конфігурацію, віддавайте перевагу `config.schema.lookup`,
+Якщо ви не замінюєте всю конфігурацію, надавайте перевагу `config.schema.lookup`,
а потім `config.patch`.
- Перевіряє + записує повну конфігурацію та перезапускає Gateway одним кроком.
+ Перевіряє, записує повну конфігурацію та перезапускає Gateway одним кроком.
- `config.apply` замінює **всю конфігурацію**. Для часткових оновлень використовуйте `config.patch`, а для окремих ключів — `openclaw config set`.
+ `config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
Параметри:
- - `raw` (string) — JSON5 payload для всієї конфігурації
- - `baseHash` (необов’язково) — hash конфігурації з `config.get` (обов’язково, коли конфігурація існує)
- - `sessionKey` (необов’язково) — ключ сесії для ping після перезапуску
- - `note` (необов’язково) — примітка для restart sentinel
- - `restartDelayMs` (необов’язково) — затримка перед перезапуском (типово 2000)
+ - `raw` (string) — payload JSON5 для всієї конфігурації
+ - `baseHash` (optional) — hash конфігурації з `config.get` (обов’язковий, якщо конфігурація вже існує)
+ - `sessionKey` (optional) — ключ сесії для ping пробудження після перезапуску
+ - `note` (optional) — примітка для restart sentinel
+ - `restartDelayMs` (optional) — затримка перед перезапуском (типово 2000)
- Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє затримка 30 секунд.
+ Запити на перезапуск об’єднуються, якщо один уже очікує/виконується, і між циклами перезапуску діє 30-секундна пауза.
```bash
- openclaw gateway call config.get --params '{}' # capture payload.hash
+ openclaw gateway call config.get --params '{}' # отримати payload.hash
openclaw gateway call config.apply --params '{
"raw": "{ agents: { defaults: { workspace: \"~/.openclaw/workspace\" } } }",
"baseHash": "",
@@ -581,19 +585,19 @@ RPC керуючої площини для запису (`config.apply`, `config
- Об’єднує часткове оновлення з наявною конфігурацією (семантика JSON merge patch):
+ Зливає часткове оновлення з наявною конфігурацією (семантика JSON merge patch):
- - Об’єкти об’єднуються рекурсивно
+ - Об’єкти зливаються рекурсивно
- `null` видаляє ключ
- Масиви замінюються
Параметри:
- - `raw` (string) — JSON5 лише з ключами, які потрібно змінити
- - `baseHash` (обов’язково) — hash конфігурації з `config.get`
- - `sessionKey`, `note`, `restartDelayMs` — ті самі, що в `config.apply`
+ - `raw` (string) — JSON5 лише з ключами, які треба змінити
+ - `baseHash` (required) — hash конфігурації з `config.get`
+ - `sessionKey`, `note`, `restartDelayMs` — те саме, що й для `config.apply`
- Поведінка перезапуску така сама, як у `config.apply`: об’єднання очікуваних перезапусків плюс затримка 30 секунд між циклами перезапуску.
+ Поведінка перезапуску така сама, як у `config.apply`: об’єднання очікуваних перезапусків і 30-секундна пауза між циклами перезапуску.
```bash
openclaw gateway call config.patch --params '{
@@ -607,12 +611,12 @@ RPC керуючої площини для запису (`config.apply`, `config
## Змінні середовища
-OpenClaw читає env vars із батьківського процесу, а також із:
+OpenClaw читає env vars із батьківського процесу, а також:
-- `.env` у поточній робочій теці (якщо існує)
-- `~/.openclaw/.env` (глобальне резервне значення)
+- `.env` із поточного робочого каталогу (якщо є)
+- `~/.openclaw/.env` (глобальний резервний варіант)
-Жоден із цих файлів не перевизначає вже наявні env vars. Ви також можете задавати вбудовані env vars у конфігурації:
+Жоден із цих файлів не перевизначає наявні env vars. Ви також можете задавати inline env vars у конфігурації:
```json5
{
@@ -623,8 +627,8 @@ OpenClaw читає env vars із батьківського процесу, а
}
```
-
- Якщо ввімкнено і очікувані ключі не задано, OpenClaw запускає ваш login shell і імпортує лише відсутні ключі:
+
+ Якщо це ввімкнено й очікувані ключі не задано, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@@ -638,7 +642,7 @@ OpenClaw читає env vars із батьківського процесу, а
- Посилайтеся на env vars у будь-якому string-значенні конфігурації через `${VAR_NAME}`:
+ Посилайтеся на env vars у будь-якому рядковому значенні конфігурації через `${VAR_NAME}`:
```json5
{
@@ -649,16 +653,16 @@ OpenClaw читає env vars із батьківського процесу, а
Правила:
-- Зіставляються лише назви у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
-- Відсутні/порожні vars викликають помилку під час завантаження
-- Екрануйте через `$${VAR}` для буквального виводу
+- Збігаються лише імена у верхньому регістрі: `[A-Z_][A-Z0-9_]*`
+- Відсутні/порожні env vars викликають помилку під час завантаження
+- Екрануйте як `$${VAR}` для буквального виводу
- Працює всередині файлів `$include`
-- Вбудована підстановка: `"${BASE}/v1"` → `"https://api.example.com/v1"`
+- Inline substitution: `"${BASE}/v1"` → `"https://api.example.com/v1"`
- Для полів, які підтримують об’єкти SecretRef, ви можете використовувати:
+ Для полів, які підтримують об’єкти SecretRef, можна використовувати:
```json5
{
@@ -690,16 +694,16 @@ OpenClaw читає env vars із батьківського процесу, а
}
```
-Докладно про SecretRef (включно з `secrets.providers` для `env`/`file`/`exec`) див. у [Керування секретами](/gateway/secrets).
-Підтримувані шляхи облікових даних перелічено в [Поверхня облікових даних SecretRef](/reference/secretref-credential-surface).
+Докладніше про SecretRef (зокрема `secrets.providers` для `env`/`file`/`exec`) див. у [Secrets Management](/uk/gateway/secrets).
+Підтримувані шляхи облікових даних наведено в [SecretRef Credential Surface](/uk/reference/secretref-credential-surface).
-Повний порядок пріоритетів і джерела див. у [Environment](/help/environment).
+Див. [Environment](/uk/help/environment) для повного порядку пріоритетів і джерел.
## Повний довідник
-Повний довідник по полях див. у **[Довідник конфігурації](/gateway/configuration-reference)**.
+Для повного довідника за полями див. **[Configuration Reference](/uk/gateway/configuration-reference)**.
---
-_Пов’язане: [Приклади конфігурації](/gateway/configuration-examples) · [Довідник конфігурації](/gateway/configuration-reference) · [Doctor](/gateway/doctor)_
+_Пов’язане: [Приклади конфігурації](/uk/gateway/configuration-examples) · [Довідник конфігурації](/uk/gateway/configuration-reference) · [Doctor](/uk/gateway/doctor)_
diff --git a/docs/uk/tools/slash-commands.md b/docs/uk/tools/slash-commands.md
index 39f3b7d5e..317755b55 100644
--- a/docs/uk/tools/slash-commands.md
+++ b/docs/uk/tools/slash-commands.md
@@ -1,36 +1,36 @@
---
read_when:
- - Використання або налаштування команд чату
+ - Використання або налаштування чат-команд
- Налагодження маршрутизації команд або дозволів
summary: 'Слеш-команди: текстові та нативні, конфігурація й підтримувані команди'
title: Слеш-команди
x-i18n:
- generated_at: "2026-04-06T00:34:40Z"
+ generated_at: "2026-04-08T05:14:57Z"
model: gpt-5.4
provider: openai
- source_hash: 417e35b9ddd87f25f6c019111b55b741046ea11039dde89210948185ced5696d
+ source_hash: 4a7ee7f1a8012058279b9e632889b291d4e659e4ec81209ca8978afbb9ad4b96
source_path: tools/slash-commands.md
workflow: 15
---
# Слеш-команди
-Команди обробляються Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, яке починається з `/`.
-Команда чату bash лише для хоста використовує `! ` (із псевдонімом `/bash `).
+Команди обробляються Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`.
+Команда чату bash лише для хоста використовує `! ` (із `/bash ` як псевдонімом).
Є дві пов’язані системи:
- **Команди**: окремі повідомлення `/...`.
- **Директиви**: `/think`, `/fast`, `/verbose`, `/reasoning`, `/elevated`, `/exec`, `/model`, `/queue`.
- Директиви видаляються з повідомлення до того, як його побачить модель.
- - У звичайних повідомленнях чату (не лише з директивами) вони трактуються як «вбудовані підказки» і **не** зберігають налаштування сеансу.
- - У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сеансі й повертають підтвердження.
- - Директиви застосовуються лише для **авторизованих відправників**. Якщо задано `commands.allowFrom`, це єдиний
- список дозволу, який використовується; інакше авторизація визначається списками дозволу/спарюванням каналу та `commands.useAccessGroups`.
+ - У звичайних чат-повідомленнях (не лише з директивами) вони трактуються як «вбудовані підказки» і **не** зберігають налаштування сесії.
+ - У повідомленнях лише з директивами (повідомлення містить тільки директиви) вони зберігаються в сесії та повертають підтвердження.
+ - Директиви застосовуються лише для **авторизованих відправників**. Якщо задано `commands.allowFrom`, використовується лише цей
+ список дозволених; інакше авторизація походить зі списків дозволених/спарювання каналу плюс `commands.useAccessGroups`.
Для неавторизованих відправників директиви трактуються як звичайний текст.
-Також є кілька **вбудованих скорочень** (лише для відправників зі списку дозволу/авторизованих): `/help`, `/commands`, `/status`, `/whoami` (`/id`).
-Вони запускаються негайно, видаляються до того, як модель побачить повідомлення, а решта тексту продовжує оброблятися у звичайному потоці.
+Також є кілька **вбудованих скорочень** (лише для відправників зі списку дозволених/авторизованих): `/help`, `/commands`, `/status`, `/whoami` (`/id`).
+Вони виконуються негайно, видаляються до того, як повідомлення побачить модель, а решта тексту продовжує проходити звичайним шляхом.
## Конфігурація
@@ -46,7 +46,10 @@ x-i18n:
mcp: false,
plugins: false,
debug: false,
- restart: false,
+ restart: true,
+ ownerAllowFrom: ["discord:123456789012345678"],
+ ownerDisplay: "raw",
+ ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}",
allowFrom: {
"*": ["user1"],
discord: ["user:123"],
@@ -56,144 +59,179 @@ x-i18n:
}
```
-- `commands.text` (типово `true`) вмикає розбір `/...` у повідомленнях чату.
- - На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити `false`.
-- `commands.native` (типово `"auto"`) реєструє нативні команди.
- - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (доки ви не додасте слеш-команди); ігнорується для провайдерів без нативної підтримки.
- - Щоб перевизначити для окремого провайдера, задайте `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native` (bool або `"auto"`).
- - `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Команди Slack керуються в застосунку Slack і автоматично не видаляються.
-- `commands.nativeSkills` (типово `"auto"`) нативно реєструє команди **Skills**, якщо це підтримується.
- - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (у Slack потрібно створювати окрему слеш-команду для кожного skill).
- - Щоб перевизначити для окремого провайдера, задайте `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills` (bool або `"auto"`).
-- `commands.bash` (типово `false`) вмикає `! ` для виконання shell-команд хоста (`/bash ` є псевдонімом; потрібні списки дозволу `tools.elevated`).
-- `commands.bashForegroundMs` (типово `2000`) визначає, як довго bash чекає перед переходом у фоновий режим (`0` одразу переводить у фон).
-- `commands.config` (типово `false`) вмикає `/config` (читання/запис `openclaw.json`).
-- `commands.mcp` (типово `false`) вмикає `/mcp` (читання/запис керованої OpenClaw конфігурації MCP у `mcp.servers`).
-- `commands.plugins` (типово `false`) вмикає `/plugins` (виявлення/статус plugins, а також встановлення й елементи керування увімкненням/вимкненням).
-- `commands.debug` (типово `false`) вмикає `/debug` (перевизначення лише під час виконання).
-- `commands.allowFrom` (необов’язково) задає список дозволу для авторизації команд окремо для кожного провайдера. Якщо його налаштовано, це
- єдине джерело авторизації для команд і директив (списки дозволу/спарювання каналу та `commands.useAccessGroups`
- ігноруються). Використовуйте `"*"` для глобального значення за замовчуванням; ключі окремих провайдерів мають пріоритет.
-- `commands.useAccessGroups` (типово `true`) застосовує списки дозволу/політики для команд, коли `commands.allowFrom` не задано.
+- `commands.text` (типове значення `true`) вмикає розбір `/...` у чат-повідомленнях.
+ - На поверхнях без нативних команд (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) текстові команди все одно працюють, навіть якщо встановити це значення в `false`.
+- `commands.native` (типове значення `"auto"`) реєструє нативні команди.
+ - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (поки ви не додасте слеш-команди); ігнорується для провайдерів без нативної підтримки.
+ - Щоб перевизначити поведінку для конкретного провайдера, задайте `channels.discord.commands.native`, `channels.telegram.commands.native` або `channels.slack.commands.native` (bool або `"auto"`).
+ - `false` очищає раніше зареєстровані команди в Discord/Telegram під час запуску. Команди Slack керуються в застосунку Slack і не видаляються автоматично.
+- `commands.nativeSkills` (типове значення `"auto"`) реєструє нативні команди **skill**, коли це підтримується.
+ - Auto: увімкнено для Discord/Telegram; вимкнено для Slack (Slack вимагає створення окремої слеш-команди для кожного skill).
+ - Щоб перевизначити поведінку для конкретного провайдера, задайте `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` або `channels.slack.commands.nativeSkills` (bool або `"auto"`).
+- `commands.bash` (типове значення `false`) вмикає `! ` для виконання команд оболонки хоста (`/bash ` — псевдонім; потребує списків дозволених `tools.elevated`).
+- `commands.bashForegroundMs` (типове значення `2000`) керує тим, як довго bash чекає перед переходом у фоновий режим (`0` одразу відправляє у фон).
+- `commands.config` (типове значення `false`) вмикає `/config` (читання/запис `openclaw.json`).
+- `commands.mcp` (типове значення `false`) вмикає `/mcp` (читання/запис керованої OpenClaw конфігурації MCP у `mcp.servers`).
+- `commands.plugins` (типове значення `false`) вмикає `/plugins` (виявлення/стан plugin, а також керування встановленням і вмиканням/вимиканням).
+- `commands.debug` (типове значення `false`) вмикає `/debug` (перевизначення лише під час виконання).
+- `commands.restart` (типове значення `true`) вмикає `/restart`, а також дії інструментів для перезапуску gateway.
+- `commands.ownerAllowFrom` (необов’язково) задає явний список дозволених власника для поверхонь команд/інструментів лише для власника. Це окремо від `commands.allowFrom`.
+- `commands.ownerDisplay` визначає, як ідентифікатори власника відображаються в системному запиті: `raw` або `hash`.
+- `commands.ownerDisplaySecret` необов’язково задає HMAC-секрет, що використовується, коли `commands.ownerDisplay="hash"`.
+- `commands.allowFrom` (необов’язково) задає список дозволених для авторизації команд для кожного провайдера. Якщо його налаштовано, це
+ єдине джерело авторизації для команд і директив (списки дозволених/спарювання каналу та `commands.useAccessGroups`
+ ігноруються). Використовуйте `"*"` для глобального типового значення; ключі для конкретних провайдерів мають пріоритет.
+- `commands.useAccessGroups` (типове значення `true`) примусово застосовує списки дозволених/політики для команд, коли `commands.allowFrom` не задано.
## Список команд
-Текстові + нативні (коли ввімкнено):
+Поточне джерело істини:
-- `/help`
-- `/commands`
-- `/tools [compact|verbose]` (показує, що поточний агент може використовувати прямо зараз; `verbose` додає описи)
-- `/skill [input]` (запустити skill за назвою)
-- `/status` (показати поточний стан; містить використання/квоту провайдера для поточного провайдера моделі, якщо доступно)
-- `/tasks` (показати фонові завдання для поточного сеансу; відображає активні та нещодавні деталі завдань із локальними для агента резервними лічильниками)
-- `/allowlist` (перегляд/додавання/видалення записів списку дозволу)
-- `/approve ` (розв’язати запити на погодження exec; використовуйте повідомлення з очікуваним погодженням для доступних рішень)
-- `/context [list|detail|json]` (пояснює «контекст»; `detail` показує розмір для кожного файла + кожного інструмента + кожного skill + системного prompt)
-- `/btw ` (поставити тимчасове побічне запитання про поточний сеанс без зміни майбутнього контексту сеансу; див. [/tools/btw](/uk/tools/btw))
-- `/export-session [path]` (псевдонім: `/export`) (експортувати поточний сеанс у HTML з повним системним prompt)
-- `/whoami` (показати ваш sender id; псевдонім: `/id`)
-- `/session idle ` (керування автоматичним зняттям фокуса через неактивність для прив’язок сфокусованих гілок)
-- `/session max-age ` (керування жорстким автоматичним зняттям фокуса за максимальним віком для прив’язок сфокусованих гілок)
-- `/subagents list|kill|log|info|send|steer|spawn` (перегляд, керування або запуск виконань субагентів для поточного сеансу)
-- `/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions` (перегляд і керування сеансами середовища виконання ACP)
-- `/agents` (показати агентів, прив’язаних до гілок, для цього сеансу)
-- `/focus ` (Discord: прив’язати цю гілку або нову гілку до цілі сеансу/субагента)
-- `/unfocus` (Discord: прибрати поточну прив’язку гілки)
-- `/kill ` (негайно перервати один або всі запущені субагенти для цього сеансу; без повідомлення-підтвердження)
-- `/steer ` (негайно спрямувати запущений субагент: під час виконання, якщо можливо, інакше перервати поточну роботу й перезапустити з повідомленням спрямування)
-- `/tell ` (псевдонім для `/steer`)
-- `/config show|get|set|unset` (зберегти конфігурацію на диск, лише для власника; потребує `commands.config: true`)
-- `/mcp show|get|set|unset` (керування конфігурацією MCP-сервера OpenClaw, лише для власника; потребує `commands.mcp: true`)
-- `/plugins list|show|get|install|enable|disable` (перегляд виявлених plugins, встановлення нових і перемикання стану ввімкнення; запис лише для власника; потребує `commands.plugins: true`)
- - `/plugin` є псевдонімом для `/plugins`.
- - `/plugin install ` приймає ті самі специфікації plugin, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:`.
- - Записи для увімкнення/вимкнення все одно повертають підказку про перезапуск. У gateway переднього плану з наглядом OpenClaw може автоматично виконати цей перезапуск одразу після запису.
-- `/debug show|set|unset|reset` (перевизначення під час виконання, лише для власника; потребує `commands.debug: true`)
-- `/usage off|tokens|full|cost` (нижній колонтитул використання для кожної відповіді або локальний підсумок вартості)
-- `/tts off|always|inbound|tagged|status|provider|limit|summary|audio` (керування TTS; див. [/tts](/uk/tools/tts))
- - Discord: нативна команда — `/voice` (Discord резервує `/tts`); текстова `/tts` усе одно працює.
-- `/stop`
-- `/restart`
-- `/dock-telegram` (псевдонім: `/dock_telegram`) (перемкнути відповіді на Telegram)
-- `/dock-discord` (псевдонім: `/dock_discord`) (перемкнути відповіді на Discord)
-- `/dock-slack` (псевдонім: `/dock_slack`) (перемкнути відповіді на Slack)
-- `/activation mention|always` (лише для груп)
-- `/send on|off|inherit` (лише для власника)
-- `/reset` або `/new [model]` (необов’язкова підказка моделі; решта передається далі)
-- `/think ` (динамічні варіанти залежно від моделі/провайдера; псевдоніми: `/thinking`, `/t`)
-- `/fast status|on|off` (якщо опустити аргумент, показує поточний ефективний стан швидкого режиму)
-- `/verbose on|full|off` (псевдонім: `/v`)
-- `/reasoning on|off|stream` (псевдонім: `/reason`; коли ввімкнено, надсилає окреме повідомлення з префіксом `Reasoning:`; `stream` = лише чернетка Telegram)
-- `/elevated on|off|ask|full` (псевдонім: `/elev`; `full` пропускає погодження exec)
-- `/exec host= security= ask= node=` (надішліть `/exec`, щоб показати поточне)
-- `/model ` (псевдонім: `/models`; або `/` з `agents.defaults.models.*.alias`)
-- `/queue ` (плюс параметри на кшталт `debounce:2s cap:25 drop:summarize`; надішліть `/queue`, щоб побачити поточні налаштування)
-- `/bash ` (лише для хоста; псевдонім для `! `; потребує `commands.bash: true` + списків дозволу `tools.elevated`)
-- `/dreaming [on|off|status|help]` (перемкнути глобальний dreaming або показати стан; див. [Dreaming](/uk/concepts/dreaming))
+- вбудовані core-команди походять із `src/auto-reply/commands-registry.shared.ts`
+- згенеровані dock-команди походять із `src/auto-reply/commands-registry.data.ts`
+- plugin-команди походять із викликів plugin `registerCommand()`
+- фактична доступність на вашому gateway усе одно залежить від прапорців конфігурації, поверхні каналу та встановлених/увімкнених plugin
-Лише текстові:
+### Вбудовані core-команди
-- `/compact [instructions]` (див. [/concepts/compaction](/uk/concepts/compaction))
-- `! ` (лише для хоста; по одній за раз; використовуйте `!poll` + `!stop` для довготривалих завдань)
-- `!poll` (перевірити вивід / стан; приймає необов’язковий `sessionId`; `/bash poll` також працює)
-- `!stop` (зупинити запущене завдання bash; приймає необов’язковий `sessionId`; `/bash stop` також працює)
+Доступні сьогодні вбудовані команди:
+
+- `/new [model]` запускає нову сесію; `/reset` — псевдонім для скидання.
+- `/compact [instructions]` ущільнює контекст сесії. Див. [/concepts/compaction](/uk/concepts/compaction).
+- `/stop` перериває поточний запуск.
+- `/session idle ` і `/session max-age ` керують строком дії прив’язки до потоку.
+- `/think ` задає рівень thinking. Псевдоніми: `/thinking`, `/t`.
+- `/verbose on|off|full` перемикає розширений вивід. Псевдонім: `/v`.
+- `/fast [status|on|off]` показує або задає швидкий режим.
+- `/reasoning [on|off|stream]` перемикає видимість reasoning. Псевдонім: `/reason`.
+- `/elevated [on|off|ask|full]` перемикає elevated mode. Псевдонім: `/elev`.
+- `/exec host= security= ask= node=` показує або задає типові значення exec.
+- `/model [name|#|status]` показує або задає модель.
+- `/models [provider] [page] [limit=|size=|all]` виводить список провайдерів або моделей для провайдера.
+- `/queue ` керує поведінкою черги (`steer`, `interrupt`, `followup`, `collect`, `steer-backlog`) плюс параметрами на кшталт `debounce:2s cap:25 drop:summarize`.
+- `/help` показує коротку довідку.
+- `/commands` показує згенерований каталог команд.
+- `/tools [compact|verbose]` показує, що поточний агент може використовувати просто зараз.
+- `/status` показує стан під час виконання, включно з використанням/квотою провайдера, коли доступно.
+- `/tasks` перелічує активні/нещодавні фонові завдання для поточної сесії.
+- `/context [list|detail|json]` пояснює, як збирається контекст.
+- `/export-session [path]` експортує поточну сесію в HTML. Псевдонім: `/export`.
+- `/whoami` показує ваш id відправника. Псевдонім: `/id`.
+- `/skill [input]` запускає skill за назвою.
+- `/allowlist [list|add|remove] ...` керує записами списку дозволених. Лише текст.
+- `/approve ` опрацьовує запити на затвердження exec.
+- `/btw ` ставить побічне запитання без зміни майбутнього контексту сесії. Див. [/tools/btw](/uk/tools/btw).
+- `/subagents list|kill|log|info|send|steer|spawn` керує запусками субагентів для поточної сесії.
+- `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` керує сесіями ACP та параметрами під час виконання.
+- `/focus ` прив’язує поточний потік Discord або тему/розмову Telegram до цілі сесії.
+- `/unfocus` знімає поточну прив’язку.
+- `/agents` перелічує агентів, прив’язаних до потоку, для поточної сесії.
+- `/kill ` перериває один або всі запущені субагенти.
+- `/steer ` надсилає керування запущеному субагенту. Псевдонім: `/tell`.
+- `/config show|get|set|unset` читає або записує `openclaw.json`. Лише для власника. Потребує `commands.config: true`.
+- `/mcp show|get|set|unset` читає або записує конфігурацію MCP-сервера, керовану OpenClaw, у `mcp.servers`. Лише для власника. Потребує `commands.mcp: true`.
+- `/plugins list|inspect|show|get|install|enable|disable` перевіряє або змінює стан plugin. `/plugin` — псевдонім. Запис — лише для власника. Потребує `commands.plugins: true`.
+- `/debug show|set|unset|reset` керує перевизначеннями конфігурації лише під час виконання. Лише для власника. Потребує `commands.debug: true`.
+- `/usage off|tokens|full|cost` керує нижнім колонтитулом використання для кожної відповіді або виводить локальний підсумок вартості.
+- `/tts on|off|status|provider|limit|summary|audio|help` керує TTS. Див. [/tools/tts](/uk/tools/tts).
+- `/restart` перезапускає OpenClaw, якщо це ввімкнено. Типово: увімкнено; встановіть `commands.restart: false`, щоб вимкнути.
+- `/activation mention|always` задає режим активації групи.
+- `/send on|off|inherit` задає політику надсилання. Лише для власника.
+- `/bash ` виконує команду оболонки хоста. Лише текст. Псевдонім: `! `. Потребує `commands.bash: true` плюс списки дозволених `tools.elevated`.
+- `!poll [sessionId]` перевіряє фонове завдання bash.
+- `!stop [sessionId]` зупиняє фонове завдання bash.
+
+### Згенеровані dock-команди
+
+Dock-команди генеруються з channel plugin із підтримкою нативних команд. Поточний вбудований набір:
+
+- `/dock-discord` (псевдонім: `/dock_discord`)
+- `/dock-mattermost` (псевдонім: `/dock_mattermost`)
+- `/dock-slack` (псевдонім: `/dock_slack`)
+- `/dock-telegram` (псевдонім: `/dock_telegram`)
+
+### Команди вбудованих plugin
+
+Вбудовані plugin можуть додавати більше слеш-команд. Поточні вбудовані команди в цьому репозиторії:
+
+- `/dreaming [on|off|status|help]` перемикає memory dreaming. Див. [Dreaming](/uk/concepts/dreaming).
+- `/pair [qr|status|pending|approve|cleanup|notify]` керує потоком спарювання/налаштування пристрою. Див. [Pairing](/uk/channels/pairing).
+- `/phone status|arm [duration]|disarm` тимчасово активує високоризикові команди phone node.
+- `/voice status|list [limit]|set ` керує конфігурацією голосу Talk. У Discord назва нативної команди — `/talkvoice`.
+- `/card ...` надсилає пресети LINE rich card. Див. [LINE](/uk/channels/line).
+- Команди лише для QQBot:
+ - `/bot-ping`
+ - `/bot-version`
+ - `/bot-help`
+ - `/bot-upgrade`
+ - `/bot-logs`
+
+### Динамічні skill-команди
+
+Skills, які може викликати користувач, також доступні як слеш-команди:
+
+- `/skill [input]` завжди працює як загальна точка входу.
+- skills також можуть з’являтися як прямі команди на кшталт `/prose`, коли skill/plugin їх реєструє.
+- реєстрацією нативних skill-команд керують `commands.nativeSkills` і `channels..commands.nativeSkills`.
Примітки:
- Команди приймають необов’язковий `:` між командою та аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
- `/new ` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст трактується як тіло повідомлення.
-- Для повного розподілу використання провайдера використовуйте `openclaw status --usage`.
+- Для повного розподілу використання за провайдерами використовуйте `openclaw status --usage`.
- `/allowlist add|remove` потребує `commands.config=true` і враховує канал `configWrites`.
-- У каналах з кількома обліковими записами `/allowlist --account `, націлений на конфігурацію, і `/config set channels..accounts....` також враховують `configWrites` цільового облікового запису.
-- `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальний підсумок вартості з журналів сеансів OpenClaw.
-- `/restart` увімкнено типово; задайте `commands.restart: false`, щоб вимкнути його.
-- Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (потребує `channels.discord.voice` і нативних команд; недоступна як текстова).
-- Команди прив’язки гілок Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують, щоб ефективні прив’язки гілок були ввімкнені (`session.threadBindings.enabled` та/або `channels.discord.threadBindings.enabled`).
-- Довідник команд ACP і поведінка середовища виконання: [ACP Agents](/uk/tools/acp-agents).
+- У каналах із кількома обліковими записами `/allowlist --account `, націлені на конфігурацію, і `/config set channels..accounts....` також враховують `configWrites` цільового облікового запису.
+- `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальний підсумок вартості з журналів сесій OpenClaw.
+- `/restart` увімкнено типово; встановіть `commands.restart: false`, щоб вимкнути його.
+- `/plugins install ` приймає ті самі специфікації plugin, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:`.
+- `/plugins enable|disable` оновлює конфігурацію plugin і може запропонувати перезапуск.
+- Нативна команда лише для Discord: `/vc join|leave|status` керує голосовими каналами (потребує `channels.discord.voice` і нативних команд; недоступна як текст).
+- Команди прив’язки до потоку в Discord (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) потребують, щоб ефективні прив’язки до потоку були ввімкнені (`session.threadBindings.enabled` та/або `channels.discord.threadBindings.enabled`).
+- Довідник команд ACP і поведінка під час виконання: [ACP Agents](/uk/tools/acp-agents).
- `/verbose` призначено для налагодження та додаткової видимості; у звичайному використанні тримайте його **вимкненим**.
-- `/fast on|off` зберігає перевизначення для сеансу. Використовуйте опцію `inherit` в інтерфейсі Sessions, щоб очистити його й повернутися до значень конфігурації за замовчуванням.
-- `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` у нативних ендпоінтах Responses, тоді як прямі публічні запити Anthropic, включно з трафіком з OAuth-аутентифікацією, надісланим до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic).
-- Підсумки збоїв інструментів усе ще показуються, коли це доречно, але докладний текст збою включається лише коли `/verbose` має значення `on` або `full`.
-- `/reasoning` (і `/verbose`) ризиковані в групових налаштуваннях: вони можуть розкрити внутрішні міркування або вивід інструментів, який ви не планували показувати. Краще залишати їх вимкненими, особливо в групових чатах.
-- `/model` негайно зберігає нову модель сеансу.
-- Якщо агент простоює, наступний запуск використає її одразу.
-- Якщо виконання вже активне, OpenClaw позначає живе перемикання як очікуване й перезапускає на новій моделі лише в чистій точці повторної спроби.
-- Якщо активність інструментів або вивід відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої можливості повторної спроби або наступного ходу користувача.
-- **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволу обробляються негайно (в обхід черги й моделі).
-- **Керування згадками в групі:** повідомлення лише з командами від відправників зі списку дозволу обходять вимоги щодо згадок.
-- **Вбудовані скорочення (лише для відправників зі списку дозволу):** деякі команди також працюють, коли вбудовані у звичайне повідомлення, і видаляються до того, як модель побачить решту тексту.
- - Приклад: `hey /status` запускає відповідь про стан, а решта тексту продовжує оброблятися у звичайному потоці.
-- Наразі: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
-- Неавторизовані повідомлення лише з командами тихо ігноруються, а вбудовані токени `/...` трактуються як звичайний текст.
-- **Skill-команди:** skills з `user-invocable` доступні як слеш-команди. Назви санітизуються до `a-z0-9_` (максимум 32 символи); у разі колізій додаються числові суфікси (наприклад, `_2`).
- - `/skill [input]` запускає skill за назвою (корисно, коли обмеження нативних команд не дозволяють команди для кожного skill окремо).
+- `/fast on|off` зберігає перевизначення сесії. Використовуйте параметр `inherit` у UI Sessions, щоб очистити його й повернутися до типових значень конфігурації.
+- `/fast` залежить від провайдера: OpenAI/OpenAI Codex зіставляють його з `service_tier=priority` на нативних ендпойнтах Responses, тоді як прямі публічні запити Anthropic, включно з OAuth-автентифікованим трафіком, надісланим до `api.anthropic.com`, зіставляють його з `service_tier=auto` або `standard_only`. Див. [OpenAI](/uk/providers/openai) і [Anthropic](/uk/providers/anthropic).
+- Підсумки збоїв інструментів усе ще показуються, коли це доречно, але детальний текст збоїв включається лише тоді, коли `/verbose` має значення `on` або `full`.
+- `/reasoning` (і `/verbose`) ризиковані в групових налаштуваннях: вони можуть розкрити внутрішнє reasoning або вивід інструментів, який ви не збиралися показувати. Краще залишати їх вимкненими, особливо в групових чатах.
+- `/model` негайно зберігає нову модель сесії.
+- Якщо агент простоює, наступний запуск використовує її одразу.
+- Якщо запуск уже активний, OpenClaw позначає живе перемикання як очікуване й перезапускається з новою моделлю лише в чистій точці повторної спроби.
+- Якщо активність інструментів або вивід відповіді вже почалися, очікуване перемикання може залишатися в черзі до пізнішої можливості повторної спроби або до наступного ходу користувача.
+- **Швидкий шлях:** повідомлення лише з командами від відправників зі списку дозволених обробляються негайно (оминають чергу та модель).
+- **Фільтрація згадок у групах:** повідомлення лише з командами від відправників зі списку дозволених обходять вимоги до згадки.
+- **Вбудовані скорочення (лише для відправників зі списку дозволених):** деякі команди також працюють, коли вбудовані в звичайне повідомлення, і видаляються до того, як модель побачить решту тексту.
+ - Приклад: `hey /status` викликає відповідь зі статусом, а решта тексту продовжує проходити звичайним шляхом.
+- Зараз: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
+- Неавторизовані повідомлення лише з командами мовчки ігноруються, а вбудовані токени `/...` трактуються як звичайний текст.
+- **Skill-команди:** skills із типом `user-invocable` доступні як слеш-команди. Назви санітизуються до `a-z0-9_` (макс. 32 символи); у разі колізій додаються числові суфікси (наприклад, `_2`).
+ - `/skill [input]` запускає skill за назвою (корисно, коли обмеження нативних команд не дають створити окремі команди для кожного skill).
- Типово skill-команди пересилаються моделі як звичайний запит.
- - Skills можуть необов’язково оголошувати `command-dispatch: tool`, щоб маршрутити команду безпосередньо до інструмента (детерміновано, без моделі).
+ - Skills можуть необов’язково оголосити `command-dispatch: tool`, щоб спрямувати команду безпосередньо в інструмент (детерміновано, без моделі).
- Приклад: `/prose` (plugin OpenProse) — див. [OpenProse](/uk/prose).
-- **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних параметрів (і меню кнопок, коли ви пропускаєте обов’язкові аргументи). Telegram і Slack показують меню кнопок, коли команда підтримує варіанти, а ви не вказали аргумент.
+- **Аргументи нативних команд:** Discord використовує автодоповнення для динамічних параметрів (і меню кнопок, коли ви пропускаєте обов’язкові аргументи). Telegram і Slack показують меню кнопок, коли команда підтримує варіанти вибору, а ви не вказуєте аргумент.
## `/tools`
-`/tools` відповідає на запитання про середовище виконання, а не про конфігурацію: **що цей агент може використовувати прямо зараз у
-цій розмові**.
+`/tools` відповідає на запитання під час виконання, а не на запитання про конфігурацію: **що цей агент може використовувати прямо зараз
+у цій розмові**.
-- Типовий `/tools` є компактним і оптимізованим для швидкого перегляду.
+- Типовий `/tools` компактний і оптимізований для швидкого перегляду.
- `/tools verbose` додає короткі описи.
-- Поверхні з нативними командами, які підтримують аргументи, надають той самий перемикач режиму `compact|verbose`.
-- Результати прив’язані до сеансу, тому зміна агента, каналу, гілки, авторизації відправника або моделі може
+- Поверхні нативних команд, які підтримують аргументи, надають той самий перемикач режиму як `compact|verbose`.
+- Результати прив’язані до сесії, тому зміна агента, каналу, потоку, авторизації відправника або моделі може
змінити вивід.
-- `/tools` містить інструменти, які реально доступні під час виконання, включно з основними інструментами, підключеними
- інструментами plugin і інструментами, що належать каналу.
+- `/tools` включає інструменти, які реально доступні під час виконання, зокрема core tools, підключені
+ plugin tools і channel-owned tools.
-Для редагування профілю та перевизначень використовуйте панель Tools у Control UI або поверхні конфігурації/каталогу,
-а не трактуйте `/tools` як статичний каталог.
+Для редагування профілю та перевизначень використовуйте панель Tools у Control UI або поверхні конфігурації/каталогу, а не
+ставтеся до `/tools` як до статичного каталогу.
## Поверхні використання (що де показується)
-- **Використання/квота провайдера** (наприклад, «Claude 80% left») показується в `/status` для поточного провайдера моделі, коли ввімкнено відстеження використання. OpenClaw нормалізує вікна провайдерів до `% left`; для MiniMax відсоткові поля лише залишку інвертуються перед показом, а відповіді `model_remains` віддають перевагу запису chat-model плюс мітці плану, прив’язаній до моделі.
-- **Рядки token/cache** у `/status` можуть брати резервні значення з останнього запису використання в транскрипті, коли живий знімок сеансу є неповним. Наявні ненульові живі значення все одно мають пріоритет, а резерв із транскрипту також може відновити мітку активної моделі середовища виконання та більший загальний обсяг, орієнтований на prompt, коли збережені підсумки відсутні або менші.
-- **Tokens/cost для кожної відповіді** керуються через `/usage off|tokens|full` (додаються до звичайних відповідей).
-- `/model status` стосується **моделей/аутентифікації/ендпоінтів**, а не використання.
+- **Використання/квота провайдера** (наприклад, «Claude 80% left») показується в `/status` для поточного провайдера моделі, коли відстеження використання увімкнено. OpenClaw нормалізує вікна провайдерів до `% left`; для MiniMax поля відсотка лише із залишком інвертуються перед показом, а відповіді `model_remains` віддають перевагу запису chat-model плюс мітці плану з тегом моделі.
+- **Рядки token/cache** у `/status` можуть повертатися до останнього запису використання в транскрипті, якщо актуальний знімок сесії бідний на дані. Наявні ненульові актуальні значення все одно мають пріоритет, а повернення до транскрипту також може відновити мітку активної моделі під час виконання плюс більший загальний обсяг, орієнтований на prompt, коли збережені підсумки відсутні або менші.
+- **Tokens/cost для кожної відповіді** керується через `/usage off|tokens|full` (додається до звичайних відповідей).
+- `/model status` стосується **моделей/автентифікації/ендпойнтів**, а не використання.
## Вибір моделі (`/model`)
@@ -213,13 +251,13 @@ x-i18n:
Примітки:
- `/model` і `/model list` показують компактний нумерований вибір (сімейство моделей + доступні провайдери).
-- У Discord `/model` і `/models` відкривають інтерактивний вибір із випадними списками провайдера та моделі й кроком Submit.
-- `/model <#>` вибирає з цього списку (і, якщо можливо, віддає перевагу поточному провайдеру).
-- `/model status` показує докладний вигляд, зокрема налаштований ендпоінт провайдера (`baseUrl`) і режим API (`api`), якщо доступно.
+- У Discord `/model` і `/models` відкривають інтерактивний вибір із випадними списками провайдера та моделі плюс кроком Submit.
+- `/model <#>` вибирає зі списку вибору (і за можливості віддає перевагу поточному провайдеру).
+- `/model status` показує детальний вигляд, зокрема налаштований ендпойнт провайдера (`baseUrl`) і режим API (`api`), коли доступно.
-## Перевизначення налагодження
+## Перевизначення для налагодження
-`/debug` дає змогу задавати перевизначення конфігурації **лише під час виконання** (у пам’яті, не на диску). Лише для власника. Типово вимкнено; увімкніть через `commands.debug: true`.
+`/debug` дає змогу задавати перевизначення конфігурації **лише під час виконання** (пам’ять, не диск). Лише для власника. Типово вимкнено; увімкніть через `commands.debug: true`.
Приклади:
@@ -252,7 +290,7 @@ x-i18n:
Примітки:
-- Перед записом конфігурація проходить валідацію; недійсні зміни відхиляються.
+- Конфігурація перевіряється перед записом; недійсні зміни відхиляються.
- Оновлення `/config` зберігаються після перезапусків.
## Оновлення MCP
@@ -271,11 +309,11 @@ x-i18n:
Примітки:
- `/mcp` зберігає конфігурацію в конфігурації OpenClaw, а не в налаштуваннях проєкту, що належать Pi.
-- Адаптери середовища виконання вирішують, які транспорти реально можна виконати.
+- Адаптери під час виконання вирішують, які транспорти реально можна виконати.
-## Оновлення plugins
+## Оновлення plugin
-`/plugins` дає операторам змогу переглядати виявлені plugins і перемикати стан увімкнення в конфігурації. Для сценаріїв лише читання можна використовувати `/plugin` як псевдонім. Типово вимкнено; увімкніть через `commands.plugins: true`.
+`/plugins` дає операторам змогу переглядати знайдені plugin і перемикати стан увімкнення в конфігурації. Потоки лише для читання можуть використовувати `/plugin` як псевдонім. Типово вимкнено; увімкніть через `commands.plugins: true`.
Приклади:
@@ -289,30 +327,30 @@ x-i18n:
Примітки:
-- `/plugins list` і `/plugins show` використовують реальне виявлення plugins для поточного workspace і конфігурації на диску.
-- `/plugins enable|disable` оновлює лише конфігурацію plugin; команди не встановлюють і не видаляють plugins.
+- `/plugins list` і `/plugins show` використовують реальне виявлення plugin для поточного workspace плюс конфігурацію на диску.
+- `/plugins enable|disable` оновлює лише конфігурацію plugin; це не встановлює і не видаляє plugin.
- Після змін увімкнення/вимкнення перезапустіть gateway, щоб застосувати їх.
-## Примітки про поверхні
+## Примітки щодо поверхонь
-- **Текстові команди** виконуються у звичайному сеансі чату (DM ділять `main`, групи мають власний сеанс).
-- **Нативні команди** використовують ізольовані сеанси:
+- **Текстові команди** виконуються у звичайній чат-сесії (приватні повідомлення використовують `main`, групи мають власну сесію).
+- **Нативні команди** використовують ізольовані сесії:
- Discord: `agent::discord:slash:`
- Slack: `agent::slack:slash:` (префікс налаштовується через `channels.slack.slashCommand.sessionPrefix`)
- - Telegram: `telegram:slash:` (націлюється на сеанс чату через `CommandTargetSessionKey`)
-- **`/stop`** націлюється на активний сеанс чату, щоб можна було перервати поточне виконання.
-- **Slack:** `channels.slack.slashCommand` усе ще підтримується для однієї команди у стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну слеш-команду Slack для кожної вбудованої команди (з тими самими назвами, що й у `/help`). Меню аргументів команд для Slack доставляються як тимчасові кнопки Block Kit.
- - Виняток для нативної команди Slack: зареєструйте `/agentstatus` (а не `/status`), тому що Slack резервує `/status`. Текстова `/status` у повідомленнях Slack усе одно працює.
+ - Telegram: `telegram:slash:` (націлюється на чат-сесію через `CommandTargetSessionKey`)
+- **`/stop`** націлюється на активну чат-сесію, щоб можна було перервати поточний запуск.
+- **Slack:** `channels.slack.slashCommand` усе ще підтримується для однієї команди у стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, ви повинні створити одну слеш-команду Slack для кожної вбудованої команди (з тими ж назвами, що й `/help`). Меню аргументів команд для Slack доставляються як ефемерні кнопки Block Kit.
+ - Виняток для нативної команди Slack: зареєструйте `/agentstatus` (не `/status`), тому що Slack резервує `/status`. Текстова `/status` у повідомленнях Slack усе одно працює.
## Побічні запитання BTW
-`/btw` — це швидке **побічне запитання** про поточний сеанс.
+`/btw` — це швидке **побічне запитання** про поточну сесію.
На відміну від звичайного чату:
-- воно використовує поточний сеанс як фоновий контекст,
-- воно виконується як окремий одноразовий виклик **без інструментів**,
-- воно не змінює майбутній контекст сеансу,
+- воно використовує поточну сесію як фоновий контекст,
+- воно виконується як окремий **одноразовий** виклик без інструментів,
+- воно не змінює майбутній контекст сесії,
- воно не записується в історію транскрипту,
- воно доставляється як живий побічний результат, а не як звичайне повідомлення асистента.
@@ -325,5 +363,5 @@ x-i18n:
/btw what are we doing right now?
```
-Див. [BTW Side Questions](/uk/tools/btw), щоб ознайомитися з повною поведінкою та
-деталями UX клієнта.
+Див. [BTW Side Questions](/uk/tools/btw), щоб дізнатися про повну поведінку та деталі
+клієнтського UX.
diff --git a/docs/uk/tools/tts.md b/docs/uk/tools/tts.md
index a0d90eac0..8c72ee32c 100644
--- a/docs/uk/tools/tts.md
+++ b/docs/uk/tools/tts.md
@@ -1,20 +1,20 @@
---
read_when:
- - Увімкнення text-to-speech для відповідей
- - Налаштування провайдерів TTS або лімітів
+ - Увімкнення синтезу мовлення для відповідей
+ - Налаштування провайдерів TTS або обмежень
- Використання команд /tts
-summary: Text-to-speech (TTS) для вихідних відповідей
-title: Text-to-Speech
+summary: Синтез мовлення (TTS) для вихідних відповідей
+title: Синтез мовлення
x-i18n:
- generated_at: "2026-04-05T18:21:44Z"
+ generated_at: "2026-04-08T05:14:21Z"
model: gpt-5.4
provider: openai
- source_hash: 8487c8acef7585bd4eb5e3b39e2a063ebc6b5f0103524abdcbadd3a7781ffc46
+ source_hash: 6e0fbcaf61282733c134f682e05a71f94d2169c03a85131ce9ad233c71a1e533
source_path: tools/tts.md
workflow: 15
---
-# Text-to-speech (TTS)
+# Синтез мовлення (TTS)
OpenClaw може перетворювати вихідні відповіді на аудіо за допомогою ElevenLabs, Microsoft, MiniMax або OpenAI.
Це працює всюди, де OpenClaw може надсилати аудіо.
@@ -24,18 +24,18 @@ OpenClaw може перетворювати вихідні відповіді
- **ElevenLabs** (основний або резервний провайдер)
- **Microsoft** (основний або резервний провайдер; поточна вбудована реалізація використовує `node-edge-tts`)
- **MiniMax** (основний або резервний провайдер; використовує API T2A v2)
-- **OpenAI** (основний або резервний провайдер; також використовується для summary)
+- **OpenAI** (основний або резервний провайдер; також використовується для підсумків)
-### Примітки щодо мовлення Microsoft
+### Примітки щодо Microsoft speech
-Поточний вбудований провайдер мовлення Microsoft використовує онлайн-сервіс
-нейронного TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це хостований сервіс (не
-локальний), який використовує кінцеві точки Microsoft і не потребує API key.
+Поточний вбудований провайдер Microsoft speech наразі використовує онлайн-
+сервіс нейромережевого TTS Microsoft Edge через бібліотеку `node-edge-tts`. Це хостинговий сервіс (не
+локальний), він використовує кінцеві точки Microsoft і не потребує API-ключа.
`node-edge-tts` надає параметри конфігурації мовлення та формати виводу, але
-не всі параметри підтримуються сервісом. Застаріла конфігурація та вхід директив
-із `edge` усе ще працюють і нормалізуються до `microsoft`.
+сервіс підтримує не всі параметри. Застаріла конфігурація та вхідні директиви
+з `edge` усе ще працюють і нормалізуються до `microsoft`.
-Оскільки цей шлях використовує публічний вебсервіс без опублікованого SLA чи квоти,
+Оскільки цей шлях використовує публічний вебсервіс без опублікованих SLA або квот,
розглядайте його як best-effort. Якщо вам потрібні гарантовані ліміти та підтримка, використовуйте OpenAI
або ElevenLabs.
@@ -47,34 +47,34 @@ OpenClaw може перетворювати вихідні відповіді
- `MINIMAX_API_KEY`
- `OPENAI_API_KEY`
-Мовлення Microsoft **не** потребує API key.
+Microsoft speech **не** потребує API-ключа.
-Якщо налаштовано кілька провайдерів, спочатку використовується вибраний провайдер, а інші стають резервними варіантами.
-Auto-summary використовує налаштований `summaryModel` (або `agents.defaults.model.primary`),
-тому якщо ви вмикаєте summary, цей провайдер також має бути автентифікований.
+Якщо налаштовано кілька провайдерів, спочатку використовується вибраний провайдер, а інші слугують резервними варіантами.
+Автоматичний підсумок використовує налаштований `summaryModel` (або `agents.defaults.model.primary`),
+тому цей провайдер також має бути автентифікований, якщо ви вмикаєте підсумки.
## Посилання на сервіси
- [Посібник OpenAI Text-to-Speech](https://platform.openai.com/docs/guides/text-to-speech)
-- [Довідник OpenAI Audio API](https://platform.openai.com/docs/api-reference/audio)
+- [Довідка OpenAI Audio API](https://platform.openai.com/docs/api-reference/audio)
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
- [Автентифікація ElevenLabs](https://elevenlabs.io/docs/api-reference/authentication)
-- [API MiniMax T2A v2](https://platform.minimaxi.com/document/T2A%20V2)
+- [MiniMax T2A v2 API](https://platform.minimaxi.com/document/T2A%20V2)
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
- [Формати виводу Microsoft Speech](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
-## Чи ввімкнено це типово?
+## Чи ввімкнено це за замовчуванням?
-Ні. Auto‑TTS **вимкнено** типово. Увімкніть його в конфігурації через
-`messages.tts.auto` або для окремої сесії через `/tts always` (псевдонім: `/tts on`).
+Ні. Авто‑TTS **вимкнено** за замовчуванням. Увімкніть його в конфігурації через
+`messages.tts.auto` або локально за допомогою `/tts on`.
Коли `messages.tts.provider` не задано, OpenClaw вибирає перший налаштований
-провайдер мовлення в порядку auto-select реєстру.
+мовний провайдер у порядку автоматичного вибору реєстру.
## Конфігурація
-Конфігурація TTS міститься в `messages.tts` у `openclaw.json`.
-Повна схема наведена в [Gateway configuration](/uk/gateway/configuration).
+Конфігурація TTS розташована в `messages.tts` у `openclaw.json`.
+Повна схема наведена в [Конфігурація Gateway](/uk/gateway/configuration).
### Мінімальна конфігурація (увімкнення + провайдер)
@@ -89,7 +89,7 @@ Auto-summary використовує налаштований `summaryModel` (
}
```
-### OpenAI як основний із резервним ElevenLabs
+### OpenAI як основний, ElevenLabs як резервний
```json5
{
@@ -130,7 +130,7 @@ Auto-summary використовує налаштований `summaryModel` (
}
```
-### Microsoft як основний (без API key)
+### Microsoft як основний (без API-ключа)
```json5
{
@@ -177,7 +177,7 @@ Auto-summary використовує налаштований `summaryModel` (
}
```
-### Вимкнення мовлення Microsoft
+### Вимкнути Microsoft speech
```json5
{
@@ -193,7 +193,7 @@ Auto-summary використовує налаштований `summaryModel` (
}
```
-### Власні ліміти + шлях до prefs
+### Власні обмеження + шлях до prefs
```json5
{
@@ -220,7 +220,7 @@ Auto-summary використовує налаштований `summaryModel` (
}
```
-### Вимкнення auto-summary для довгих відповідей
+### Вимкнути автоматичний підсумок для довгих відповідей
```json5
{
@@ -240,63 +240,63 @@ Auto-summary використовує налаштований `summaryModel` (
### Примітки щодо полів
-- `auto`: режим auto‑TTS (`off`, `always`, `inbound`, `tagged`).
+- `auto`: режим авто‑TTS (`off`, `always`, `inbound`, `tagged`).
- `inbound` надсилає аудіо лише після вхідного голосового повідомлення.
- `tagged` надсилає аудіо лише тоді, коли відповідь містить теги `[[tts]]`.
-- `enabled`: застарілий перемикач (doctor переносить його до `auto`).
+- `enabled`: застарілий перемикач (doctor переносить його в `auto`).
- `mode`: `"final"` (типово) або `"all"` (включає відповіді інструментів/блоків).
-- `provider`: id провайдера мовлення, наприклад `"elevenlabs"`, `"microsoft"`, `"minimax"` або `"openai"` (резервний варіант вибирається автоматично).
-- Якщо `provider` **не задано**, OpenClaw використовує перший налаштований провайдер мовлення в порядку auto-select реєстру.
+- `provider`: ідентифікатор мовного провайдера, наприклад `"elevenlabs"`, `"microsoft"`, `"minimax"` або `"openai"` (резервне перемикання відбувається автоматично).
+- Якщо `provider` **не задано**, OpenClaw використовує перший налаштований мовний провайдер у порядку автоматичного вибору реєстру.
- Застаріле `provider: "edge"` усе ще працює й нормалізується до `microsoft`.
-- `summaryModel`: необов’язкова дешева модель для auto-summary; типово `agents.defaults.model.primary`.
- - Приймає `provider/model` або налаштований псевдонім моделі.
-- `modelOverrides`: дозволяє моделі виводити директиви TTS (типово ввімкнено).
- - `allowProvider` типово дорівнює `false` (перемикання провайдера вмикається окремо).
-- `providers.`: налаштування конкретного провайдера за id провайдера мовлення.
-- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) автоматично переносяться до `messages.tts.providers.` під час завантаження.
-- `maxTextLength`: жорсткий ліміт для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо його перевищено.
+- `summaryModel`: необов’язкова дешева модель для автоматичного підсумку; типово `agents.defaults.model.primary`.
+ - Приймає `provider/model` або псевдонім налаштованої моделі.
+- `modelOverrides`: дозволяє моделі видавати директиви TTS (увімкнено за замовчуванням).
+ - `allowProvider` типово має значення `false` (перемикання провайдера вмикається окремо).
+- `providers.`: налаштування, що належать провайдеру, з ключем ідентифікатора мовного провайдера.
+- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) автоматично мігруються до `messages.tts.providers.` під час завантаження.
+- `maxTextLength`: жорстке обмеження для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо його перевищено.
- `timeoutMs`: тайм-аут запиту (мс).
-- `prefsPath`: перевизначає локальний шлях до JSON prefs (provider/limit/summary).
-- Значення `apiKey` резервно беруться зі змінних середовища (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`).
-- `providers.elevenlabs.baseUrl`: перевизначає базову URL-адресу API ElevenLabs.
+- `prefsPath`: перевизначає локальний шлях до JSON-файлу налаштувань (провайдер/ліміт/підсумок).
+- Значення `apiKey` беруться з env vars, якщо не задані (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`).
+- `providers.elevenlabs.baseUrl`: перевизначає базовий URL API ElevenLabs.
- `providers.openai.baseUrl`: перевизначає кінцеву точку OpenAI TTS.
- Порядок визначення: `messages.tts.providers.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1`
- - Значення, відмінні від типового, розглядаються як OpenAI-compatible кінцеві точки TTS, тому дозволені власні назви моделей і голосів.
+ - Значення, відмінні від типового, розглядаються як OpenAI-сумісні кінцеві точки TTS, тому приймаються власні назви моделей і голосів.
- `providers.elevenlabs.voiceSettings`:
- `stability`, `similarityBoost`, `style`: `0..1`
- `useSpeakerBoost`: `true|false`
- - `speed`: `0.5..2.0` (1.0 = звичайно)
+ - `speed`: `0.5..2.0` (1.0 = звичайна швидкість)
- `providers.elevenlabs.applyTextNormalization`: `auto|on|off`
-- `providers.elevenlabs.languageCode`: дволітерний ISO 639-1 (наприклад, `en`, `de`)
-- `providers.elevenlabs.seed`: ціле число `0..4294967295` (best-effort determinism)
-- `providers.minimax.baseUrl`: перевизначає базову URL-адресу API MiniMax (типово `https://api.minimax.io`, env: `MINIMAX_API_HOST`).
+- `providers.elevenlabs.languageCode`: 2-літерний ISO 639-1 (наприклад, `en`, `de`)
+- `providers.elevenlabs.seed`: ціле число `0..4294967295` (детермінованість у режимі best-effort)
+- `providers.minimax.baseUrl`: перевизначає базовий URL API MiniMax (типово `https://api.minimax.io`, env: `MINIMAX_API_HOST`).
- `providers.minimax.model`: модель TTS (типово `speech-2.8-hd`, env: `MINIMAX_TTS_MODEL`).
- `providers.minimax.voiceId`: ідентифікатор голосу (типово `English_expressive_narrator`, env: `MINIMAX_TTS_VOICE_ID`).
- `providers.minimax.speed`: швидкість відтворення `0.5..2.0` (типово 1.0).
- `providers.minimax.vol`: гучність `(0, 10]` (типово 1.0; має бути більшою за 0).
- `providers.minimax.pitch`: зсув тону `-12..12` (типово 0).
-- `providers.microsoft.enabled`: дозволяє використання мовлення Microsoft (типово `true`; без API key).
-- `providers.microsoft.voice`: назва нейронного голосу Microsoft (наприклад, `en-US-MichelleNeural`).
+- `providers.microsoft.enabled`: дозволяє використовувати Microsoft speech (типово `true`; без API-ключа).
+- `providers.microsoft.voice`: назва нейромережевого голосу Microsoft (наприклад, `en-US-MichelleNeural`).
- `providers.microsoft.lang`: код мови (наприклад, `en-US`).
- `providers.microsoft.outputFormat`: формат виводу Microsoft (наприклад, `audio-24khz-48kbitrate-mono-mp3`).
- - Коректні значення див. у форматах виводу Microsoft Speech; не всі формати підтримуються вбудованим транспортом на основі Edge.
+ - Дійсні значення див. у Microsoft Speech output formats; не всі формати підтримуються вбудованим транспортом на основі Edge.
- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: рядки з відсотками (наприклад, `+10%`, `-5%`).
-- `providers.microsoft.saveSubtitles`: записує JSON-субтитри поруч з аудіофайлом.
-- `providers.microsoft.proxy`: URL-адреса проксі для запитів мовлення Microsoft.
+- `providers.microsoft.saveSubtitles`: записувати JSON-субтитри поруч з аудіофайлом.
+- `providers.microsoft.proxy`: URL проксі для запитів Microsoft speech.
- `providers.microsoft.timeoutMs`: перевизначення тайм-ауту запиту (мс).
- `edge.*`: застарілий псевдонім для тих самих налаштувань Microsoft.
-## Перевизначення, керовані моделлю (типово ввімкнені)
+## Керовані моделлю перевизначення (увімкнено за замовчуванням)
-Типово модель **може** виводити директиви TTS для однієї окремої відповіді.
+За замовчуванням модель **може** видавати директиви TTS для однієї відповіді.
Коли `messages.tts.auto` має значення `tagged`, ці директиви потрібні для запуску аудіо.
-Коли це ввімкнено, модель може виводити директиви `[[tts:...]]` для перевизначення голосу
-для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`,
-щоб додати виразні теги (сміх, підказки до співу тощо), які мають з’являтися лише в
-аудіо.
+Коли це ввімкнено, модель може видавати директиви `[[tts:...]]`, щоб перевизначити голос
+для однієї відповіді, а також необов’язковий блок `[[tts:text]]...[[/tts:text]]`, щоб
+надати виразні теги (сміх, підказки для співу тощо), які мають з’являтися лише
+в аудіо.
-Директиви `provider=...` ігноруються, якщо `modelOverrides.allowProvider: true` не ввімкнено.
+Директиви `provider=...` ігноруються, якщо не встановлено `modelOverrides.allowProvider: true`.
Приклад payload відповіді:
@@ -309,17 +309,17 @@ Here you go.
Доступні ключі директив (коли ввімкнено):
-- `provider` (id зареєстрованого провайдера мовлення, наприклад `openai`, `elevenlabs`, `minimax` або `microsoft`; потребує `allowProvider: true`)
+- `provider` (ідентифікатор зареєстрованого мовного провайдера, наприклад `openai`, `elevenlabs`, `minimax` або `microsoft`; потребує `allowProvider: true`)
- `voice` (голос OpenAI) або `voiceId` (ElevenLabs / MiniMax)
-- `model` (модель OpenAI TTS, id моделі ElevenLabs або модель MiniMax)
+- `model` (модель OpenAI TTS, model id ElevenLabs або модель MiniMax)
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
- `vol` / `volume` (гучність MiniMax, 0-10)
-- `pitch` (тон MiniMax, -12 до 12)
+- `pitch` (тон MiniMax, від -12 до 12)
- `applyTextNormalization` (`auto|on|off`)
- `languageCode` (ISO 639-1)
- `seed`
-Вимкнення всіх перевизначень моделі:
+Вимкнути всі перевизначення моделі:
```json5
{
@@ -333,7 +333,7 @@ Here you go.
}
```
-Необов’язковий allowlist (увімкнути перемикання провайдера, але залишити інші параметри налаштовуваними):
+Необов’язковий список дозволів (увімкнути перемикання провайдера, залишивши інші параметри налаштовуваними):
```json5
{
@@ -349,17 +349,17 @@ Here you go.
}
```
-## Налаштування для окремого користувача
+## Налаштування для кожного користувача
-Команди slash записують локальні перевизначення до `prefsPath` (типово:
-`~/.openclaw/settings/tts.json`, можна перевизначити через `OPENCLAW_TTS_PREFS` або
+Slash commands записують локальні перевизначення в `prefsPath` (типово:
+`~/.openclaw/settings/tts.json`, перевизначається через `OPENCLAW_TTS_PREFS` або
`messages.tts.prefsPath`).
Поля, що зберігаються:
- `enabled`
- `provider`
-- `maxLength` (поріг для summary; типово 1500 символів)
+- `maxLength` (поріг для підсумку; типово 1500 символів)
- `summarize` (типово `true`)
Вони перевизначають `messages.tts.*` для цього хоста.
@@ -370,28 +370,28 @@ Here you go.
- 48 кГц / 64 кбіт/с — хороший компроміс для голосових повідомлень.
- **Інші канали**: MP3 (`mp3_44100_128` від ElevenLabs, `mp3` від OpenAI).
- 44.1 кГц / 128 кбіт/с — типовий баланс для чіткості мовлення.
-- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц). Формат голосових нотаток нативно не підтримується; використовуйте OpenAI або ElevenLabs для гарантованих голосових повідомлень Opus.
+- **MiniMax**: MP3 (модель `speech-2.8-hd`, частота дискретизації 32 кГц). Формат голосових нотаток нативно не підтримується; використовуйте OpenAI або ElevenLabs, якщо вам потрібні гарантовані голосові повідомлення Opus.
- **Microsoft**: використовує `microsoft.outputFormat` (типово `audio-24khz-48kbitrate-mono-mp3`).
- - Вбудований транспорт приймає `outputFormat`, але не всі формати доступні в сервісі.
- - Значення форматів виводу відповідають форматам виводу Microsoft Speech (включно з Ogg/WebM Opus).
- - `sendVoice` у Telegram приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні
+ - Вбудований транспорт приймає `outputFormat`, але сервіс надає не всі формати.
+ - Значення форматів виводу відповідають Microsoft Speech output formats (включно з Ogg/WebM Opus).
+ - Telegram `sendVoice` приймає OGG/MP3/M4A; використовуйте OpenAI/ElevenLabs, якщо вам потрібні
гарантовані голосові повідомлення Opus.
- - Якщо налаштований формат виводу Microsoft не спрацьовує, OpenClaw повторює спробу з MP3.
+ - Якщо налаштований формат виводу Microsoft завершується помилкою, OpenClaw повторює спробу з MP3.
Формати виводу OpenAI/ElevenLabs є фіксованими для кожного каналу (див. вище).
-## Поведінка Auto-TTS
+## Поведінка авто-TTS
-Коли це ввімкнено, OpenClaw:
+Коли функцію ввімкнено, OpenClaw:
- пропускає TTS, якщо відповідь уже містить медіа або директиву `MEDIA:`.
- пропускає дуже короткі відповіді (< 10 символів).
-- виконує summary довгих відповідей, якщо це ввімкнено, за допомогою `agents.defaults.model.primary` (або `summaryModel`).
+- підсумовує довгі відповіді, якщо це ввімкнено, за допомогою `agents.defaults.model.primary` (або `summaryModel`).
- додає згенероване аудіо до відповіді.
-Якщо відповідь перевищує `maxLength`, а summary вимкнено (або немає API key для
-моделі summary), аудіо
-пропускається, і надсилається звичайна текстова відповідь.
+Якщо відповідь перевищує `maxLength`, а підсумок вимкнено (або немає API-ключа для
+моделі підсумку), аудіо
+пропускається і надсилається звичайна текстова відповідь.
## Діаграма потоку
@@ -408,19 +408,17 @@ Reply -> TTS enabled?
-> TTS -> attach audio
```
-## Використання slash-команди
+## Використання Slash command
Є одна команда: `/tts`.
-Подробиці ввімкнення див. у [Slash commands](/tools/slash-commands).
+Докладніше про ввімкнення див. у [Slash commands](/uk/tools/slash-commands).
-Примітка для Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє там
-`/voice` як нативну команду. Текстовий варіант `/tts ...` усе ще працює.
+Примітка для Discord: `/tts` — це вбудована команда Discord, тому OpenClaw реєструє
+`/voice` як нативну команду там. Текстова команда `/tts ...` усе ще працює.
```
/tts off
-/tts always
-/tts inbound
-/tts tagged
+/tts on
/tts status
/tts provider openai
/tts limit 2000
@@ -432,20 +430,22 @@ Reply -> TTS enabled?
- Команди потребують авторизованого відправника (правила allowlist/owner усе ще застосовуються).
- Має бути ввімкнено `commands.text` або реєстрацію нативних команд.
-- `off|always|inbound|tagged` — це перемикачі для окремої сесії (`/tts on` є псевдонімом для `/tts always`).
-- `limit` і `summary` зберігаються в локальних prefs, а не в основній конфігурації.
+- Конфігурація `messages.tts.auto` приймає `off|always|inbound|tagged`.
+- `/tts on` записує локальне налаштування TTS як `always`; `/tts off` записує його як `off`.
+- Використовуйте конфігурацію, якщо вам потрібні типові значення `inbound` або `tagged`.
+- `limit` і `summary` зберігаються в локальних налаштуваннях, а не в основній конфігурації.
- `/tts audio` генерує одноразову аудіовідповідь (не вмикає TTS постійно).
-- `/tts status` містить видимість fallback для останньої спроби:
- - успішний fallback: `Fallback: -> ` плюс `Attempts: ...`
+- `/tts status` містить видимість резервного перемикання для останньої спроби:
+ - успішне резервне перемикання: `Fallback: -> ` плюс `Attempts: ...`
- помилка: `Error: ...` плюс `Attempts: ...`
- докладна діагностика: `Attempt details: provider:outcome(reasonCode) latency`
-- Помилки API OpenAI та ElevenLabs тепер містять розібрані деталі помилки провайдера та id запиту (коли провайдер їх повертає), які відображаються в помилках/логах TTS.
+- Помилки API OpenAI та ElevenLabs тепер містять розібрані деталі помилки провайдера та request id (коли провайдер їх повертає), які відображаються в помилках/логах TTS.
## Інструмент агента
-Інструмент `tts` перетворює текст на мовлення і повертає аудіовкладення для
+Інструмент `tts` перетворює текст на мовлення та повертає аудіовкладення для
доставки у відповіді. Коли каналом є Feishu, Matrix, Telegram або WhatsApp,
-аудіо доставляється як голосове повідомлення, а не як файлове вкладення.
+аудіо доставляється як голосове повідомлення, а не як вкладений файл.
## Gateway RPC