chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-01 11:55:57 +00:00
parent 0a69eea1d9
commit d8d80a115a
2 changed files with 416 additions and 421 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,24 @@
---
read_when:
- Налаштування Plugin каналу (автентифікація, контроль доступу, кілька облікових записів)
- Усунення несправностей із ключами конфігурації для кожного каналу
- Аудит політики приватних повідомлень, групової політики або обмеження за згадками
summary: 'Конфігурація каналів: контроль доступу, створення пари, ключі для окремих каналів у Slack, Discord, Telegram, WhatsApp, Matrix, iMessage тощо'
- Усунення неполадок із ключами конфігурації для кожного каналу
- Аудит політики прямих повідомлень, політики груп або контролю згадок
summary: 'Налаштування каналів: контроль доступу, сполучення, ключі для кожного каналу в Slack, Discord, Telegram, WhatsApp, Matrix, iMessage тощо'
title: Конфігурація — канали
x-i18n:
generated_at: "2026-05-01T11:02:08Z"
generated_at: "2026-05-01T11:53:39Z"
model: gpt-5.5
provider: openai
source_hash: bcdc5ba7dd6633749eccf27fa20f8933049061e5f11efbf315c31cd2512e055d
source_hash: 5de8f93b0578e76d4e8cbe7d521bf536ad24df5aaf9a5bf613a7d8196024ae11
source_path: gateway/config-channels.md
workflow: 16
---
Ключі конфігурації для кожного каналу в `channels.*`. Охоплює доступ до DM і груп,
налаштування кількох облікових записів, обмеження за згадкою та ключі для кожного каналу Slack, Discord,
Telegram, WhatsApp, Matrix, iMessage та інших вбудованих plugin каналів.
Ключі конфігурації окремих каналів у `channels.*`. Охоплює доступ до DM і груп,
налаштування кількох акаунтів, вимогу згадки та ключі окремих каналів для Slack, Discord,
Telegram, WhatsApp, Matrix, iMessage та інших вбудованих channel plugins.
Для агентів, інструментів, середовища виконання Gateway та інших ключів верхнього рівня див.
Для агентів, інструментів, середовища виконання gateway та інших ключів верхнього рівня див.
[Довідник конфігурації](/uk/gateway/configuration-reference).
## Канали
@ -29,28 +29,28 @@ Telegram, WhatsApp, Matrix, iMessage та інших вбудованих plugin
Усі канали підтримують політики DM і політики груп:
| Політика DM | Поведінка |
| Політика DM | Поведінка |
| ------------------- | --------------------------------------------------------------- |
| `pairing` (типово) | Невідомі відправники отримують одноразовий код сполучення; власник має схвалити |
| `allowlist` | Лише відправники в `allowFrom` (або в paired allow store) |
| `open` | Дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`) |
| `disabled` | Ігнорувати всі вхідні DM |
| `pairing` (типово) | Невідомі відправники отримують одноразовий код сполучення; власник має схвалити |
| `allowlist` | Лише відправники в `allowFrom` (або у сховищі дозволених сполучень) |
| `open` | Дозволити всі вхідні DM (потрібно `allowFrom: ["*"]`) |
| `disabled` | Ігнорувати всі вхідні DM |
| Політика групи | Поведінка |
| Політика груп | Поведінка |
| --------------------- | ------------------------------------------------------ |
| `allowlist` (типово) | Лише групи, що відповідають налаштованому allowlist |
| `open` | Обійти allowlist груп (обмеження за згадкою все одно застосовується) |
| `disabled` | Блокувати всі повідомлення груп/кімнат |
| `allowlist` (типово) | Лише групи, що відповідають налаштованому allowlist |
| `open` | Обійти allowlist груп (вимога згадки все одно діє) |
| `disabled` | Блокувати всі повідомлення груп/кімнат |
<Note>
`channels.defaults.groupPolicy` задає типове значення, коли `groupPolicy` провайдера не встановлено.
Коди сполучення спливають через 1 годину. Очікувані запити на сполучення DM обмежені **3 на канал**.
Якщо блок провайдера повністю відсутній (`channels.<provider>` відсутній), політика груп під час виконання повертається до `allowlist` (fail-closed) із попередженням під час запуску.
Коди сполучення спливають через 1 годину. Очікувані запити сполучення DM обмежено **3 на канал**.
Якщо блок провайдера повністю відсутній (`channels.<provider>` відсутній), політика груп у runtime повертається до `allowlist` (відмова за замовчуванням) із попередженням під час запуску.
</Note>
### Перевизначення моделі каналу
Використовуйте `channels.modelByChannel`, щоб закріпити конкретні ID каналів за моделлю. Значення приймають `provider/model` або налаштовані псевдоніми моделей. Зіставлення каналу застосовується, коли сесія ще не має перевизначення моделі (наприклад, заданого через `/model`).
Використовуйте `channels.modelByChannel`, щоб закріпити конкретні ID каналів за моделлю. Значення приймають `provider/model` або налаштовані псевдоніми моделей. Зіставлення каналу застосовується, коли сеанс ще не має перевизначення моделі (наприклад, заданого через `/model`).
```json5
{
@ -71,9 +71,9 @@ Telegram, WhatsApp, Matrix, iMessage та інших вбудованих plugin
}
```
### Типові значення каналів і Heartbeat
### Типові параметри каналу та Heartbeat
Використовуйте `channels.defaults` для спільної політики груп і поведінки Heartbeat між провайдерами:
Використовуйте `channels.defaults` для спільної поведінки політики груп і Heartbeat між провайдерами:
```json5
{
@ -91,15 +91,15 @@ Telegram, WhatsApp, Matrix, iMessage та інших вбудованих plugin
}
```
- `channels.defaults.groupPolicy`: резервна політика групи, коли `groupPolicy` на рівні провайдера не встановлено.
- `channels.defaults.contextVisibility`: типовий режим видимості додаткового контексту для всіх каналів. Значення: `all` (типово, включає весь контекст цитат/тредів/історії), `allowlist` (включає лише контекст від відправників з allowlist), `allowlist_quote` (те саме, що allowlist, але зберігає явний контекст цитати/відповіді). Перевизначення для каналу: `channels.<channel>.contextVisibility`.
- `channels.defaults.heartbeat.showOk`: включати справні стани каналів у вивід Heartbeat.
- `channels.defaults.heartbeat.showAlerts`: включати погіршені/помилкові стани у вивід Heartbeat.
- `channels.defaults.groupPolicy`: резервна політика груп, коли `groupPolicy` на рівні провайдера не встановлено.
- `channels.defaults.contextVisibility`: типовий режим видимості додаткового контексту для всіх каналів. Значення: `all` (типово, включає весь контекст цитат/тредів/історії), `allowlist` (включає лише контекст від дозволених відправників), `allowlist_quote` (те саме, що allowlist, але зберігає явний контекст цитати/відповіді). Перевизначення для каналу: `channels.<channel>.contextVisibility`.
- `channels.defaults.heartbeat.showOk`: включати справні статуси каналів у вивід Heartbeat.
- `channels.defaults.heartbeat.showAlerts`: включати погіршені/помилкові статуси у вивід Heartbeat.
- `channels.defaults.heartbeat.useIndicator`: відображати компактний вивід Heartbeat у стилі індикатора.
### WhatsApp
WhatsApp працює через вебканал Gateway (Baileys Web). Він запускається автоматично, коли існує пов’язана сесія.
WhatsApp працює через вебканал Gateway (Baileys Web). Він запускається автоматично, коли існує пов’язаний сеанс.
```json5
{
@ -139,7 +139,7 @@ WhatsApp працює через вебканал Gateway (Baileys Web). Він
}
```
<Accordion title="WhatsApp із кількома обліковими записами">
<Accordion title="WhatsApp із кількома акаунтами">
```json5
{
@ -157,10 +157,10 @@ WhatsApp працює через вебканал Gateway (Baileys Web). Він
}
```
- Вихідні команди типово використовують обліковий запис `default`, якщо він є; інакше перший налаштований ID облікового запису (відсортований).
- Необов’язковий `channels.whatsapp.defaultAccount` перевизначає цей резервний вибір типового облікового запису, коли збігається з налаштованим ID облікового запису.
- Застарілий каталог автентифікації Baileys для одного облікового запису мігрується `openclaw doctor` до `whatsapp/default`.
- Перевизначення для облікового запису: `channels.whatsapp.accounts.<id>.sendReadReceipts`, `channels.whatsapp.accounts.<id>.dmPolicy`, `channels.whatsapp.accounts.<id>.allowFrom`.
- Вихідні команди типово використовують акаунт `default`, якщо він існує; інакше перший налаштований ID акаунта (за сортуванням).
- Необов’язковий `channels.whatsapp.defaultAccount` перевизначає цей резервний вибір типового акаунта, коли збігається з налаштованим ID акаунта.
- Застарілий каталог автентифікації Baileys для одного акаунта мігрується командою `openclaw doctor` у `whatsapp/default`.
- Перевизначення для акаунта: `channels.whatsapp.accounts.<id>.sendReadReceipts`, `channels.whatsapp.accounts.<id>.dmPolicy`, `channels.whatsapp.accounts.<id>.allowFrom`.
</Accordion>
@ -219,12 +219,12 @@ WhatsApp працює через вебканал Gateway (Baileys Web). Він
}
```
- Токен бота: `channels.telegram.botToken` або `channels.telegram.tokenFile` (лише звичайний файл; символічні посилання відхиляються), з `TELEGRAM_BOT_TOKEN` як резервом для типового облікового запису.
- `apiRoot` — це лише корінь Telegram Bot API. Використовуйте `https://api.telegram.org` або власний self-hosted/proxy корінь, а не `https://api.telegram.org/bot<TOKEN>`; `openclaw doctor --fix` видаляє випадковий кінцевий суфікс `/bot<TOKEN>`.
- Необов’язковий `channels.telegram.defaultAccount` перевизначає вибір типового облікового запису, коли збігається з налаштованим ID облікового запису.
- У налаштуваннях із кількома обліковими записами (2+ ID облікових записів) задайте явний типовий (`channels.telegram.defaultAccount` або `channels.telegram.accounts.default`), щоб уникнути резервної маршрутизації; `openclaw doctor` попереджає, коли він відсутній або недійсний.
- Токен бота: `channels.telegram.botToken` або `channels.telegram.tokenFile` (лише звичайний файл; символічні посилання відхиляються), з `TELEGRAM_BOT_TOKEN` як резервним варіантом для типового акаунта.
- `apiRoot` — це лише корінь Telegram Bot API. Використовуйте `https://api.telegram.org` або ваш самостійно розгорнутий/проксійований корінь, а не `https://api.telegram.org/bot<TOKEN>`; `openclaw doctor --fix` видаляє випадковий кінцевий суфікс `/bot<TOKEN>`.
- Необов’язковий `channels.telegram.defaultAccount` перевизначає типовий вибір акаунта, коли збігається з налаштованим ID акаунта.
- У налаштуваннях із кількома акаунтами (2+ ID акаунтів) задайте явний типовий акаунт (`channels.telegram.defaultAccount` або `channels.telegram.accounts.default`), щоб уникнути резервної маршрутизації; `openclaw doctor` попереджає, коли він відсутній або недійсний.
- `configWrites: false` блокує записи конфігурації, ініційовані Telegram (міграції ID супергруп, `/config set|unset`).
- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують сталі прив’язки ACP для тем форуму (використовуйте канонічний `chatId:topic:topicId` у `match.peer.id`). Семантика полів спільна в [Агенти ACP](/uk/tools/acp-agents#channel-specific-settings).
- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують сталі прив’язки ACP для тем форуму (використовуйте канонічний `chatId:topic:topicId` у `match.peer.id`). Семантику полів наведено в [Агенти ACP](/uk/tools/acp-agents#channel-specific-settings).
- Попередні перегляди потоків Telegram використовують `sendMessage` + `editMessageText` (працює в прямих і групових чатах).
- Політика повторних спроб: див. [Політика повторних спроб](/uk/concepts/retry).
@ -330,37 +330,37 @@ WhatsApp працює через вебканал Gateway (Baileys Web). Він
}
```
- Токен: `channels.discord.token`, з `DISCORD_BOT_TOKEN` як резервним варіантом для стандартного облікового запису.
- Токен: `channels.discord.token`, із `DISCORD_BOT_TOKEN` як резервним варіантом для облікового запису за замовчуванням.
- Прямі вихідні виклики, які надають явний Discord `token`, використовують цей токен для виклику; налаштування повторних спроб/політик облікового запису все одно беруться з вибраного облікового запису в активному знімку runtime.
- Необов’язковий `channels.discord.defaultAccount` перевизначає вибір стандартного облікового запису, коли він збігається з ідентифікатором налаштованого облікового запису.
- Використовуйте `user:<id>` (DM) або `channel:<id>` (канал гільдії) для цілей доставки; голі числові ID відхиляються.
- Слаги гільдій пишуться малими літерами із заміною пробілів на `-`; ключі каналів використовують назву зі слагом (без `#`). Надавайте перевагу ID гільдій.
- Необов’язковий `channels.discord.defaultAccount` перевизначає вибір облікового запису за замовчуванням, коли він збігається з ідентифікатором налаштованого облікового запису.
- Використовуйте `user:<id>` (DM) або `channel:<id>` (канал guild) для цілей доставки; прості числові ID відхиляються.
- Слаги guild записуються малими літерами із заміною пробілів на `-`; ключі каналів використовують назву у форматі слага (без `#`). Надавайте перевагу ID guild.
- Повідомлення, створені ботами, типово ігноруються. `allowBots: true` вмикає їх; використовуйте `allowBots: "mentions"`, щоб приймати лише повідомлення ботів, які згадують бота (власні повідомлення все одно фільтруються).
- `channels.discord.guilds.<id>.ignoreOtherMentions` (і перевизначення каналів) відкидає повідомлення, які згадують іншого користувача або роль, але не бота (крім @everyone/@here).
- `maxLinesPerMessage` (типово 17) розбиває високі повідомлення, навіть якщо вони мають менше ніж 2000 символів.
- `channels.discord.threadBindings` керує маршрутизацією Discord, прив’язаною до потоків:
- `enabled`: перевизначення Discord для функцій сесій, прив’язаних до потоку (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язана доставка/маршрутизація)
- `channels.discord.guilds.<id>.ignoreOtherMentions` (і перевизначення каналів) відкидає повідомлення, які згадують іншого користувача або роль, але не бота (за винятком @everyone/@here).
- `maxLinesPerMessage` (типово 17) розбиває високі повідомлення навіть тоді, коли вони мають менше ніж 2000 символів.
- `channels.discord.threadBindings` керує маршрутизацією Discord, прив’язаною до threads:
- `enabled`: перевизначення Discord для функцій сесій, прив’язаних до threads (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` і прив’язана доставка/маршрутизація)
- `idleHours`: перевизначення Discord для автоматичного зняття фокуса через неактивність у годинах (`0` вимикає)
- `maxAgeHours`: перевизначення Discord для жорсткого максимального віку в годинах (`0` вимикає)
- `spawnSubagentSessions`: opt-in перемикач для автоматичного створення/прив’язування потоку `sessions_spawn({ thread: true })`
- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують сталі прив’язки ACP для каналів і потоків (використовуйте ID каналу/потоку в `match.peer.id`). Семантика полів спільна в [Агенти ACP](/uk/tools/acp-agents#channel-specific-settings).
- `channels.discord.ui.components.accentColor` задає колір акценту для контейнерів компонентів Discord v2.
- `channels.discord.voice` вмикає розмови голосових каналів Discord і необов’язкові перевизначення автоприєднання + LLM + TTS.
- `channels.discord.voice.model` необов’язково перевизначає модель LLM, що використовується для відповідей у голосовому каналі Discord.
- `spawnSubagentSessions`: перемикач добровільного ввімкнення для автоматичного створення/прив’язування threads через `sessions_spawn({ thread: true })`
- Записи верхнього рівня `bindings[]` з `type: "acp"` налаштовують постійні прив’язки ACP для каналів і threads (використовуйте ID каналу/thread у `match.peer.id`). Семантика полів спільна в [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
- `channels.discord.ui.components.accentColor` задає акцентний колір для контейнерів Discord components v2.
- `channels.discord.voice` вмикає розмови в голосових каналах Discord і необов’язкове автоприєднання + перевизначення LLM + TTS. Текстові конфігурації Discord типово залишають голос вимкненим; задайте `channels.discord.voice.enabled=true`, щоб увімкнути.
- `channels.discord.voice.model` необов’язково перевизначає модель LLM, яка використовується для відповідей у голосових каналах Discord.
- `channels.discord.voice.daveEncryption` і `channels.discord.voice.decryptionFailureTolerance` передаються до параметрів DAVE `@discordjs/voice` (типово `true` і `24`).
- `channels.discord.voice.connectTimeoutMs` керує початковим очікуванням Ready `@discordjs/voice` для `/vc join` і спроб автоприєднання (типово `30000`).
- `channels.discord.voice.reconnectGraceMs` керує тим, скільки часу від’єднана голосова сесія може входити в сигналізацію повторного підключення, перш ніж OpenClaw її знищить (типово `15000`).
- OpenClaw додатково намагається відновити отримання голосу, виходячи з голосової сесії та повторно приєднуючись до неї після повторних помилок розшифрування.
- `channels.discord.streaming` є канонічним ключем режиму потоку. Застарілі значення `streamMode` і булеві значення `streaming` автоматично мігруються.
- `channels.discord.autoPresence` відображає доступність runtime у присутність бота (healthy => online, degraded => idle, exhausted => dnd) і дозволяє необов’язкові перевизначення тексту статусу.
- `channels.discord.dangerouslyAllowNameMatching` повторно вмикає зіставлення змінних імен/тегів (режим аварійної сумісності).
- `channels.discord.execApprovals`: нативна для Discord доставка схвалень exec і авторизація схвалювачів.
- `enabled`: `true`, `false` або `"auto"` (типово). В автоматичному режимі схвалення exec активуються, коли схвалювачів можна визначити з `approvers` або `commands.ownerAllowFrom`.
- `approvers`: ID користувачів Discord, яким дозволено схвалювати запити exec. Якщо опущено, використовується резервний варіант `commands.ownerAllowFrom`.
- `agentFilter`: необов’язковий allowlist ID агентів. Опустіть, щоб пересилати схвалення для всіх агентів.
- `channels.discord.voice.reconnectGraceMs` керує тим, скільки часу від’єднана голосова сесія може витратити на перехід у сигналізацію повторного підключення, перш ніж OpenClaw її знищить (типово `15000`).
- OpenClaw додатково намагається відновити приймання голосу, виходячи з голосової сесії та повторно приєднуючись після повторюваних помилок розшифрування.
- `channels.discord.streaming` є канонічним ключем режиму потоку. Застарілі значення `streamMode` і булеві значення `streaming` мігруються автоматично.
- `channels.discord.autoPresence` відображає доступність runtime на присутність бота (healthy => online, degraded => idle, exhausted => dnd) і дозволяє необов’язкові перевизначення тексту статусу.
- `channels.discord.dangerouslyAllowNameMatching` повторно вмикає зіставлення за змінюваним іменем/тегом (режим сумісності на випадок критичної потреби).
- `channels.discord.execApprovals`: нативна для Discord доставка затверджень exec і авторизація затверджувачів.
- `enabled`: `true`, `false` або `"auto"` (типово). В автоматичному режимі затвердження exec активуються, коли затверджувачів можна визначити з `approvers` або `commands.ownerAllowFrom`.
- `approvers`: ID користувачів Discord, яким дозволено затверджувати запити exec. Якщо пропущено, використовується резервний `commands.ownerAllowFrom`.
- `agentFilter`: необов’язковий allowlist ID агентів. Пропустіть, щоб пересилати затвердження для всіх агентів.
- `sessionFilter`: необов’язкові шаблони ключів сесій (підрядок або regex).
- `target`: куди надсилати запити схвалення. `"dm"` (типово) надсилає в DM схвалювачів, `"channel"` надсилає в початковий канал, `"both"` надсилає в обидва. Коли ціль містить `"channel"`, кнопки можуть використовувати лише визначені схвалювачі.
- `cleanupAfterResolve`: коли `true`, видаляє DM схвалень після схвалення, відхилення або тайм-ауту.
- `target`: куди надсилати запити на затвердження. `"dm"` (типово) надсилає в DM затверджувачів, `"channel"` надсилає в початковий канал, `"both"` надсилає в обидва. Коли target містить `"channel"`, кнопки можуть використовувати лише визначені затверджувачі.
- `cleanupAfterResolve`: коли `true`, видаляє DM із затвердженнями після затвердження, відхилення або тайм-ауту.
**Режими сповіщень про реакції:** `off` (немає), `own` (повідомлення бота, типово), `all` (усі повідомлення), `allowlist``guilds.<id>.users` для всіх повідомлень).
@ -393,11 +393,11 @@ WhatsApp працює через вебканал Gateway (Baileys Web). Він
}
```
- JSON облікового запису сервісу: inline (`serviceAccount`) або на основі файлу (`serviceAccountFile`).
- SecretRef облікового запису сервісу також підтримується (`serviceAccountRef`).
- Резервні варіанти env: `GOOGLE_CHAT_SERVICE_ACCOUNT` або `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`.
- JSON сервісного облікового запису: inline (`serviceAccount`) або на основі файлу (`serviceAccountFile`).
- SecretRef сервісного облікового запису також підтримується (`serviceAccountRef`).
- Резервні env: `GOOGLE_CHAT_SERVICE_ACCOUNT` або `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`.
- Використовуйте `spaces/<spaceId>` або `users/<userId>` для цілей доставки.
- `channels.googlechat.dangerouslyAllowNameMatching` повторно вмикає зіставлення змінного principal електронної пошти (режим аварійної сумісності).
- `channels.googlechat.dangerouslyAllowNameMatching` повторно вмикає зіставлення змінюваного email principal (режим сумісності на випадок критичної потреби).
### Slack
@ -469,43 +469,43 @@ WhatsApp працює через вебканал Gateway (Baileys Web). Він
}
```
- **Socket mode** потребує і `botToken`, і `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` як резервний env для стандартного облікового запису).
- **HTTP mode** потребує `botToken` плюс `signingSecret` (у корені або для кожного облікового запису).
- **Socket mode** потребує і `botToken`, і `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` для резервного env облікового запису за замовчуванням).
- **HTTP mode** потребує `botToken` плюс `signingSecret` (у root або для окремого облікового запису).
- `socketMode` передає налаштування транспорту Slack SDK Socket Mode до публічного API Bolt receiver. Використовуйте це лише під час дослідження тайм-ауту ping/pong або поведінки застарілого websocket.
- `botToken`, `appToken`, `signingSecret` і `userToken` приймають рядки plaintext
або об’єкти SecretRef.
- Знімки облікових записів Slack відкривають поля джерела/статусу для кожних облікових даних, такі як
`botTokenSource`, `botTokenStatus`, `appTokenStatus`, а в режимі HTTP
- `botToken`, `appToken`, `signingSecret` і `userToken` приймають plaintext
рядки або об’єкти SecretRef.
- Знімки облікових записів Slack відкривають поля джерела/статусу для кожних облікових даних, як-от
`botTokenSource`, `botTokenStatus`, `appTokenStatus` і, у режимі HTTP,
`signingSecretStatus`. `configured_unavailable` означає, що обліковий запис
налаштовано через SecretRef, але поточний шлях команди/runtime не зміг
налаштований через SecretRef, але поточний шлях command/runtime не зміг
визначити значення секрету.
- `configWrites: false` блокує записи конфігурації, ініційовані Slack.
- Необов’язковий `channels.slack.defaultAccount` перевизначає вибір стандартного облікового запису, коли він збігається з ідентифікатором налаштованого облікового запису.
- `channels.slack.streaming.mode` є канонічним ключем режиму потоку Slack. `channels.slack.streaming.nativeTransport` керує нативним потоковим транспортом Slack. Застарілі значення `streamMode`, булеві `streaming` і `nativeStreaming` автоматично мігруються.
- Необов’язковий `channels.slack.defaultAccount` перевизначає вибір облікового запису за замовчуванням, коли він збігається з ідентифікатором налаштованого облікового запису.
- `channels.slack.streaming.mode` є канонічним ключем режиму потоку Slack. `channels.slack.streaming.nativeTransport` керує нативним streaming transport Slack. Застарілі значення `streamMode`, булеві `streaming` і `nativeStreaming` мігруються автоматично.
- Використовуйте `user:<id>` (DM) або `channel:<id>` для цілей доставки.
**Режими сповіщень про реакції:** `off`, `own` (типово), `all`, `allowlist``reactionAllowlist`).
**Ізоляція сесій потоків:** `thread.historyScope` діє для кожного потоку (типово) або спільно для каналу. `thread.inheritParent` копіює транскрипт батьківського каналу в нові потоки.
**Ізоляція сесій thread:** `thread.historyScope` є окремим для кожного thread (типово) або спільним у межах каналу. `thread.inheritParent` копіює transcript батьківського каналу в нові threads.
- Нативний streaming Slack разом зі статусом потоку в стилі помічника Slack "is typing..." потребує цільового потоку відповіді. DM верхнього рівня типово залишаються поза потоком, тому вони використовують `typingReaction` або звичайну доставку замість попереднього перегляду в стилі потоку.
- `typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки виконується відповідь, а потім видаляє її після завершення. Використовуйте emoji shortcode Slack, наприклад `"hourglass_flowing_sand"`.
- `channels.slack.execApprovals`: нативна для Slack доставка схвалень exec і авторизація схвалювачів. Та сама схема, що й у Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (ID користувачів Slack), `agentFilter`, `sessionFilter` і `target` (`"dm"`, `"channel"` або `"both"`).
- Нативний streaming Slack плюс thread-статус у стилі Slack assistant "is typing..." потребують цільового thread для відповіді. DM верхнього рівня типово залишаються поза thread, тому використовують `typingReaction` або звичайну доставку замість preview у стилі thread.
- `typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки виконується відповідь, а потім видаляє її після завершення. Використовуйте shortcode emoji Slack, наприклад `"hourglass_flowing_sand"`.
- `channels.slack.execApprovals`: нативна для Slack доставка затверджень exec і авторизація затверджувачів. Та сама схема, що й у Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (ID користувачів Slack), `agentFilter`, `sessionFilter` і `target` (`"dm"`, `"channel"` або `"both"`).
| Група дій | Типово | Примітки |
| ------------ | ------- | ---------------------- |
| reactions | увімкнено | Реагувати + перелічувати реакції |
| reactions | увімкнено | Реагувати + список реакцій |
| messages | увімкнено | Читати/надсилати/редагувати/видаляти |
| pins | увімкнено | Закріплювати/відкріплювати/перелічувати |
| pins | увімкнено | Закріпити/відкріпити/показати список |
| memberInfo | увімкнено | Інформація про учасника |
| emojiList | увімкнено | Список користувацьких emoji |
### Mattermost
Mattermost постачається як bundled Plugin у поточних випусках OpenClaw. Старіші або
кастомні збірки можуть установити поточний npm-пакет за допомогою
Mattermost постачається як вбудований Plugin у поточних релізах OpenClaw. Старіші або
кастомні збірки можуть встановити поточний npm-пакет за допомогою
`openclaw plugins install @openclaw/mattermost`; якщо npm повідомляє, що
пакет, яким володіє OpenClaw, застарілий, використовуйте bundled Plugin або локальний checkout
пакет, яким володіє OpenClaw, deprecated, використовуйте вбудований Plugin або локальний checkout
до публікації новішого npm-пакета.
```json5
@ -536,23 +536,18 @@ Mattermost постачається як bundled Plugin у поточних ви
}
```
Режими чату: `oncall` (відповідати на @-згадку, типово), `onmessage` (кожне повідомлення), `onchar` (повідомлення, що починаються з префікса-тригера).
Режими чату: `oncall` (відповідати на @-згадку, типово), `onmessage` (кожне повідомлення), `onchar` (повідомлення, що починаються з префікса тригера).
Коли нативні команди Mattermost увімкнені:
- `commands.callbackPath` має бути шляхом (наприклад, `/api/channels/mattermost/command`), а не повною URL-адресою.
- `commands.callbackUrl` має вказувати на endpoint OpenClaw Gateway і бути доступним із сервера Mattermost.
- Нативні slash callback автентифікуються токенами окремих команд, які Mattermost повертає
під час реєстрації slash command. Якщо реєстрація завершується невдало або жодні
команди не активовано, OpenClaw відхиляє callback із
`Unauthorized: invalid command token.`
- Для приватних/tailnet/внутрішніх callback-хостів Mattermost може вимагати,
щоб `ServiceSettings.AllowedUntrustedInternalConnections` включав callback-хост/домен.
Використовуйте значення хоста/домену, а не повні URL-адреси.
- `channels.mattermost.configWrites`: дозволити або заборонити ініційовані Mattermost записи конфігурації.
- `commands.callbackPath` має бути шляхом (наприклад `/api/channels/mattermost/command`), а не повною URL-адресою.
- `commands.callbackUrl` має вказувати на endpoint Gateway OpenClaw і бути доступним із сервера Mattermost.
- Нативні slash callbacks автентифікуються за допомогою токенів для кожної команди, які Mattermost повертає під час реєстрації slash command. Якщо реєстрація завершується невдало або жодні команди не активовано, OpenClaw відхиляє callbacks з повідомленням `Unauthorized: invalid command token.`
- Для приватних/tailnet/внутрішніх хостів callback Mattermost може вимагати, щоб `ServiceSettings.AllowedUntrustedInternalConnections` містив хост/домен callback. Використовуйте значення хоста/домену, а не повні URL-адреси.
- `channels.mattermost.configWrites`: дозволити або заборонити записи конфігурації, ініційовані Mattermost.
- `channels.mattermost.requireMention`: вимагати `@mention` перед відповіддю в каналах.
- `channels.mattermost.groups.<channelId>.requireMention`: перевизначення перевірки згадок для окремого каналу (`"*"` для типового значення).
- Необов’язковий `channels.mattermost.defaultAccount` перевизначає вибір типового акаунта, коли він збігається з ідентифікатором налаштованого акаунта.
- `channels.mattermost.groups.<channelId>.requireMention`: перевизначення mention-gating для окремого каналу (`"*"` для типового значення).
- Необов’язковий `channels.mattermost.defaultAccount` перевизначає вибір типового облікового запису, коли він збігається з id налаштованого облікового запису.
### Signal
@ -575,13 +570,13 @@ Mattermost постачається як bundled Plugin у поточних ви
**Режими сповіщень про реакції:** `off`, `own` (типово), `all`, `allowlist``reactionAllowlist`).
- `channels.signal.account`: прив’язати запуск каналу до конкретної ідентичності акаунта Signal.
- `channels.signal.configWrites`: дозволити або заборонити ініційовані Signal записи конфігурації.
- Необов’язковий `channels.signal.defaultAccount` перевизначає вибір типового акаунта, коли він збігається з ідентифікатором налаштованого акаунта.
- `channels.signal.account`: прив’язати запуск каналу до конкретної ідентичності облікового запису Signal.
- `channels.signal.configWrites`: дозволити або заборонити записи конфігурації, ініційовані Signal.
- Необов’язковий `channels.signal.defaultAccount` перевизначає вибір типового облікового запису, коли він збігається з id налаштованого облікового запису.
### BlueBubbles
BlueBubbles — рекомендований шлях iMessage (на базі Plugin, налаштовується в `channels.bluebubbles`).
BlueBubbles — рекомендований шлях iMessage (на основі Plugin, налаштовується в `channels.bluebubbles`).
```json5
{
@ -596,14 +591,14 @@ BlueBubbles — рекомендований шлях iMessage (на базі Pl
}
```
- Основні шляхи ключів, описані тут: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
- Необов’язковий `channels.bluebubbles.defaultAccount` перевизначає вибір типового акаунта, коли він збігається з ідентифікатором налаштованого акаунта.
- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови BlueBubbles до постійних сеансів ACP. Використовуйте handle BlueBubbles або цільовий рядок (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Спільна семантика полів: [Агенти ACP](/uk/tools/acp-agents#channel-specific-settings).
- Повну конфігурацію каналу BlueBubbles задокументовано в [BlueBubbles](/uk/channels/bluebubbles).
- Основні ключові шляхи, описані тут: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
- Необов’язковий `channels.bluebubbles.defaultAccount` перевизначає вибір типового облікового запису, коли він збігається з id налаштованого облікового запису.
- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови BlueBubbles до постійних сесій ACP. Використовуйте handle BlueBubbles або цільовий рядок (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Семантика спільних полів: [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
- Повна конфігурація каналу BlueBubbles задокументована в [BlueBubbles](/uk/channels/bluebubbles).
### iMessage
OpenClaw запускає `imsg rpc` (JSON-RPC через stdio). Демон або порт не потрібні.
OpenClaw запускає `imsg rpc` (JSON-RPC через stdio). Daemon або port не потрібні.
```json5
{
@ -627,17 +622,17 @@ OpenClaw запускає `imsg rpc` (JSON-RPC через stdio). Демон а
}
```
- Необов’язковий `channels.imessage.defaultAccount` перевизначає вибір типового акаунта, коли він збігається з ідентифікатором налаштованого акаунта.
- Необов’язковий `channels.imessage.defaultAccount` перевизначає вибір типового облікового запису, коли він збігається з id налаштованого облікового запису.
- Потрібен Full Disk Access до Messages DB.
- Надавайте перевагу цілям `chat_id:<id>`. Використовуйте `imsg chats --limit 20`, щоб переглянути список чатів.
- `cliPath` може вказувати на SSH-обгортку; задайте `remoteHost` (`host` або `user@host`) для отримання вкладень через SCP.
- `attachmentRoots` і `remoteAttachmentRoots` обмежують вхідні шляхи вкладень (типово: `/Users/*/Library/Messages/Attachments`).
- SCP використовує сувору перевірку host key, тому переконайтеся, що ключ relay-хоста вже існує в `~/.ssh/known_hosts`.
- `channels.imessage.configWrites`: дозволити або заборонити ініційовані iMessage записи конфігурації.
- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови iMessage до постійних сеансів ACP. Використовуйте нормалізований handle або явну ціль чату (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Спільна семантика полів: [Агенти ACP](/uk/tools/acp-agents#channel-specific-settings).
- Потребує Full Disk Access до Messages DB.
- Надавайте перевагу цілям `chat_id:<id>`. Використовуйте `imsg chats --limit 20`, щоб вивести список чатів.
- `cliPath` може вказувати на SSH wrapper; задайте `remoteHost` (`host` або `user@host`) для отримання вкладень через SCP.
- `attachmentRoots` і `remoteAttachmentRoots` обмежують шляхи вхідних вкладень (типово: `/Users/*/Library/Messages/Attachments`).
- SCP використовує сувору перевірку host key, тому переконайтеся, що ключ хоста ретранслятора вже існує в `~/.ssh/known_hosts`.
- `channels.imessage.configWrites`: дозволити або заборонити записи конфігурації, ініційовані iMessage.
- Записи верхнього рівня `bindings[]` з `type: "acp"` можуть прив’язувати розмови iMessage до постійних сесій ACP. Використовуйте нормалізований handle або явну ціль чату (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) у `match.peer.id`. Семантика спільних полів: [ACP Agents](/uk/tools/acp-agents#channel-specific-settings).
<Accordion title="Приклад SSH-обгортки iMessage">
<Accordion title="Приклад iMessage SSH wrapper">
```bash
#!/usr/bin/env bash
@ -648,7 +643,7 @@ exec ssh -T gateway-host imsg "$@"
### Matrix
Matrix працює на базі Plugin і налаштовується в `channels.matrix`.
Matrix працює на основі Plugin і налаштовується в `channels.matrix`.
```json5
{
@ -679,24 +674,24 @@ Matrix працює на базі Plugin і налаштовується в `cha
```
- Автентифікація за токеном використовує `accessToken`; автентифікація за паролем використовує `userId` + `password`.
- `channels.matrix.proxy` спрямовує HTTP-трафік Matrix через явний HTTP(S)-проксі. Іменовані акаунти можуть перевизначити його за допомогою `channels.matrix.accounts.<id>.proxy`.
- `channels.matrix.network.dangerouslyAllowPrivateNetwork` дозволяє приватні/внутрішні homeserver. `proxy` і це мережеве явне ввімкнення є незалежними елементами керування.
- `channels.matrix.defaultAccount` вибирає бажаний акаунт у конфігураціях із кількома акаунтами.
- `channels.matrix.autoJoin` типово має значення `off`, тому запрошені кімнати та нові запрошення у стилі DM ігноруються, доки ви не задасте `autoJoin: "allowlist"` з `autoJoinAllowlist` або `autoJoin: "always"`.
- `channels.matrix.execApprovals`: вбудована в Matrix доставка підтверджень exec і авторизація тих, хто підтверджує.
- `enabled`: `true`, `false` або `"auto"` (типово). В автоматичному режимі підтвердження exec активуються, коли тих, хто підтверджує, можна визначити з `approvers` або `commands.ownerAllowFrom`.
- `approvers`: ідентифікатори користувачів Matrix (наприклад, `@owner:example.org`), яким дозволено підтверджувати запити exec.
- `agentFilter`: необов’язковий allowlist ідентифікаторів агентів. Не вказуйте, щоб пересилати підтвердження для всіх агентів.
- `sessionFilter`: необов’язкові шаблони ключів сеансів (підрядок або regex).
- `target`: куди надсилати запити на підтвердження. `"dm"` (типово), `"channel"` (кімната-джерело) або `"both"`.
- Перевизначення для окремого акаунта: `channels.matrix.accounts.<id>.execApprovals`.
- `channels.matrix.dm.sessionScope` керує тим, як DM Matrix групуються в сеанси: `per-user` (типово) спільно використовується за маршрутизованим peer, тоді як `per-room` ізолює кожну DM-кімнату.
- Проби статусу Matrix і live-пошуки в каталозі використовують ту саму політику проксі, що й runtime-трафік.
- Повну конфігурацію Matrix, правила націлювання та приклади налаштування задокументовано в [Matrix](/uk/channels/matrix).
- `channels.matrix.proxy` спрямовує HTTP-трафік Matrix через явний HTTP(S) proxy. Іменовані облікові записи можуть перевизначити це за допомогою `channels.matrix.accounts.<id>.proxy`.
- `channels.matrix.network.dangerouslyAllowPrivateNetwork` дозволяє приватні/внутрішні homeservers. `proxy` і цей network opt-in є незалежними елементами керування.
- `channels.matrix.defaultAccount` вибирає бажаний обліковий запис у налаштуваннях із кількома обліковими записами.
- `channels.matrix.autoJoin` типово має значення `off`, тому запрошені rooms і нові запрошення у стилі DM ігноруються, доки ви не задасте `autoJoin: "allowlist"` з `autoJoinAllowlist` або `autoJoin: "always"`.
- `channels.matrix.execApprovals`: нативна для Matrix доставка exec approvals і авторизація approver.
- `enabled`: `true`, `false` або `"auto"` (типово). В auto mode exec approvals активуються, коли approvers можна визначити з `approvers` або `commands.ownerAllowFrom`.
- `approvers`: Matrix user IDs (наприклад `@owner:example.org`), яким дозволено схвалювати exec requests.
- `agentFilter`: необов’язковий agent ID allowlist. Пропустіть, щоб пересилати approvals для всіх agents.
- `sessionFilter`: необов’язкові шаблони session key (substring або regex).
- `target`: куди надсилати approval prompts. `"dm"` (типово), `"channel"` (originating room) або `"both"`.
- Перевизначення для окремого облікового запису: `channels.matrix.accounts.<id>.execApprovals`.
- `channels.matrix.dm.sessionScope` керує тим, як Matrix DMs групуються в сесії: `per-user` (типово) спільно використовує routed peer, тоді як `per-room` ізолює кожну DM room.
- Status probes Matrix і live directory lookups використовують ту саму політику proxy, що й runtime traffic.
- Повна конфігурація Matrix, правила targeting і приклади налаштування задокументовані в [Matrix](/uk/channels/matrix).
### Microsoft Teams
Microsoft Teams працює на базі Plugin і налаштовується в `channels.msteams`.
Microsoft Teams працює на основі Plugin і налаштовується в `channels.msteams`.
```json5
{
@ -711,12 +706,12 @@ Microsoft Teams працює на базі Plugin і налаштовуєтьс
}
```
- Основні шляхи ключів, описані тут: `channels.msteams`, `channels.msteams.configWrites`.
- Повну конфігурацію Teams (облікові дані, Webhook, політика DM/груп, перевизначення для окремої команди/каналу) задокументовано в [Microsoft Teams](/uk/channels/msteams).
- Основні ключові шляхи, описані тут: `channels.msteams`, `channels.msteams.configWrites`.
- Повна конфігурація Teams (credentials, Webhook, DM/group policy, перевизначення для окремих team/каналів) задокументована в [Microsoft Teams](/uk/channels/msteams).
### IRC
IRC працює на базі Plugin і налаштовується в `channels.irc`.
IRC працює на основі Plugin і налаштовується в `channels.irc`.
```json5
{
@ -737,13 +732,13 @@ IRC працює на базі Plugin і налаштовується в `channe
}
```
- Основні шляхи ключів, описані тут: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
- Необов’язковий `channels.irc.defaultAccount` перевизначає вибір типового акаунта, коли він збігається з ідентифікатором налаштованого акаунта.
- Повну конфігурацію каналу IRC (host/port/TLS/channels/allowlists/mention gating) задокументовано в [IRC](/uk/channels/irc).
- Основні ключові шляхи, описані тут: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
- Необов’язковий `channels.irc.defaultAccount` перевизначає вибір типового облікового запису, коли він збігається з id налаштованого облікового запису.
- Повна конфігурація каналу IRC (host/port/TLS/channels/allowlists/mention gating) задокументована в [IRC](/uk/channels/irc).
### Кілька акаунтів (усі канали)
### Кілька облікових записів (усі канали)
Запускайте кілька акаунтів для кожного каналу (кожен зі своїм `accountId`):
Запускайте кілька облікових записів на канал (кожен зі своїм `accountId`):
```json5
{
@ -764,34 +759,34 @@ IRC працює на базі Plugin і налаштовується в `channe
}
```
- `default` використовується, коли `accountId` пропущено (CLI + маршрутизація).
- Env-токени застосовуються лише до **типового** акаунта.
- Базові налаштування каналу застосовуються до всіх акаунтів, якщо їх не перевизначено для окремого акаунта.
- Використовуйте `bindings[].match.accountId`, щоб спрямувати кожен акаунт до іншого агента.
- Якщо ви додаєте нетиповий акаунт через `openclaw channels add` (або onboarding каналу), коли все ще використовуєте конфігурацію каналу верхнього рівня для одного акаунта, OpenClaw спочатку переносить значення верхнього рівня одного акаунта, прив’язані до акаунта, у мапу акаунтів каналу, щоб початковий акаунт продовжив працювати. Більшість каналів переміщують їх у `channels.<channel>.accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/типову ціль.
- Наявні прив’язки лише каналу (без `accountId`) продовжують відповідати типовому акаунту; прив’язки з областю акаунта залишаються необов’язковими.
- `openclaw doctor --fix` також виправляє змішані форми, переміщуючи значення верхнього рівня одного акаунта, прив’язані до акаунта, у підвищений акаунт, вибраний для цього каналу. Більшість каналів використовують `accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/типову ціль.
- `default` використовується, коли `accountId` пропущено (CLI + routing).
- Env tokens застосовуються лише до **типового** облікового запису.
- Базові налаштування каналу застосовуються до всіх облікових записів, якщо їх не перевизначено для окремого облікового запису.
- Використовуйте `bindings[].match.accountId`, щоб спрямувати кожен обліковий запис до іншого agent.
- Якщо ви додаєте нетиповий обліковий запис через `openclaw channels add` (або channel onboarding), поки все ще використовуєте конфігурацію каналу верхнього рівня з одним обліковим записом, OpenClaw спочатку переносить прив’язані до облікового запису значення верхнього рівня для одного облікового запису в map облікових записів каналу, щоб оригінальний обліковий запис продовжив працювати. Більшість каналів переміщують їх у `channels.<channel>.accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/типову ціль.
- Наявні прив’язки лише до каналу (без `accountId`) продовжують відповідати типовому обліковому запису; прив’язки з областю облікового запису залишаються необов’язковими.
- `openclaw doctor --fix` також виправляє змішані форми, переміщуючи прив’язані до облікового запису значення верхнього рівня для одного облікового запису в підвищений обліковий запис, вибраний для цього каналу. Більшість каналів використовують `accounts.default`; Matrix натомість може зберегти наявну відповідну іменовану/типову ціль.
### Інші канали Plugin
Багато каналів Plugin налаштовуються як `channels.<id>` і задокументовані на своїх спеціальних сторінках каналів (наприклад, Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat і Twitch).
Багато каналів Plugin налаштовуються як `channels.<id>` і задокументовані на своїх спеціальних сторінках каналів (наприклад Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat і Twitch).
Дивіться повний індекс каналів: [Канали](/uk/channels).
### Перевірка згадок у груповому чаті
### Mention gating у груповому чаті
Групові повідомлення типово **вимагають згадки** (згадка в метаданих або безпечні regex-шаблони). Застосовується до групових чатів WhatsApp, Telegram, Discord, Google Chat та iMessage.
Для групових повідомлень типово **потрібна згадка** (metadata mention або безпечні regex patterns). Застосовується до групових чатів WhatsApp, Telegram, Discord, Google Chat і iMessage.
Видимі відповіді керуються окремо. Групові/канальні кімнати типово мають `messages.groupChat.visibleReplies: "message_tool"`: OpenClaw усе одно обробляє хід, але звичайні фінальні відповіді залишаються приватними, а видимий вивід у кімнату потребує `message(action=send)`. Задавайте `"automatic"` лише тоді, коли потрібна застаріла поведінка, за якої звичайні відповіді публікуються назад у кімнату. Щоб застосувати таку саму поведінку видимих відповідей лише через інструмент і до прямих чатів, задайте `messages.visibleReplies: "message_tool"`.
Видимі відповіді керуються окремо. Для group/channel rooms типово задано `messages.groupChat.visibleReplies: "message_tool"`: OpenClaw усе ще обробляє turn, але звичайні фінальні відповіді залишаються приватними, а видимий вивід у room потребує `message(action=send)`. Задавайте `"automatic"` лише тоді, коли потрібна legacy поведінка, за якої звичайні відповіді публікуються назад у room. Щоб застосувати таку саму поведінку видимих відповідей лише через tool і до прямих чатів, задайте `messages.visibleReplies: "message_tool"`.
Якщо інструмент повідомлень недоступний за активною політикою інструментів, OpenClaw переходить до автоматичних видимих відповідей замість тихого приглушення відповіді. `openclaw doctor` попереджає про цю невідповідність.
Якщо message tool недоступний за активною tool policy, OpenClaw повертається до автоматичних видимих відповідей замість того, щоб мовчки придушувати response. `openclaw doctor` попереджає про цю невідповідність.
Gateway гаряче перезавантажує конфігурацію `messages` після збереження файлу. Перезапуск потрібен лише тоді, коли спостереження за файлами або перезавантаження конфігурації вимкнено в розгортанні.
Gateway гаряче перезавантажує конфігурацію `messages` після збереження файлу. Перезапуск потрібен лише тоді, коли file watching або config reload вимкнено в deployment.
**Типи згадок:**
- **Згадки в метаданих**: Нативні @-згадки платформи. Ігноруються в режимі self-chat WhatsApp.
- **Текстові шаблони**: Безпечні regex-шаблони в `agents.list[].groupChat.mentionPatterns`. Недійсні шаблони та небезпечні вкладені повторення ігноруються.
- Перевірка згадок застосовується лише тоді, коли виявлення можливе (нативні згадки або принаймні один шаблон).
- **Metadata mentions**: нативні platform @-mentions. Ігноруються в режимі WhatsApp self-chat.
- **Text patterns**: безпечні regex patterns у `agents.list[].groupChat.mentionPatterns`. Недійсні patterns і небезпечне nested repetition ігноруються.
- Mention gating застосовується лише тоді, коли виявлення можливе (native mentions або принаймні один pattern).
```json5
{
@ -808,11 +803,11 @@ Gateway гаряче перезавантажує конфігурацію `mess
}
```
`messages.groupChat.historyLimit` задає глобальне значення за замовчуванням. Канали можуть перевизначати його через `channels.<channel>.historyLimit` (або для окремого облікового запису). Установіть `0`, щоб вимкнути.
`messages.groupChat.historyLimit` задає глобальне значення за замовчуванням. Канали можуть перевизначити його через `channels.<channel>.historyLimit` (або для окремого облікового запису). Установіть `0`, щоб вимкнути.
`messages.visibleReplies` — це глобальне значення за замовчуванням для вихідних ходів; `messages.groupChat.visibleReplies` перевизначає його для вихідних ходів у групах/каналах. Списки дозволених каналів і перевірка згадок усе ще визначають, чи буде хід оброблено.
`messages.visibleReplies` — це глобальне значення за замовчуванням для вихідних turn; `messages.groupChat.visibleReplies` перевизначає його для вихідних turn у групах/каналах. Списки дозволених каналів і перевірка згадок усе ще визначають, чи буде turn оброблено.
#### Ліміти історії особистих повідомлень
#### Ліміти історії DM
```json5
{
@ -827,13 +822,13 @@ Gateway гаряче перезавантажує конфігурацію `mess
}
```
Порядок визначення: перевизначення для окремого особистого повідомлення → стандартне значення провайдера → без ліміту (усе зберігається).
Розв’язання: перевизначення для окремого DM → значення провайдера за замовчуванням → без ліміту (зберігається все).
Підтримується: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`.
#### Режим чату із самим собою
#### Режим чату із собою
Додайте власний номер до `allowFrom`, щоб увімкнути режим чату із самим собою (ігнорує нативні @-згадки, відповідає лише на текстові шаблони):
Додайте власний номер до `allowFrom`, щоб увімкнути режим чату із собою (ігнорує нативні @-згадки, відповідає лише на текстові шаблони):
```json5
{
@ -884,29 +879,29 @@ Gateway гаряче перезавантажує конфігурацію `mess
<Accordion title="Відомості про команди">
- Цей блок налаштовує поверхні команд. Поточний вбудований і комплектний каталог команд див. у [Slash Commands](/uk/tools/slash-commands).
- Ця сторінка є **довідником ключів конфігурації**, а не повним каталогом команд. Команди, що належать каналам/Plugin, як-от QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` і Talk `/voice`, задокументовано на відповідних сторінках каналів/Plugin, а також у [Slash Commands](/uk/tools/slash-commands).
- Ця сторінка є **довідником ключів конфігурації**, а не повним каталогом команд. Команди, якими володіють канали/Plugin, як-от QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` і Talk `/voice`, задокументовано на сторінках відповідних каналів/Plugin, а також у [Slash Commands](/uk/tools/slash-commands).
- Текстові команди мають бути **окремими** повідомленнями з початковим `/`.
- `native: "auto"` вмикає нативні команди для Discord/Telegram і залишає Slack вимкненим.
- `nativeSkills: "auto"` вмикає нативні команди Skills для Discord/Telegram і залишає Slack вимкненим.
- `native: "auto"` вмикає нативні команди для Discord/Telegram, залишає Slack вимкненим.
- `nativeSkills: "auto"` вмикає нативні команди Skills для Discord/Telegram, залишає Slack вимкненим.
- Перевизначення для окремого каналу: `channels.discord.commands.native` (булеве значення або `"auto"`). `false` очищає раніше зареєстровані команди.
- Перевизначайте реєстрацію нативних Skills для окремого каналу через `channels.<provider>.commands.nativeSkills`.
- `channels.telegram.customCommands` додає додаткові пункти меню Telegram-бота.
- `bash: true` вмикає `! <cmd>` для shell хоста. Потрібні `tools.elevated.enabled` і відправник у `tools.elevated.allowFrom.<channel>`.
- `config: true` вмикає `/config` (читання/запис `openclaw.json`). Для клієнтів Gateway `chat.send` постійні записи `/config set|unset` також потребують `operator.admin`; `/config show` лише для читання залишається доступним звичайним клієнтам operator з областю запису.
- `mcp: true` вмикає `/mcp` для конфігурації MCP-сервера, керованого OpenClaw, у `mcp.servers`.
- `plugins: true` вмикає `/plugins` для пошуку Plugin, установлення та керування ввімкненням/вимкненням.
- `channels.<provider>.configWrites` керує змінами конфігурації для окремого каналу (за замовчуванням: true).
- Для каналів із кількома обліковими записами `channels.<provider>.accounts.<id>.configWrites` також керує записами, націленими на цей обліковий запис (наприклад, `/allowlist --config --account <id>` або `/config set channels.<provider>.accounts.<id>...`).
- Перевизначте реєстрацію нативних Skills для окремого каналу через `channels.<provider>.commands.nativeSkills`.
- `channels.telegram.customCommands` додає додаткові пункти меню бота Telegram.
- `bash: true` вмикає `! <cmd>` для оболонки хоста. Потребує `tools.elevated.enabled` і відправника в `tools.elevated.allowFrom.<channel>`.
- `config: true` вмикає `/config` (читання/запис `openclaw.json`). Для клієнтів Gateway `chat.send` сталі записи `/config set|unset` також потребують `operator.admin`; доступна лише для читання команда `/config show` лишається доступною для звичайних операторських клієнтів з областю запису.
- `mcp: true` вмикає `/mcp` для конфігурації MCP-сервера, яким керує OpenClaw, у `mcp.servers`.
- `plugins: true` вмикає `/plugins` для пошуку Plugin, встановлення та керування ввімкненням/вимкненням.
- `channels.<provider>.configWrites` обмежує мутації конфігурації для окремого каналу (за замовчуванням: true).
- Для каналів із кількома обліковими записами `channels.<provider>.accounts.<id>.configWrites` також обмежує записи, що націлені на цей обліковий запис (наприклад, `/allowlist --config --account <id>` або `/config set channels.<provider>.accounts.<id>...`).
- `restart: false` вимикає `/restart` і дії інструмента перезапуску Gateway. За замовчуванням: `true`.
- `ownerAllowFrom` — це явний список дозволених власників для команд/інструментів лише для власника. Він окремий від `allowFrom`.
- `ownerAllowFrom` — це явний список дозволених власників для команд/інструментів, доступних лише власнику. Він відокремлений від `allowFrom`.
- `ownerDisplay: "hash"` хешує ідентифікатори власників у системному prompt. Установіть `ownerDisplaySecret`, щоб керувати хешуванням.
- `allowFrom` задається для кожного провайдера. Якщо встановлено, це **єдине** джерело авторизації (списки дозволених каналів/сполучення та `useAccessGroups` ігноруються).
- `allowFrom` задається для кожного провайдера. Коли встановлено, це **єдине** джерело авторизації (списки дозволених каналів/спарювання та `useAccessGroups` ігноруються).
- `useAccessGroups: false` дозволяє командам обходити політики груп доступу, коли `allowFrom` не встановлено.
- Мапа документації команд:
- вбудований і комплектний каталог: [Slash Commands](/uk/tools/slash-commands)
- поверхні команд, специфічні для каналів: [Канали](/uk/channels)
- команди QQ Bot: [QQ Bot](/uk/channels/qqbot)
- команди сполучення: [Сполучення](/uk/channels/pairing)
- команди спарювання: [Спарювання](/uk/channels/pairing)
- команда картки LINE: [LINE](/uk/channels/line)
- Dreaming пам’яті: [Dreaming](/uk/concepts/dreaming)