chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-08 05:15:04 +00:00
parent 28cd39920d
commit cd0b286f4f
3 changed files with 478 additions and 436 deletions

View File

@ -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 читає необов’язкову конфігурацію <Tooltip tip="JSON5 supports comments and trailing commas">**JSON5**</Tooltip> з `~/.openclaw/openclaw.json`.
Якщо файл відсутній, OpenClaw використовує безпечні типові значення. Типові причини додати конфігурацію:
Якщо файл відсутній, OpenClaw використовує безпечні значення за замовчуванням. Поширені причини додати конфігурацію:
- Підключити канали та визначити, хто може надсилати повідомлення боту
- Задати моделі, інструменти, sandboxing або автоматизацію (cron, hooks)
- Налаштувати моделі, інструменти, ізоляцію або автоматизацію (cron, hooks)
- Налаштувати сесії, медіа, мережу або UI
Усі доступні поля див. у [повному довіднику](/gateway/configuration-reference).
Див. [повний довідник](/uk/gateway/configuration-reference) для всіх доступних полів.
<Tip>
**Вперше працюєте з конфігурацією?** Почніть з `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/gateway/configuration-examples) з готовими повними конфігураціями для копіювання.
**Новачок у конфігурації?** Почніть із `openclaw onboard` для інтерактивного налаштування або перегляньте посібник [Приклади конфігурації](/uk/gateway/configuration-examples) із готовими повними конфігураціями для копіювання.
</Tip>
## Мінімальна конфігурація
@ -45,8 +45,8 @@ OpenClaw читає необов’язкову конфігурацію <Toolti
<Tabs>
<Tab title="Інтерактивний майстер">
```bash
openclaw onboard # full onboarding flow
openclaw configure # config wizard
openclaw onboard # повний процес початкового налаштування
openclaw configure # майстер конфігурації
```
</Tab>
<Tab title="CLI (однорядкові команди)">
@ -58,63 +58,67 @@ OpenClaw читає необов’язкову конфігурацію <Toolti
</Tab>
<Tab title="Control UI">
Відкрийте [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`, щоб
отримати один вузол схеми, обмежений шляхом, разом із короткими зведеннями безпосередніх дочірніх елементів.
</Tab>
<Tab title="Пряме редагування">
Редагуйте `~/.openclaw/openclaw.json` безпосередньо. Gateway стежить за файлом і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
Відредагуйте `~/.openclaw/openclaw.json` напряму. Gateway стежить за файлом і автоматично застосовує зміни (див. [гаряче перезавантаження](#config-hot-reload)).
</Tab>
</Tabs>
## Сувора валідація
<Warning>
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, неправильні типи або недійсні значення змушують Gateway **відмовитися від запуску**. Єдиний виняток на кореневому рівні — `$schema` (string), щоб редактори могли підключати метадані JSON Schema.
OpenClaw приймає лише конфігурації, які повністю відповідають схемі. Невідомі ключі, некоректні типи або недійсні значення призводять до того, що Gateway **відмовляється запускатися**. Єдиний виняток на рівні кореня — `$schema` (рядок), щоб редактори могли додавати метадані JSON Schema.
</Warning>
Примітки щодо інструментів схем:
Примітки щодо інструментів схеми:
- `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`), щоб застосувати виправлення
## Типові завдання
## Поширені завдання
<AccordionGroup>
<Accordion title="Налаштування каналу (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації під `channels.<provider>`. Кроки налаштування див. на окремій сторінці каналу:
<Accordion title="Налаштувати канал (WhatsApp, Telegram, Discord тощо)">
Кожен канал має власний розділ конфігурації в `channels.<provider>`. Див. окрему сторінку каналу для кроків налаштування:
- [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 приймає лише конфігурації, які повніст
</Accordion>
<Accordion title="Вибір і налаштування моделей">
Задайте основну модель і необов’язкові резервні варіанти:
<Accordion title="Вибрати й налаштувати моделі">
Налаштуйте основну модель і необов’язкові резервні:
```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) у довіднику.
</Accordion>
<Accordion title="Керування тим, хто може надсилати повідомлення боту">
Доступ до DM керується для кожного каналу через `dmPolicy`:
<Accordion title="Керувати тим, хто може надсилати повідомлення боту">
Доступ до 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) для деталей по кожному каналу.
</Accordion>
<Accordion title="Налаштування gating згадувань у групових чатах">
Для групових повідомлень типово **потрібне згадування**. Налаштуйте шаблони для кожного агента:
<Accordion title="Налаштувати gating згадувань у групових чатах">
Для групових повідомлень типово **потрібна згадка**. Налаштуйте шаблони для кожного агента:
```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.
</Accordion>
<Accordion title="Обмеження Skills для окремого агента">
Використовуйте `agents.defaults.skills` для спільного базового набору, а потім перевизначайте конкретні
агенти через `agents.list[].skills`:
<Accordion title="Обмежити 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).
</Accordion>
<Accordion title="Налаштування моніторингу стану каналів gateway">
<Accordion title="Налаштувати моніторинг стану каналів gateway">
Керуйте тим, наскільки агресивно gateway перезапускає канали, які виглядають застарілими:
```json5
@ -254,20 +258,20 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- Задайте `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски за health-monitor.
- `channelStaleEventThresholdMinutes` має бути більшим або рівним інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу або облікового запису без вимкнення глобального монітора.
- Для операційного налагодження див. [Health Checks](/gateway/health), а всі поля — у [повному довіднику](/gateway/configuration-reference#gateway).
- Встановіть `gateway.channelHealthCheckMinutes: 0`, щоб глобально вимкнути перезапуски health-monitor.
- `channelStaleEventThresholdMinutes` має бути більшим або дорівнювати інтервалу перевірки.
- Використовуйте `channels.<provider>.healthMonitor.enabled` або `channels.<provider>.accounts.<id>.healthMonitor.enabled`, щоб вимкнути автоперезапуски для одного каналу чи облікового запису без вимкнення глобального монітора.
- Див. [Health Checks](/uk/gateway/health) для операційного налагодження та [повний довідник](/uk/gateway/configuration-reference#gateway) для всіх полів.
</Accordion>
<Accordion title="Налаштування сесій і скидань">
Сесії керують безперервністю розмови та ізоляцією:
<Accordion title="Налаштувати сесії та скидання">
Сесії керують безперервністю та ізоляцією розмов:
```json5
{
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) для всіх полів.
</Accordion>
<Accordion title="Увімкнення sandboxing">
Запускайте сесії агентів в ізольованих Docker-контейнерах:
<Accordion title="Увімкнути ізоляцію">
Запускайте сесії агентів в ізольованих контейнерах 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) для всіх параметрів.
</Accordion>
<Accordion title="Увімкнення push через relay для офіційних збірок iOS">
<Accordion title="Увімкнути push через relay для офіційних збірок iOS">
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.
</Accordion>
<Accordion title="Налаштування heartbeat (періодичних check-in)">
<Accordion title="Налаштувати heartbeat (періодичні перевірки)">
```json5
{
agents: {
@ -382,14 +386,14 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- `every`: рядок тривалості (`30m`, `2h`). Задайте `0m`, щоб вимкнути.
- `target`: `last` | `none` | `<channel-id>` (наприклад `discord`, `matrix`, `telegram` або `whatsapp`)
- `every`: рядок тривалості (`30m`, `2h`). Встановіть `0m`, щоб вимкнути.
- `target`: `last` | `none` | `<channel-id>` (наприклад, `discord`, `matrix`, `telegram` або `whatsapp`)
- `directPolicy`: `allow` (типово) або `block` для heartbeat-цілей у стилі DM
- Повний посібник див. у [Heartbeat](/gateway/heartbeat).
- Див. [Heartbeat](/uk/gateway/heartbeat) для повного посібника.
</Accordion>
<Accordion title="Налаштування cron jobs">
<Accordion title="Налаштувати cron jobs">
```json5
{
cron: {
@ -404,14 +408,14 @@ OpenClaw приймає лише конфігурації, які повніст
}
```
- `sessionRetention`: очищення завершених ізольованих сесій запусків із `sessions.json` (типово `24h`; задайте `false`, щоб вимкнути).
- `runLog`: очищення `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Огляд функцій і приклади CLI див. у [Cron jobs](/automation/cron-jobs).
- `sessionRetention`: очищати завершені ізольовані сесії запуску з `sessions.json` (типове значення `24h`; встановіть `false`, щоб вимкнути).
- `runLog`: очищати `cron/runs/<jobId>.jsonl` за розміром і кількістю збережених рядків.
- Див. [Cron jobs](/uk/automation/cron-jobs) для огляду функції та прикладів CLI.
</Accordion>
<Accordion title="Налаштування вебхуків (hooks)">
Увімкніть HTTP webhook-ендпоїнти на Gateway:
<Accordion title="Налаштувати webhooks (hooks)">
Увімкніть 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.
</Accordion>
<Accordion title="Налаштування маршрутизації з кількома агентами">
Запускайте кілька ізольованих агентів з окремими workspace і session:
<Accordion title="Налаштувати маршрутизацію multi-agent">
Запускайте кількох ізольованих агентів з окремими 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 і профілів доступу для кожного агента.
</Accordion>
<Accordion title="Розділення конфігурації на кілька файлів ($include)">
Використовуйте `$include`, щоб організувати великі конфігурації:
<Accordion title="Розділити конфігурацію на кілька файлів ($include)">
Використовуйте `$include`, щоб упорядкувати великі конфігурації:
```json5
// ~/.openclaw/openclaw.json
@ -484,26 +488,26 @@ OpenClaw приймає лише конфігурації, які повніст
```
- **Один файл**: замінює об’єкт, у якому міститься
- **Масив файлів**: deep-merge у заданому порядку (пізніший перемагає)
- **Сусідні ключі**: об’єднуються після includes (перевизначають включені значення)
- **Вкладені includes**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: визначаються відносно файлу, що включає
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу та циклічних include
- **Масив файлів**: deep-merge у вказаному порядку (пізніші мають пріоритет)
- **Сусідні ключі**: зливаються після includeів (перевизначають включені значення)
- **Вкладені include’и**: підтримуються до 10 рівнів вкладеності
- **Відносні шляхи**: обчислюються відносно файла, який виконує включення
- **Обробка помилок**: зрозумілі помилки для відсутніх файлів, помилок парсингу й циклічних includeів
</Accordion>
</AccordionGroup>
## Гаряче перезавантаження конфігурації
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` | **Так** |
<Note>
`gateway.reload` і `gateway.remote` — винятки: їхня зміна **не** викликає перезапуск.
`gateway.reload` і `gateway.remote` — винятки: їх зміна **не** викликає перезапуск.
</Note>
## RPC конфігурації (програмні оновлення)
## Config RPC (програмні оновлення)
<Note>
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`.
</Note>
Безпечний/типовий потік:
- `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`.
<AccordionGroup>
<Accordion title="config.apply (повна заміна)">
Перевіряє + записує повну конфігурацію та перезапускає Gateway одним кроком.
Перевіряє, записує повну конфігурацію та перезапускає Gateway одним кроком.
<Warning>
`config.apply` замінює **всю конфігурацію**. Для часткових оновлень використовуйте `config.patch`, а для окремих ключів — `openclaw config set`.
`config.apply` замінює **всю конфігурацію**. Використовуйте `config.patch` для часткових оновлень або `openclaw config set` для окремих ключів.
</Warning>
Параметри:
- `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": "<hash>",
@ -581,19 +585,19 @@ RPC керуючої площини для запису (`config.apply`, `config
</Accordion>
<Accordion title="config.patch (часткове оновлення)">
Об’єднує часткове оновлення з наявною конфігурацією (семантика 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 із батьківського процесу, а
}
```
<Accordion title="Імпорт shell env (необов’язково)">
Якщо ввімкнено і очікувані ключі не задано, OpenClaw запускає ваш login shell і імпортує лише відсутні ключі:
<Accordion title="Імпорт env із shell (необов’язково)">
Якщо це ввімкнено й очікувані ключі не задано, OpenClaw запускає вашу login shell і імпортує лише відсутні ключі:
```json5
{
@ -638,7 +642,7 @@ OpenClaw читає env vars із батьківського процесу, а
</Accordion>
<Accordion title="Підстановка env var у значеннях конфігурації">
Посилайтеся на 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"`
</Accordion>
<Accordion title="Secret refs (env, file, exec)">
Для полів, які підтримують об’єкти 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).
</Accordion>
Повний порядок пріоритетів і джерела див. у [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)_

View File

@ -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 лише для хоста використовує `! <cmd>` (із псевдонімом `/bash <cmd>`).
Команди обробляються Gateway. Більшість команд потрібно надсилати як **окреме** повідомлення, що починається з `/`.
Команда чату bash лише для хоста використовує `! <cmd>` (із `/bash <cmd>` як псевдонімом).
Є дві пов’язані системи:
- **Команди**: окремі повідомлення `/...`.
- **Директиви**: `/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`) вмикає `! <cmd>` для виконання shell-команд хоста (`/bash <cmd>` є псевдонімом; потрібні списки дозволу `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`) вмикає `! <cmd>` для виконання команд оболонки хоста (`/bash <cmd>` — псевдонім; потребує списків дозволених `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 <name> [input]` (запустити skill за назвою)
- `/status` (показати поточний стан; містить використання/квоту провайдера для поточного провайдера моделі, якщо доступно)
- `/tasks` (показати фонові завдання для поточного сеансу; відображає активні та нещодавні деталі завдань із локальними для агента резервними лічильниками)
- `/allowlist` (перегляд/додавання/видалення записів списку дозволу)
- `/approve <id> <decision>` (розв’язати запити на погодження exec; використовуйте повідомлення з очікуваним погодженням для доступних рішень)
- `/context [list|detail|json]` (пояснює «контекст»; `detail` показує розмір для кожного файла + кожного інструмента + кожного skill + системного prompt)
- `/btw <question>` (поставити тимчасове побічне запитання про поточний сеанс без зміни майбутнього контексту сеансу; див. [/tools/btw](/uk/tools/btw))
- `/export-session [path]` (псевдонім: `/export`) (експортувати поточний сеанс у HTML з повним системним prompt)
- `/whoami` (показати ваш sender id; псевдонім: `/id`)
- `/session idle <duration|off>` (керування автоматичним зняттям фокуса через неактивність для прив’язок сфокусованих гілок)
- `/session max-age <duration|off>` (керування жорстким автоматичним зняттям фокуса за максимальним віком для прив’язок сфокусованих гілок)
- `/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 <target>` (Discord: прив’язати цю гілку або нову гілку до цілі сеансу/субагента)
- `/unfocus` (Discord: прибрати поточну прив’язку гілки)
- `/kill <id|#|all>` (негайно перервати один або всі запущені субагенти для цього сеансу; без повідомлення-підтвердження)
- `/steer <id|#> <message>` (негайно спрямувати запущений субагент: під час виконання, якщо можливо, інакше перервати поточну роботу й перезапустити з повідомленням спрямування)
- `/tell <id|#> <message>` (псевдонім для `/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 <spec>` приймає ті самі специфікації plugin, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:<pkg>`.
- Записи для увімкнення/вимкнення все одно повертають підказку про перезапуск. У 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 <off|minimal|low|medium|high|xhigh>` (динамічні варіанти залежно від моделі/провайдера; псевдоніми: `/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=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` (надішліть `/exec`, щоб показати поточне)
- `/model <name>` (псевдонім: `/models`; або `/<alias>` з `agents.defaults.models.*.alias`)
- `/queue <mode>` (плюс параметри на кшталт `debounce:2s cap:25 drop:summarize`; надішліть `/queue`, щоб побачити поточні налаштування)
- `/bash <command>` (лише для хоста; псевдонім для `! <command>`; потребує `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))
- `! <command>` (лише для хоста; по одній за раз; використовуйте `!poll` + `!stop` для довготривалих завдань)
- `!poll` (перевірити вивід / стан; приймає необов’язковий `sessionId`; `/bash poll` також працює)
- `!stop` (зупинити запущене завдання bash; приймає необов’язковий `sessionId`; `/bash stop` також працює)
Доступні сьогодні вбудовані команди:
- `/new [model]` запускає нову сесію; `/reset` — псевдонім для скидання.
- `/compact [instructions]` ущільнює контекст сесії. Див. [/concepts/compaction](/uk/concepts/compaction).
- `/stop` перериває поточний запуск.
- `/session idle <duration|off>` і `/session max-age <duration|off>` керують строком дії прив’язки до потоку.
- `/think <off|minimal|low|medium|high|xhigh>` задає рівень 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=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` показує або задає типові значення exec.
- `/model [name|#|status]` показує або задає модель.
- `/models [provider] [page] [limit=<n>|size=<n>|all]` виводить список провайдерів або моделей для провайдера.
- `/queue <mode>` керує поведінкою черги (`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 <name> [input]` запускає skill за назвою.
- `/allowlist [list|add|remove] ...` керує записами списку дозволених. Лише текст.
- `/approve <id> <decision>` опрацьовує запити на затвердження exec.
- `/btw <question>` ставить побічне запитання без зміни майбутнього контексту сесії. Див. [/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 <target>` прив’язує поточний потік Discord або тему/розмову Telegram до цілі сесії.
- `/unfocus` знімає поточну прив’язку.
- `/agents` перелічує агентів, прив’язаних до потоку, для поточної сесії.
- `/kill <id|#|all>` перериває один або всі запущені субагенти.
- `/steer <id|#> <message>` надсилає керування запущеному субагенту. Псевдонім: `/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 <command>` виконує команду оболонки хоста. Лише текст. Псевдонім: `! <command>`. Потребує `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 <camera|screen|writes|all> [duration]|disarm` тимчасово активує високоризикові команди phone node.
- `/voice status|list [limit]|set <voiceId|name>` керує конфігурацією голосу 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 <name> [input]` завжди працює як загальна точка входу.
- skills також можуть з’являтися як прямі команди на кшталт `/prose`, коли skill/plugin їх реєструє.
- реєстрацією нативних skill-команд керують `commands.nativeSkills` і `channels.<provider>.commands.nativeSkills`.
Примітки:
- Команди приймають необов’язковий `:` між командою та аргументами (наприклад, `/think: high`, `/send: on`, `/help:`).
- `/new <model>` приймає псевдонім моделі, `provider/model` або назву провайдера (нечіткий збіг); якщо збігу немає, текст трактується як тіло повідомлення.
- Для повного розподілу використання провайдера використовуйте `openclaw status --usage`.
- Для повного розподілу використання за провайдерами використовуйте `openclaw status --usage`.
- `/allowlist add|remove` потребує `commands.config=true` і враховує канал `configWrites`.
- У каналах з кількома обліковими записами `/allowlist --account <id>`, націлений на конфігурацію, і `/config set channels.<provider>.accounts.<id>...` також враховують `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 <id>`, націлені на конфігурацію, і `/config set channels.<provider>.accounts.<id>...` також враховують `configWrites` цільового облікового запису.
- `/usage` керує нижнім колонтитулом використання для кожної відповіді; `/usage cost` виводить локальний підсумок вартості з журналів сесій OpenClaw.
- `/restart` увімкнено типово; встановіть `commands.restart: false`, щоб вимкнути його.
- `/plugins install <spec>` приймає ті самі специфікації plugin, що й `openclaw plugins install`: локальний шлях/архів, npm-пакет або `clawhub:<pkg>`.
- `/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 <name> [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 <name> [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:<agentId>:discord:slash:<userId>`
- Slack: `agent:<agentId>:slack:slash:<userId>` (префікс налаштовується через `channels.slack.slashCommand.sessionPrefix`)
- Telegram: `telegram:slash:<userId>` (націлюється на сеанс чату через `CommandTargetSessionKey`)
- **`/stop`** націлюється на активний сеанс чату, щоб можна було перервати поточне виконання.
- **Slack:** `channels.slack.slashCommand` усе ще підтримується для однієї команди у стилі `/openclaw`. Якщо ви вмикаєте `commands.native`, потрібно створити одну слеш-команду Slack для кожної вбудованої команди (з тими самими назвами, що й у `/help`). Меню аргументів команд для Slack доставляються як тимчасові кнопки Block Kit.
- Виняток для нативної команди Slack: зареєструйте `/agentstatus` (а не `/status`), тому що Slack резервує `/status`. Текстова `/status` у повідомленнях Slack усе одно працює.
- Telegram: `telegram:slash:<userId>` (націлюється на чат-сесію через `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.

View File

@ -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)
## Чи ввімкнено це типово?
## Чи ввімкнено це за замовчуванням?
Ні. AutoTTS **вимкнено** типово. Увімкніть його в конфігурації через
`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`: режим autoTTS (`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>`: налаштування конкретного провайдера за id провайдера мовлення.
- Застарілі прямі блоки провайдерів (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) автоматично переносяться до `messages.tts.providers.<id>` під час завантаження.
- `maxTextLength`: жорсткий ліміт для вхідного тексту TTS (символи). `/tts audio` завершується помилкою, якщо його перевищено.
- `summaryModel`: необов’язкова дешева модель для автоматичного підсумку; типово `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.<id>` під час завантаження.
- `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: <primary> -> <used>` плюс `Attempts: ...`
- `/tts status` містить видимість резервного перемикання для останньої спроби:
- успішне резервне перемикання: `Fallback: <primary> -> <used>` плюс `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