chore(i18n): refresh uk translations
This commit is contained in:
parent
0a69eea1d9
commit
d8d80a115a
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user