From fe2bd9bf26c92ff90e71661a3e8c9055f7436735 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Mon, 20 Apr 2026 22:08:29 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/channels/telegram.md | 519 ++++++++++++++-------------- docs/uk/channels/troubleshooting.md | 117 +++---- 2 files changed, 319 insertions(+), 317 deletions(-) diff --git a/docs/uk/channels/telegram.md b/docs/uk/channels/telegram.md index 489d9c72d..471c9f5a7 100644 --- a/docs/uk/channels/telegram.md +++ b/docs/uk/channels/telegram.md @@ -1,29 +1,29 @@ --- read_when: - - Робота над функціями Telegram або Webhook'ами -summary: Статус підтримки бота Telegram, можливості та налаштування + - Робота над функціями Telegram або Webhookами +summary: Статус підтримки Telegram bot, можливості та конфігурація title: Telegram x-i18n: - generated_at: "2026-04-20T04:35:13Z" + generated_at: "2026-04-20T22:05:39Z" model: gpt-5.4 provider: openai - source_hash: b9903fae98bca0c345aa86d5c29015539c375442524a34d26bd28181470b8477 + source_hash: a877769c51713222e2f301cfefe499ef28a5f0d68cdaa12f079974acb279144d source_path: channels/telegram.md workflow: 15 --- # Telegram (Bot API) -Статус: готовий до продакшн-використання для DM бота + груп через grammY. Довге опитування є режимом за замовчуванням; режим Webhook є необов’язковим. +Статус: готово до продакшену для бот-DM + груп через grammY. Long polling — режим за замовчуванням; режим Webhook — необов’язковий. - - Політика DM за замовчуванням для Telegram — сполучення. + + Політика DM за замовчуванням для Telegram — підключення. Міжканальна діагностика та сценарії відновлення. - + Повні шаблони та приклади конфігурації каналу. @@ -32,7 +32,7 @@ x-i18n: - Відкрийте Telegram і почніть чат із **@BotFather** (переконайтеся, що це саме `@BotFather`). + Відкрийте Telegram і почніть чат із **@BotFather** (переконайтеся, що handle точно `@BotFather`). Виконайте `/newbot`, дотримуйтеся підказок і збережіть токен. @@ -53,12 +53,12 @@ x-i18n: } ``` - Резервний варіант через env: `TELEGRAM_BOT_TOKEN=...` (лише для облікового запису за замовчуванням). + Резервне джерело через env: `TELEGRAM_BOT_TOKEN=...` (лише для облікового запису за замовчуванням). Telegram **не** використовує `openclaw channels login telegram`; налаштуйте токен у config/env, а потім запустіть gateway. - + ```bash openclaw gateway @@ -66,7 +66,7 @@ openclaw pairing list telegram openclaw pairing approve telegram ``` - Коди сполучення діють 1 годину. + Коди підключення спливають через 1 годину. @@ -76,25 +76,25 @@ openclaw pairing approve telegram -Порядок визначення токена враховує обліковий запис. На практиці значення з config мають пріоритет над резервним варіантом через env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням. +Порядок визначення токена враховує обліковий запис. На практиці значення з config мають пріоритет над резервним джерелом з env, а `TELEGRAM_BOT_TOKEN` застосовується лише до облікового запису за замовчуванням. ## Налаштування на боці Telegram - За замовчуванням Telegram-боти працюють у **Privacy Mode**, який обмежує, які повідомлення з груп вони отримують. + Для Telegram-ботів за замовчуванням увімкнено **Privacy Mode**, який обмежує, які повідомлення груп вони отримують. - Якщо бот має бачити всі повідомлення групи, зробіть одне з такого: + Якщо бот має бачити всі повідомлення в групі, зробіть одне з такого: - вимкніть режим приватності через `/setprivacy`, або - зробіть бота адміністратором групи. - Після зміни режиму приватності видаліть бота й знову додайте його в кожну групу, щоб Telegram застосував зміну. + Після перемикання режиму приватності видаліть бота і знову додайте його в кожну групу, щоб Telegram застосував зміну. - + Статус адміністратора керується в налаштуваннях групи Telegram. Боти-адміністратори отримують усі повідомлення групи, що корисно для постійно активної поведінки в групі. @@ -103,34 +103,34 @@ openclaw pairing approve telegram - - `/setjoingroups` щоб дозволити/заборонити додавання в групи + - `/setjoingroups`, щоб дозволити/заборонити додавання до груп - `/setprivacy` для керування видимістю в групах -## Контроль доступу та активація +## Керування доступом та активація `channels.telegram.dmPolicy` керує доступом до прямих повідомлень: - `pairing` (за замовчуванням) - - `allowlist` (потрібен принаймні один ID відправника в `allowFrom`) + - `allowlist` (потрібен щонайменше один ID відправника в `allowFrom`) - `open` (потрібно, щоб `allowFrom` містив `"*"`) - `disabled` - `channels.telegram.allowFrom` приймає числові ID користувачів Telegram. Префікси `telegram:` / `tg:` підтримуються й нормалізуються. + `channels.telegram.allowFrom` приймає числові ID користувачів Telegram. Префікси `telegram:` / `tg:` приймаються й нормалізуються. `dmPolicy: "allowlist"` з порожнім `allowFrom` блокує всі DM і відхиляється валідацією config. Під час налаштування запитуються лише числові ID користувачів. - Якщо ви оновилися й ваш config містить записи allowlist у форматі `@username`, виконайте `openclaw doctor --fix`, щоб розв’язати їх (у межах можливого; потрібен токен бота Telegram). - Якщо ви раніше покладалися на файли allowlist у pairing-store, `openclaw doctor --fix` може відновити записи в `channels.telegram.allowFrom` для потоків allowlist (наприклад, коли `dmPolicy: "allowlist"` ще не має явних ID). + Якщо ви оновилися і у вашому config є записи allowlist у вигляді `@username`, виконайте `openclaw doctor --fix`, щоб розв’язати їх (best-effort; потрібен токен Telegram bot). + Якщо ви раніше покладалися на файли allowlist зі сховища підключень, `openclaw doctor --fix` може відновити записи в `channels.telegram.allowFrom` для сценаріїв allowlist (наприклад, коли `dmPolicy: "allowlist"` ще не має явних ID). - Для ботів з одним власником віддавайте перевагу `dmPolicy: "allowlist"` з явними числовими ID в `allowFrom`, щоб політика доступу надійно зберігалася в config (замість залежності від попередніх підтверджень сполучення). + Для ботів з одним власником краще використовувати `dmPolicy: "allowlist"` із явними числовими ID в `allowFrom`, щоб політика доступу надійно зберігалася в config (замість залежності від попередніх схвалень підключення). - Поширена плутанина: підтвердження сполучення DM не означає, що «цей відправник авторизований всюди». - Сполучення надає доступ лише до DM. Авторизація відправників у групах і далі визначається явними allowlist у config. - Якщо ви хочете, щоб «я був авторизований один раз, і працювали і DM, і команди в групах», додайте свій числовий ID користувача Telegram у `channels.telegram.allowFrom`. + Поширена плутанина: схвалення підключення для DM не означає, що «цей відправник авторизований усюди». + Підключення надає доступ лише до DM. Авторизація відправника в групах і далі походить лише з явних allowlist у config. + Якщо ви хочете, щоб «я авторизований один раз і працюють і DM, і команди в групах», додайте свій числовий ID користувача Telegram до `channels.telegram.allowFrom`. ### Як знайти свій ID користувача Telegram @@ -140,23 +140,23 @@ openclaw pairing approve telegram 2. Виконайте `openclaw logs --follow`. 3. Прочитайте `from.id`. - Офіційний метод Bot API: + Офіційний спосіб через Bot API: ```bash curl "https://api.telegram.org/bot/getUpdates" ``` - Сторонній метод (менш приватний): `@userinfobot` або `@getidsbot`. + Сторонній спосіб (менш приватний): `@userinfobot` або `@getidsbot`. - Разом застосовуються два механізми керування: + Разом застосовуються два елементи керування: 1. **Які групи дозволені** (`channels.telegram.groups`) - немає config `groups`: - - з `groupPolicy: "open"`: будь-яка група може пройти перевірки ID групи - - з `groupPolicy: "allowlist"` (за замовчуванням): групи блокуються, доки ви не додасте записи `groups` (або `"*"`) + - з `groupPolicy: "open"`: будь-яка група може пройти перевірки group-ID + - з `groupPolicy: "allowlist"` (за замовчуванням): групи блокуються, доки ви не додасте записи до `groups` (або `"*"`) - `groups` налаштовано: діє як allowlist (явні ID або `"*"`) 2. **Які відправники дозволені в групах** (`channels.telegram.groupPolicy`) @@ -164,17 +164,17 @@ curl "https://api.telegram.org/bot/getUpdates" - `allowlist` (за замовчуванням) - `disabled` - `groupAllowFrom` використовується для фільтрації відправників у групах. Якщо його не задано, Telegram використовує `allowFrom` як резервний варіант. - Записи `groupAllowFrom` мають бути числовими ID користувачів Telegram (префікси `telegram:` / `tg:` нормалізуються). - Не вказуйте ID груп Telegram або супергруп у `groupAllowFrom`. Від’ємні ID чатів мають бути в `channels.telegram.groups`. - Нечислові записи ігноруються для авторизації відправників. - Межа безпеки (`2026.2.25+`): авторизація відправників у групах **не** успадковує підтвердження з pairing-store для DM. - Сполучення залишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` для конкретної групи/теми. - Якщо `groupAllowFrom` не задано, Telegram використовує config `allowFrom`, а не pairing store. + `groupAllowFrom` використовується для фільтрації відправників у групах. Якщо не задано, Telegram використовує `allowFrom` як резервне значення. + Записи `groupAllowFrom` мають бути числовими ID користувачів Telegram (`telegram:` / `tg:` префікси нормалізуються). + Не додавайте ID чату Telegram group або supergroup до `groupAllowFrom`. Від’ємні chat ID мають бути в `channels.telegram.groups`. + Нечислові записи ігноруються під час авторизації відправника. + Межа безпеки (`2026.2.25+`): авторизація відправника в групі **не** успадковує схвалення зі сховища підключень для DM. + Підключення лишається лише для DM. Для груп задайте `groupAllowFrom` або `allowFrom` на рівні групи/теми. + Якщо `groupAllowFrom` не задано, Telegram використовує як резервне значення config `allowFrom`, а не сховище підключень. Практичний шаблон для ботів з одним власником: задайте свій ID користувача в `channels.telegram.allowFrom`, не задавайте `groupAllowFrom` і дозвольте цільові групи в `channels.telegram.groups`. - Примітка про runtime: якщо `channels.telegram` повністю відсутній, у runtime за замовчуванням використовується fail-closed `groupPolicy="allowlist"`, якщо лише `channels.defaults.groupPolicy` не задано явно. + Примітка щодо runtime: якщо `channels.telegram` повністю відсутній, runtime за замовчуванням працює в fail-closed з `groupPolicy="allowlist"`, якщо явно не задано `channels.defaults.groupPolicy`. - Приклад: дозволити будь-якому учаснику в одній конкретній групі: + Приклад: дозволити будь-якого учасника в одній конкретній групі: ```json5 { @@ -191,7 +191,7 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Приклад: дозволити лише конкретним користувачам в одній конкретній групі: + Приклад: дозволити лише конкретних користувачів в одній конкретній групі: ```json5 { @@ -211,20 +211,20 @@ curl "https://api.telegram.org/bot/getUpdates" Поширена помилка: `groupAllowFrom` — це не allowlist груп Telegram. - - Вказуйте від’ємні ID груп Telegram або супергруп, як-от `-1001234567890`, у `channels.telegram.groups`. - - Вказуйте ID користувачів Telegram, як-от `8734062810`, у `groupAllowFrom`, коли хочете обмежити, які люди всередині дозволеної групи можуть звертатися до бота. + - Додавайте від’ємні ID груп або супергруп Telegram, такі як `-1001234567890`, у `channels.telegram.groups`. + - Додавайте ID користувачів Telegram, такі як `8734062810`, у `groupAllowFrom`, якщо хочете обмежити, хто саме всередині дозволеної групи може активувати бота. - Використовуйте `groupAllowFrom: ["*"]` лише тоді, коли хочете, щоб будь-який учасник дозволеної групи міг спілкуватися з ботом. - - За замовчуванням відповіді в групах потребують згадки. + + Відповіді в групах за замовчуванням вимагають згадування. - Згадка може надходити з: + Згадування може надходити з: - - нативної згадки `@botusername`, або - - шаблонів згадок у: + - нативного згадування `@botusername`, або + - шаблонів згадування в: - `agents.list[].groupChat.mentionPatterns` - `messages.groupChat.mentionPatterns` @@ -233,7 +233,7 @@ curl "https://api.telegram.org/bot/getUpdates" - `/activation always` - `/activation mention` - Вони оновлюють лише стан сесії. Для постійного збереження використовуйте config. + Вони оновлюють лише стан сесії. Для збереження використовуйте config. Приклад постійної конфігурації: @@ -249,10 +249,10 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Як отримати ID чату групи: + Як отримати ID групового чату: - - перешліть повідомлення з групи в `@userinfobot` / `@getidsbot` - - або прочитайте `chat.id` з `openclaw logs --follow` + - перешліть повідомлення з групи до `@userinfobot` / `@getidsbot` + - або прочитайте `chat.id` у `openclaw logs --follow` - або перевірте Bot API `getUpdates` @@ -261,12 +261,12 @@ curl "https://api.telegram.org/bot/getUpdates" ## Поведінка runtime - Telegram належить процесу gateway. -- Маршрутизація детермінована: вхідні відповіді з Telegram повертаються в Telegram (модель не вибирає канали). -- Вхідні повідомлення нормалізуються у спільну channel envelope з метаданими відповіді та заповнювачами медіа. -- Групові сесії ізольовані за ID групи. Теми форуму додають `:topic:`, щоб теми були ізольовані. -- Повідомлення DM можуть містити `message_thread_id`; OpenClaw маршрутизує їх із ключами сесій, що враховують потоки, і зберігає ID потоку для відповідей. -- Довге опитування використовує grammY runner із послідовністю на рівні чату/потоку. Загальна sink-конкурентність runner використовує `agents.defaults.maxConcurrent`. -- Telegram Bot API не підтримує підтвердження прочитання (`sendReadReceipts` не застосовується). +- Маршрутизація детермінована: вхідні відповіді з Telegram повертаються назад у Telegram (модель не вибирає канали). +- Вхідні повідомлення нормалізуються до спільного envelope каналу з метаданими відповіді та заповнювачами медіа. +- Групові сесії ізольовані за ID групи. Теми форуму додають `:topic:`, щоб ізолювати теми. +- Повідомлення DM можуть містити `message_thread_id`; OpenClaw маршрутизує їх із ключами сесії, що враховують потоки, і зберігає ID потоку для відповідей. +- Long polling використовує runner grammY із послідовністю на рівні chat/per-thread. Загальна конкурентність sink runner використовує `agents.defaults.maxConcurrent`. +- Telegram Bot API не підтримує read receipt (`sendReadReceipts` не застосовується). ## Довідник функцій @@ -280,42 +280,42 @@ curl "https://api.telegram.org/bot/getUpdates" Вимога: - `channels.telegram.streaming` має значення `off | partial | block | progress` (за замовчуванням: `partial`) - - `progress` у Telegram зіставляється з `partial` (сумісність із міжканальним іменуванням) - - застарілі значення `channels.telegram.streamMode` і булеві значення `streaming` автоматично зіставляються + - `progress` у Telegram відповідає `partial` (сумісність із міжканальним найменуванням) + - застарілі `channels.telegram.streamMode` і булеві значення `streaming` автоматично відображаються Для відповідей лише з текстом: - DM: OpenClaw зберігає те саме повідомлення попереднього перегляду і виконує фінальне редагування на місці (без другого повідомлення) - - група/тема: OpenClaw зберігає те саме повідомлення попереднього перегляду і виконує фінальне редагування на місці (без другого повідомлення) + - group/topic: OpenClaw зберігає те саме повідомлення попереднього перегляду і виконує фінальне редагування на місці (без другого повідомлення) - Для складних відповідей (наприклад, медіа-пейлоадів) OpenClaw повертається до звичайної фінальної доставки, а потім очищує повідомлення попереднього перегляду. + Для складних відповідей (наприклад, із медіапейлоадами) OpenClaw повертається до звичайної фінальної доставки, а потім прибирає повідомлення попереднього перегляду. - Потоковий попередній перегляд відокремлений від block streaming. Якщо для Telegram явно увімкнено block streaming, OpenClaw пропускає попередній перегляд stream, щоб уникнути подвійного stream. + Потоковий попередній перегляд відокремлений від block streaming. Коли для Telegram явно ввімкнено block streaming, OpenClaw пропускає потік попереднього перегляду, щоб уникнути подвійного потокового передавання. - Якщо нативний транспорт чернеток недоступний/відхилений, OpenClaw автоматично переходить до `sendMessage` + `editMessageText`. + Якщо нативний транспорт чернетки недоступний/відхилений, OpenClaw автоматично повертається до `sendMessage` + `editMessageText`. - Потік міркувань лише для Telegram: + Потік reasoning лише для Telegram: - - `/reasoning stream` надсилає міркування в live preview під час генерації - - фінальна відповідь надсилається без тексту міркувань + - `/reasoning stream` надсилає reasoning до live preview під час генерації + - фінальна відповідь надсилається без тексту reasoning - - Вихідний текст використовує Telegram `parse_mode: "HTML"`. + + Для вихідного тексту використовується Telegram `parse_mode: "HTML"`. - Текст у стилі Markdown рендериться в HTML, безпечний для Telegram. - - Сирий HTML моделі екранується, щоб зменшити збої парсингу в Telegram. + - Сирий HTML моделі екранується, щоб зменшити збої розбору Telegram. - Якщо Telegram відхиляє розібраний HTML, OpenClaw повторює спробу як звичайний текст. - Попередній перегляд посилань увімкнено за замовчуванням, і його можна вимкнути через `channels.telegram.linkPreview: false`. + Попередній перегляд посилань увімкнений за замовчуванням і може бути вимкнений через `channels.telegram.linkPreview: false`. Реєстрація меню команд Telegram виконується під час запуску через `setMyCommands`. - Налаштування нативних команд за замовчуванням: + Нативні команди за замовчуванням: - `commands.native: "auto"` вмикає нативні команди для Telegram @@ -326,7 +326,7 @@ curl "https://api.telegram.org/bot/getUpdates" channels: { telegram: { customCommands: [ - { command: "backup", description: "Git-резервне копіювання" }, + { command: "backup", description: "Git-резервна копія" }, { command: "generate", description: "Створити зображення" }, ], }, @@ -337,39 +337,39 @@ curl "https://api.telegram.org/bot/getUpdates" Правила: - імена нормалізуються (прибирається початковий `/`, нижній регістр) - - допустимий шаблон: `a-z`, `0-9`, `_`, довжина `1..32` + - припустимий шаблон: `a-z`, `0-9`, `_`, довжина `1..32` - користувацькі команди не можуть перевизначати нативні команди - - конфлікти/дублікати пропускаються та логуються + - конфлікти/дублікати пропускаються і логуються Примітки: - користувацькі команди — це лише записи меню; вони не реалізують поведінку автоматично - - команди Plugin/Skills все одно можуть працювати при введенні, навіть якщо їх не показано в меню Telegram + - команди Plugin/Skills однаково можуть працювати при ручному введенні, навіть якщо вони не показані в меню Telegram - Якщо нативні команди вимкнено, вбудовані команди видаляються. Користувацькі команди/команди Plugin усе ще можуть реєструватися, якщо це налаштовано. + Якщо нативні команди вимкнено, вбудовані буде видалено. Користувацькі команди/команди Plugin однаково можуть реєструватися, якщо це налаштовано. - Поширені збої під час налаштування: + Поширені збої налаштування: - - `setMyCommands failed` із `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram усе ще переповнене після скорочення; зменште кількість команд Plugin/Skills/користувацьких команд або вимкніть `channels.telegram.commands.native`. + - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що меню Telegram все ще переповнене після скорочення; зменште кількість команд Plugin/Skills/користувацьких команд або вимкніть `channels.telegram.commands.native`. - `setMyCommands failed` із помилками network/fetch зазвичай означає, що вихідний DNS/HTTPS до `api.telegram.org` заблоковано. - ### Команди сполучення пристроїв (`device-pair` Plugin) + ### Команди підключення пристроїв (`device-pair` Plugin) Коли встановлено Plugin `device-pair`: 1. `/pair` генерує код налаштування 2. вставте код у застосунок iOS - 3. `/pair pending` показує список запитів, що очікують на розгляд (включно з роллю/scopes) - 4. підтвердьте запит: - - `/pair approve ` для явного підтвердження - - `/pair approve`, коли є лише один запит, що очікує на розгляд + 3. `/pair pending` показує список очікуваних запитів (включно з роллю/scopes) + 4. схваліть запит: + - `/pair approve ` для явного схвалення + - `/pair approve`, коли є лише один очікуваний запит - `/pair approve latest` для найновішого - Код налаштування містить короткоживучий bootstrap token. Вбудована bootstrap-передача зберігає primary Node token на `scopes: []`; будь-який переданий operator token залишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки bootstrap scope мають префікс ролі, тому цей operator allowlist задовольняє лише operator-запити; ролі, що не є operator, усе одно потребують scopes під власним префіксом ролі. + Код налаштування містить короткоживучий bootstrap token. Вбудований bootstrap handoff зберігає primary node token на `scopes: []`; будь-який переданий operator token залишається обмеженим `operator.approvals`, `operator.read`, `operator.talk.secrets` і `operator.write`. Перевірки bootstrap scope мають префікс ролі, тому цей operator allowlist задовольняє лише operator-запити; для ролей, що не є operator, як і раніше потрібні scopes під префіксом їхньої власної ролі. - Якщо пристрій повторює спробу зі зміненими даними auth (наприклад, role/scopes/public key), попередній запит, що очікує на розгляд, замінюється, а новий запит використовує інший `requestId`. Перед підтвердженням знову виконайте `/pair pending`. + Якщо пристрій повторює запит зі зміненими деталями auth (наприклад, role/scopes/public key), попередній очікуваний запит замінюється, а новий запит використовує інший `requestId`. Перед схваленням знову виконайте `/pair pending`. - Докладніше: [Сполучення](/uk/channels/pairing#pair-via-telegram-recommended-for-ios). + Докладніше: [Підключення](/uk/channels/pairing#pair-via-telegram-recommended-for-ios). @@ -439,26 +439,26 @@ curl "https://api.telegram.org/bot/getUpdates" - - Дії інструмента Telegram включають: + + Дії інструментів Telegram включають: - - `sendMessage` (`to`, `content`, необов’язкові `mediaUrl`, `replyToMessageId`, `messageThreadId`) + - `sendMessage` (`to`, `content`, необов’язково `mediaUrl`, `replyToMessageId`, `messageThreadId`) - `react` (`chatId`, `messageId`, `emoji`) - `deleteMessage` (`chatId`, `messageId`) - `editMessage` (`chatId`, `messageId`, `content`) - - `createForumTopic` (`chatId`, `name`, необов’язкові `iconColor`, `iconCustomEmojiId`) + - `createForumTopic` (`chatId`, `name`, необов’язково `iconColor`, `iconCustomEmojiId`) Дії повідомлень каналу надають зручні псевдоніми (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`). - Керування дозволами: + Елементи керування gating: - `channels.telegram.actions.sendMessage` - `channels.telegram.actions.deleteMessage` - `channels.telegram.actions.reactions` - `channels.telegram.actions.sticker` (за замовчуванням: вимкнено) - Примітка: `edit` і `topic-create` наразі увімкнені за замовчуванням і не мають окремих перемикачів `channels.telegram.actions.*`. - Надсилання в runtime використовують активний знімок config/secrets (startup/reload), тому шляхи дій не виконують ad hoc повторне розв’язання SecretRef для кожного надсилання. + Примітка: `edit` і `topic-create` наразі ввімкнені за замовчуванням і не мають окремих перемикачів `channels.telegram.actions.*`. + Надсилання в runtime використовують активний знімок config/secrets (startup/reload), тому шляхи дій не виконують ad-hoc повторне визначення SecretRef для кожного надсилання. Семантика видалення реакцій: [/tools/reactions](/uk/tools/reactions) @@ -467,7 +467,7 @@ curl "https://api.telegram.org/bot/getUpdates" Telegram підтримує явні теги потоків відповідей у згенерованому виводі: - - `[[reply_to_current]]` відповідає на повідомлення, що спричинило виклик + - `[[reply_to_current]]` відповідає на повідомлення, яке ініціювало дію - `[[reply_to:]]` відповідає на конкретний ID повідомлення Telegram `channels.telegram.replyToMode` керує обробкою: @@ -476,27 +476,27 @@ curl "https://api.telegram.org/bot/getUpdates" - `first` - `all` - Примітка: `off` вимикає неявний потік відповідей. Явні теги `[[reply_to_*]]` усе одно враховуються. + Примітка: `off` вимикає неявне формування потоків відповідей. Явні теги `[[reply_to_*]]` однаково враховуються. - Супергрупи форуму: + Супергрупи форумів: - ключі сесій тем додають `:topic:` - - відповіді та введення тексту спрямовуються в потік теми + - відповіді й typing спрямовуються в потік теми - шлях config теми: `channels.telegram.groups..topics.` - Особливий випадок загальної теми (`threadId=1`): + Спеціальний випадок загальної теми (`threadId=1`): - - надсилання повідомлень пропускає `message_thread_id` (Telegram відхиляє `sendMessage(...thread_id=1)`) - - дії введення тексту все одно включають `message_thread_id` + - надсилання повідомлень пропускають `message_thread_id` (Telegram відхиляє `sendMessage(...thread_id=1)`) + - дії typing усе одно включають `message_thread_id` - Успадкування тем: записи тем успадковують налаштування групи, якщо не перевизначені (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`). - `agentId` є лише для теми й не успадковується з налаштувань групи за замовчуванням. + Успадкування тем: записи тем успадковують налаштування групи, якщо не перевизначено (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`). + `agentId` призначений лише для тем і не успадковується з налаштувань групи за замовчуванням. - **Маршрутизація агентів для окремих тем**: Кожна тема може маршрутизуватися до іншого агента через `agentId` у config теми. Це надає кожній темі власний ізольований workspace, memory і session. Приклад: + **Маршрутизація agent для кожної теми**: Кожна тема може маршрутизуватися до іншого agent, якщо задати `agentId` у config теми. Це дає кожній темі власний ізольований workspace, memory і session. Приклад: ```json5 { @@ -505,9 +505,9 @@ curl "https://api.telegram.org/bot/getUpdates" groups: { "-1001234567890": { topics: { - "1": { agentId: "main" }, // Загальна тема → головний агент - "3": { agentId: "zu" }, // Тема розробки → агент zu - "5": { agentId: "coder" } // Code review → агент coder + "1": { agentId: "main" }, // Загальна тема → main agent + "3": { agentId: "zu" }, // Тема розробки → zu agent + "5": { agentId: "coder" } // Рев’ю коду → coder agent } } } @@ -516,9 +516,9 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Тоді кожна тема має власний ключ сесії: `agent:zu:telegram:group:-1001234567890:topic:3` + Кожна тема тоді має власний ключ сесії: `agent:zu:telegram:group:-1001234567890:topic:3` - **Постійна прив’язка тем ACP**: Теми форуму можуть закріплювати сесії harness ACP через типізовані прив’язки ACP верхнього рівня: + **Постійне прив’язування ACP до теми**: Теми форуму можуть закріплювати сесії harness ACP через типізовані прив’язки ACP верхнього рівня: - `bindings[]` з `type: "acp"` і `match.channel: "telegram"` @@ -571,11 +571,11 @@ curl "https://api.telegram.org/bot/getUpdates" Наразі це обмежено темами форумів у групах і супергрупах. - **ACP spawn, прив’язаний до потоку, із чату**: + **Запуск ACP, прив’язаний до потоку, з чату**: - `/acp spawn --thread here|auto` може прив’язати поточну тему Telegram до нової сесії ACP. - - Наступні повідомлення в темі маршрутизуються безпосередньо до прив’язаної сесії ACP (без потреби в `/acp steer`). - - Після успішної прив’язки OpenClaw закріплює в темі повідомлення з підтвердженням spawn. + - Подальші повідомлення в темі маршрутизуються безпосередньо до прив’язаної сесії ACP (без потреби у `/acp steer`). + - Після успішного прив’язування OpenClaw закріплює повідомлення-підтвердження запуску в темі. - Потрібно `channels.telegram.threadBindings.spawnAcpSessions=true`. Контекст шаблону включає: @@ -585,7 +585,7 @@ curl "https://api.telegram.org/bot/getUpdates" Поведінка потоків DM: - - приватні чати з `message_thread_id` зберігають DM-маршрутизацію, але використовують ключі сесій і цілі відповідей з урахуванням потоків. + - приватні чати з `message_thread_id` зберігають DM-маршрутизацію, але використовують ключі сесії та цілі відповіді з урахуванням потоку. @@ -611,7 +611,7 @@ curl "https://api.telegram.org/bot/getUpdates" ### Відеоповідомлення - Telegram розрізняє відеофайли та video notes. + Telegram розрізняє відеофайли та video note. Приклад дії повідомлення: @@ -625,7 +625,7 @@ curl "https://api.telegram.org/bot/getUpdates" } ``` - Video notes не підтримують підписи; наданий текст повідомлення надсилається окремо. + Video note не підтримують підписи; наданий текст повідомлення надсилається окремо. ### Стікери @@ -649,7 +649,7 @@ curl "https://api.telegram.org/bot/getUpdates" Стікери описуються один раз (коли це можливо) і кешуються, щоб зменшити повторні виклики vision. - Увімкніть дії зі стікерами: + Увімкнення дій зі стікерами: ```json5 { @@ -688,11 +688,11 @@ curl "https://api.telegram.org/bot/getUpdates" - Реакції Telegram надходять як оновлення `message_reaction` (окремо від пейлоадів повідомлень). + Реакції Telegram надходять як оновлення `message_reaction` (окремо від payload повідомлень). - Коли ввімкнено, OpenClaw ставить у чергу системні події на кшталт: + Коли це ввімкнено, OpenClaw ставить у чергу системні події на кшталт: - - `Telegram reaction added: 👍 by Alice (@alice) on msg 42` + - `Реакцію Telegram додано: 👍 від Alice (@alice) на повідомлення 42` Config: @@ -701,40 +701,40 @@ curl "https://api.telegram.org/bot/getUpdates" Примітки: - - `own` означає лише реакції користувачів на повідомлення, надіслані ботом (за можливості, через кеш надісланих повідомлень). - - Події реакцій усе одно дотримуються контролю доступу Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються. + - `own` означає лише реакції користувачів на повідомлення, надіслані ботом (best-effort через кеш надісланих повідомлень). + - Події реакцій однаково поважають елементи керування доступом Telegram (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); неавторизовані відправники відкидаються. - Telegram не надає ID потоку в оновленнях реакцій. - - групи нефорумного типу маршрутизуються до сесії групового чату - - групи форумного типу маршрутизуються до сесії загальної теми групи (`:topic:1`), а не до точної початкової теми + - групи без форуму маршрутизуються до сесії групового чату + - групи форуму маршрутизуються до сесії загальної теми групи (`:topic:1`), а не до точної вихідної теми `allowed_updates` для polling/webhook автоматично включають `message_reaction`. - - `ackReaction` надсилає emoji-підтвердження, поки OpenClaw обробляє вхідне повідомлення. + + `ackReaction` надсилає емодзі-підтвердження, поки OpenClaw обробляє вхідне повідомлення. Порядок визначення: - `channels.telegram.accounts..ackReaction` - `channels.telegram.ackReaction` - `messages.ackReaction` - - резервний варіант emoji ідентичності агента (`agents.list[].identity.emoji`, інакше "👀") + - резервне значення з емодзі identity агента (`agents.list[].identity.emoji`, інакше "👀") Примітки: - - Telegram очікує Unicode emoji (наприклад, "👀"). + - Telegram очікує unicode-емодзі (наприклад, "👀"). - Використовуйте `""`, щоб вимкнути реакцію для каналу або облікового запису. - - Записи в config каналу ввімкнені за замовчуванням (`configWrites !== false`). + + Записи config каналу ввімкнені за замовчуванням (`configWrites !== false`). Записи, ініційовані Telegram, включають: - - події міграції груп (`migrate_to_chat_id`) для оновлення `channels.telegram.groups` - - `/config set` і `/config unset` (потребує ввімкнення команд) + - події міграції групи (`migrate_to_chat_id`) для оновлення `channels.telegram.groups` + - `/config set` і `/config unset` (потрібне ввімкнення команд) Вимкнення: @@ -750,45 +750,45 @@ curl "https://api.telegram.org/bot/getUpdates" - - За замовчуванням: довге опитування. + + За замовчуванням: long polling. Режим Webhook: - задайте `channels.telegram.webhookUrl` - - задайте `channels.telegram.webhookSecret` (обов’язково, якщо задано URL Webhook) + - задайте `channels.telegram.webhookSecret` (обов’язково, якщо задано webhook URL) - необов’язково `channels.telegram.webhookPath` (за замовчуванням `/telegram-webhook`) - необов’язково `channels.telegram.webhookHost` (за замовчуванням `127.0.0.1`) - необов’язково `channels.telegram.webhookPort` (за замовчуванням `8787`) - Локальний слухач за замовчуванням для режиму Webhook прив’язується до `127.0.0.1:8787`. + Типовий локальний listener для режиму Webhook прив’язується до `127.0.0.1:8787`. - Якщо ваша публічна кінцева точка відрізняється, розмістіть перед нею reverse proxy і спрямуйте `webhookUrl` на публічний URL. - Задайте `webhookHost` (наприклад, `0.0.0.0`), коли вам свідомо потрібен зовнішній вхідний доступ. + Якщо ваша публічна кінцева точка відрізняється, розмістіть перед нею reverse proxy і вкажіть `webhookUrl` на публічний URL. + Задайте `webhookHost` (наприклад, `0.0.0.0`), коли вам навмисно потрібен зовнішній ingress. - - Значення за замовчуванням для `channels.telegram.textChunkLimit` — 4000. - - `channels.telegram.chunkMode="newline"` віддає перевагу межам абзаців (порожнім рядкам) перед поділом за довжиною. + - Типове значення `channels.telegram.textChunkLimit` — 4000. + - `channels.telegram.chunkMode="newline"` надає перевагу межам абзаців (порожнім рядкам) перед поділом за довжиною. - `channels.telegram.mediaMaxMb` (за замовчуванням 100) обмежує розмір вхідних і вихідних медіа Telegram. - - `channels.telegram.timeoutSeconds` перевизначає таймаут клієнта Telegram API (якщо не задано, застосовується значення grammY за замовчуванням). - - Історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (за замовчуванням 50); `0` вимикає її. - - Додатковий контекст відповіді/цитати/пересилання наразі передається як отримано. - - Telegram allowlist насамперед керують тим, хто може активувати агента, а не є повною межею редагування додаткового контексту. - - Керування історією DM: + - `channels.telegram.timeoutSeconds` перевизначає тайм-аут клієнта Telegram API (якщо не задано, застосовується типове значення grammY). + - історія контексту групи використовує `channels.telegram.historyLimit` або `messages.groupChat.historyLimit` (за замовчуванням 50); `0` вимикає її. + - додатковий контекст reply/quote/forward наразі передається як отримано. + - allowlist Telegram насамперед обмежують, хто може активувати agent, а не є повноцінною межею редагування додаткового контексту. + - елементи керування історією DM: - `channels.telegram.dmHistoryLimit` - `channels.telegram.dms[""].historyLimit` - - Config `channels.telegram.retry` застосовується до допоміжних функцій надсилання Telegram (CLI/tools/actions) для відновлюваних вихідних помилок API. + - config `channels.telegram.retry` застосовується до допоміжних функцій надсилання Telegram (CLI/tools/actions) для відновлюваних помилок вихідного API. - Ціллю надсилання в CLI може бути числовий ID чату або ім’я користувача: + Ціль надсилання CLI може бути числовим ID чату або username: ```bash openclaw message send --channel telegram --target 123456789 --message "hi" openclaw message send --channel telegram --target @name --message "hi" ``` - Telegram polling використовує `openclaw message poll` і підтримує теми форуму: + Telegram polling використовують `openclaw message poll` і підтримують теми форумів: ```bash openclaw message poll --channel telegram --target 123456789 \ @@ -807,70 +807,70 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ Надсилання Telegram також підтримує: - - `--buttons` для вбудованих клавіатур, коли `channels.telegram.capabilities.inlineButtons` це дозволяє - - `--force-document`, щоб надсилати вихідні зображення й GIF як документи замість стиснених фото або завантажень анімованих медіа + - `--buttons` для вбудованих клавіатур, коли `channels.telegram.capabilities.inlineButtons` дозволяє це для відповідної поверхні + - `--force-document`, щоб надсилати вихідні зображення та GIF як документи, а не як стиснені фото чи завантаження анімованих медіа - Керування дозволами дій: + Керування gating дій: - - `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, зокрема poll - - `channels.telegram.actions.poll=false` вимикає створення poll у Telegram, залишаючи звичайне надсилання ввімкненим + - `channels.telegram.actions.sendMessage=false` вимикає вихідні повідомлення Telegram, включно з poll + - `channels.telegram.actions.poll=false` вимикає створення Telegram poll, залишаючи звичайне надсилання ввімкненим - - Telegram підтримує підтвердження exec у DM тих, хто підтверджує, і за потреби може публікувати запити на підтвердження у вихідному чаті або темі. + + Telegram підтримує погодження exec у DM approver і за потреби може публікувати запити на погодження у вихідному чаті або темі. Шлях config: - `channels.telegram.execApprovals.enabled` - - `channels.telegram.execApprovals.approvers` (необов’язково; використовує як резервний варіант числові ID власника, виведені з `allowFrom` і прямого `defaultTo`, коли це можливо) + - `channels.telegram.execApprovals.approvers` (необов’язково; як резервне значення використовуються числові ID owner, виведені з `allowFrom` і direct `defaultTo`, коли це можливо) - `channels.telegram.execApprovals.target` (`dm` | `channel` | `both`, за замовчуванням: `dm`) - `agentFilter`, `sessionFilter` - Ті, хто підтверджує, мають бути числовими ID користувачів Telegram. Telegram автоматично вмикає нативні підтвердження exec, коли `enabled` не задано або має значення `"auto"` і можна визначити принаймні одного підтверджувача — або з `execApprovals.approvers`, або з числового config власника облікового запису (`allowFrom` і DM `defaultTo`). Задайте `enabled: false`, щоб явно вимкнути Telegram як нативний клієнт підтвердження. Інакше запити на підтвердження переходять до інших налаштованих маршрутів підтвердження або до fallback policy для підтверджень exec. + Approver мають бути числовими ID користувачів Telegram. Telegram автоматично вмикає нативні погодження exec, коли `enabled` не задано або має значення `"auto"` і можна визначити принаймні одного approver — або з `execApprovals.approvers`, або з числової config owner облікового запису (`allowFrom` і direct-message `defaultTo`). Установіть `enabled: false`, щоб явно вимкнути Telegram як нативний клієнт погодження. В інших випадках запити на погодження повертаються до інших налаштованих маршрутів погодження або до fallback-політики погодження exec. - Telegram також рендерить спільні кнопки підтвердження, які використовують інші канали чату. Нативний адаптер Telegram головним чином додає маршрутизацію DM для підтверджувачів, fanout на канали/теми та підказки введення перед доставкою. - Коли ці кнопки присутні, вони є основним UX підтвердження; OpenClaw - має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, - що підтвердження в чаті недоступні або ручне підтвердження є єдиним шляхом. + Telegram також рендерить спільні кнопки погодження, які використовуються в інших чат-каналах. Нативний адаптер Telegram переважно додає маршрутизацію DM approver, fanout у канал/тему та підказки typing перед доставкою. + Коли ці кнопки присутні, вони є основним UX погодження; OpenClaw + має включати ручну команду `/approve` лише тоді, коли результат інструмента каже, + що погодження в чаті недоступні або ручне погодження — єдиний шлях. Правила доставки: - - `target: "dm"` надсилає запити на підтвердження лише в DM визначеним підтверджувачам + - `target: "dm"` надсилає запити на погодження лише в DM визначених approver - `target: "channel"` надсилає запит назад у вихідний чат/тему Telegram - - `target: "both"` надсилає в DM підтверджувачам і у вихідний чат/тему + - `target: "both"` надсилає і в DM approver, і у вихідний чат/тему - Лише визначені підтверджувачі можуть схвалювати або відхиляти. Інші користувачі не можуть використовувати `/approve` і не можуть використовувати кнопки підтвердження Telegram. + Лише визначені approver можуть погоджувати або відхиляти. Не-approver не можуть використовувати `/approve` і не можуть використовувати кнопки погодження Telegram. - Поведінка визначення підтвердження: + Поведінка визначення погодження: - - ID з префіксом `plugin:` завжди визначаються через підтвердження Plugin. - - Інші ID спочатку намагаються пройти через `exec.approval.resolve`. - - Якщо Telegram також авторизований для підтверджень Plugin і gateway повідомляє, - що підтвердження exec невідоме/прострочене, Telegram повторює спробу один раз через + - ID з префіксом `plugin:` завжди визначаються через погодження Plugin. + - Для інших ID спочатку виконується `exec.approval.resolve`. + - Якщо Telegram також авторизовано для погоджень Plugin і gateway повідомляє, + що погодження exec невідоме/прострочене, Telegram повторює спробу один раз через `plugin.approval.resolve`. - - Справжні відмови/помилки підтвердження exec не переходять мовчки до визначення - підтвердження Plugin. + - Справжні відхилення/помилки погодження exec не переходять мовчки до + визначення погодження Plugin. - Доставка в канал показує текст команди в чаті, тому вмикайте `channel` або `both` лише в довірених групах/темах. Коли запит потрапляє в тему форуму, OpenClaw зберігає тему як для запиту на підтвердження, так і для подальшої дії після підтвердження. За замовчуванням підтвердження exec спливають через 30 хвилин. + Доставка в канал показує текст команди в чаті, тому вмикайте `channel` або `both` лише в довірених групах/темах. Коли запит потрапляє в тему форуму, OpenClaw зберігає тему і для запиту на погодження, і для подальшого повідомлення після погодження. За замовчуванням погодження exec спливають через 30 хвилин. - Вбудовані кнопки підтвердження також залежать від того, що `channels.telegram.capabilities.inlineButtons` дозволяє цільову поверхню (`dm`, `group` або `all`). + Кнопки вбудованого погодження також залежать від того, що `channels.telegram.capabilities.inlineButtons` дозволяє цільову поверхню (`dm`, `group` або `all`). - Пов’язана документація: [Підтвердження exec](/uk/tools/exec-approvals) + Пов’язана документація: [Погодження exec](/uk/tools/exec-approvals) -## Керування відповідями про помилки +## Елементи керування відповідями на помилки -Коли агент стикається з помилкою доставки або provider, Telegram може або відповісти текстом помилки, або приховати її. Цю поведінку контролюють два ключі config: +Коли agent стикається з помилкою доставки або provider, Telegram може або відповісти текстом помилки, або придушити її. Цю поведінку контролюють два ключі config: -| Ключ | Значення | За замовчуванням | Опис | -| ----------------------------------- | ----------------- | ---------------- | --------------------------------------------------------------------------------------------- | -| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку в чат. `silent` повністю пригнічує відповіді про помилки. | -| `channels.telegram.errorCooldownMs` | число (мс) | `60000` | Мінімальний час між відповідями про помилки в тому самому чаті. Запобігає спаму помилками під час збоїв. | +| Key | Values | Default | Description | +| ----------------------------------- | ----------------- | ------- | ----------------------------------------------------------------------------------------------- | +| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` надсилає дружнє повідомлення про помилку в чат. `silent` повністю придушує відповіді з помилками. | +| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Мінімальний час між відповідями з помилками в тому самому чаті. Запобігає спаму помилками під час збоїв. | -Підтримуються перевизначення для окремого облікового запису, окремої групи та окремої теми (таке саме успадкування, як і для інших ключів config Telegram). +Підтримуються перевизначення для облікового запису, групи й теми (те саме успадкування, що й для інших ключів config Telegram). ```json5 { @@ -880,7 +880,7 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ errorCooldownMs: 120000, groups: { "-1001234567890": { - errorPolicy: "silent", // приглушити помилки в цій групі + errorPolicy: "silent", // придушити помилки в цій групі }, }, }, @@ -891,39 +891,40 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \ ## Усунення проблем - + - Якщо `requireMention=false`, режим приватності Telegram має дозволяти повну видимість. - BotFather: `/setprivacy` -> Disable - - потім видаліть бота й додайте його знову до групи - - `openclaw channels status` попереджає, коли config очікує повідомлення в групі без згадки. - - `openclaw channels status --probe` може перевіряти явні числові ID груп; wildcard `"*"` не можна перевірити на членство через probe. + - потім видаліть бота і знову додайте його до групи + - `openclaw channels status` попереджає, коли config очікує повідомлення в групі без згадування. + - `openclaw channels status --probe` може перевіряти явні числові ID груп; членство для wildcard `"*"` перевірити неможливо. - швидка перевірка сесії: `/activation always`. - + - - коли `channels.telegram.groups` існує, група має бути вказана в списку (або має бути `"*"`) + - коли існує `channels.telegram.groups`, група має бути вказана в списку (або має бути `"*"`) - перевірте, що бот є учасником групи - перегляньте логи: `openclaw logs --follow` для причин пропуску - + - - авторизуйте свою ідентичність відправника (сполучення та/або числовий `allowFrom`) - - авторизація команд усе одно застосовується, навіть якщо політика групи — `open` - - `setMyCommands failed` із `BOT_COMMANDS_TOO_MUCH` означає, що нативне меню має занадто багато записів; зменште кількість команд Plugin/Skills/користувацьких команд або вимкніть нативні меню + - авторизуйте свою ідентичність відправника (підключення та/або числовий `allowFrom`) + - авторизація команд однаково застосовується, навіть коли політика групи `open` + - `setMyCommands failed` з `BOT_COMMANDS_TOO_MUCH` означає, що нативне меню містить забагато записів; зменште кількість команд Plugin/Skills/користувацьких команд або вимкніть нативні меню - `setMyCommands failed` із помилками network/fetch зазвичай вказує на проблеми досяжності DNS/HTTPS до `api.telegram.org` - - Node 22+ + custom fetch/proxy можуть викликати негайне переривання, якщо типи AbortSignal не збігаються. - - Деякі хости спочатку визначають `api.telegram.org` у IPv6; несправний вихідний IPv6 може спричиняти періодичні збої Telegram API. - - Якщо логи містять `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює такі спроби як відновлювані помилки мережі. + - Node 22+ + custom fetch/proxy можуть спричиняти негайне переривання, якщо типи AbortSignal не збігаються. + - На деяких хостах `api.telegram.org` спочатку визначається в IPv6; несправний вихідний IPv6 може спричиняти періодичні збої Telegram API. + - Якщо в логах є `TypeError: fetch failed` або `Network request for 'getUpdates' failed!`, OpenClaw тепер повторює їх як відновлювані мережеві помилки. + - Якщо в логах є `Polling stall detected`, OpenClaw перезапускає polling і перебудовує транспорт Telegram. Стійкі зависання зазвичай вказують на проблеми proxy, DNS, IPv6 або TLS-виходу між хостом і `api.telegram.org`. - На VPS-хостах із нестабільним прямим виходом/TLS маршрутизуйте виклики Telegram API через `channels.telegram.proxy`: ```yaml @@ -932,8 +933,8 @@ channels: proxy: socks5://:@proxy-host:1080 ``` - - У Node 22+ за замовчуванням `autoSelectFamily=true` (крім WSL2) і `dnsResultOrder=ipv4first`. - - Якщо ваш хост — WSL2 або йому явно краще працювати в режимі лише IPv4, примусово задайте вибір сімейства: + - Node 22+ за замовчуванням використовує `autoSelectFamily=true` (окрім WSL2) і `dnsResultOrder=ipv4first`. + - Якщо ваш хост — WSL2 або явно краще працює лише з IPv4, примусово задайте вибір сімейства: ```yaml channels: @@ -942,8 +943,8 @@ channels: autoSelectFamily: false ``` - - Відповіді з benchmark-range RFC 2544 (`198.18.0.0/15`) уже дозволені - за замовчуванням для завантажень медіа Telegram. Якщо довірений fake-IP або + - Відповіді з RFC 2544 benchmark range (`198.18.0.0/15`) уже дозволені + за замовчуванням для завантаження медіа Telegram. Якщо довірений fake-IP або transparent proxy переписує `api.telegram.org` на якусь іншу приватну/внутрішню/special-use адресу під час завантаження медіа, ви можете явно ввімкнути обхід лише для Telegram: @@ -955,25 +956,25 @@ channels: dangerouslyAllowPrivateNetwork: true ``` - - Така сама явна опція доступна для окремого облікового запису в + - Те саме явне ввімкнення доступне для окремого облікового запису в `channels.telegram.accounts..network.dangerouslyAllowPrivateNetwork`. - Якщо ваш proxy визначає медіахости Telegram у `198.18.x.x`, спочатку залиште - небезпечний прапорець вимкненим. Медіа Telegram уже дозволяють діапазон RFC 2544 - за замовчуванням. + небезпечний прапорець вимкненим. Медіа Telegram вже за замовчуванням дозволяють RFC 2544 + benchmark range. `channels.telegram.network.dangerouslyAllowPrivateNetwork` послаблює захист Telegram - media SSRF. Використовуйте це лише в довірених середовищах із proxy, контрольованих оператором, - таких як маршрутизація fake-IP у Clash, Mihomo або Surge, коли вони синтезують - приватні або special-use відповіді поза межами benchmark range RFC 2544. Для звичайного - доступу до Telegram через публічний інтернет залишайте це вимкненим. + media SSRF. Використовуйте це лише в довірених середовищах proxy, керованих оператором, + таких як fake-IP-маршрутизація Clash, Mihomo або Surge, коли вони + синтезують приватні або special-use відповіді поза межами RFC 2544 benchmark + range. Для звичайного публічного доступу до Telegram через інтернет залишайте це вимкненим. - - Перевизначення середовища (тимчасові): + - Перевизначення через середовище (тимчасово): - `OPENCLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY=1` - `OPENCLAW_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY=1` - `OPENCLAW_TELEGRAM_DNS_RESULT_ORDER=ipv4first` - - Перевірте відповіді DNS: + - Перевірка DNS-відповідей: ```bash dig +short api.telegram.org A @@ -991,87 +992,87 @@ dig +short api.telegram.org AAAA - `channels.telegram.enabled`: увімкнути/вимкнути запуск каналу. - `channels.telegram.botToken`: токен бота (BotFather). -- `channels.telegram.tokenFile`: читати токен зі шляху до звичайного файла. Symlink відхиляються. +- `channels.telegram.tokenFile`: читати токен зі шляху до звичайного файлу. Symlink відхиляються. - `channels.telegram.dmPolicy`: `pairing | allowlist | open | disabled` (за замовчуванням: pairing). -- `channels.telegram.allowFrom`: DM allowlist (числові ID користувачів Telegram). `allowlist` потребує принаймні одного ID відправника. `open` потребує `"*"`. `openclaw doctor --fix` може перетворити застарілі записи `@username` на ID, а також може відновити записи allowlist із файлів pairing-store у потоках міграції allowlist. -- `channels.telegram.actions.poll`: увімкнути або вимкнути створення poll у Telegram (за замовчуванням: увімкнено; усе одно потребує `sendMessage`). -- `channels.telegram.defaultTo`: ціль Telegram за замовчуванням, яку використовує CLI `--deliver`, коли не задано явний `--reply-to`. +- `channels.telegram.allowFrom`: DM allowlist (числові ID користувачів Telegram). `allowlist` вимагає щонайменше один ID відправника. `open` вимагає `"*"`. `openclaw doctor --fix` може визначити застарілі записи `@username` у ID, а також може відновити записи allowlist з файлів pairing-store у сценаріях міграції allowlist. +- `channels.telegram.actions.poll`: увімкнути або вимкнути створення Telegram poll (за замовчуванням: увімкнено; усе одно потрібен `sendMessage`). +- `channels.telegram.defaultTo`: ціль Telegram за замовчуванням, яку CLI `--deliver` використовує, коли не задано явний `--reply-to`. - `channels.telegram.groupPolicy`: `open | allowlist | disabled` (за замовчуванням: allowlist). -- `channels.telegram.groupAllowFrom`: allowlist відправників у групах (числові ID користувачів Telegram). `openclaw doctor --fix` може перетворити застарілі записи `@username` на ID. Нечислові записи ігноруються під час auth. Auth у групах не використовує резервний варіант DM pairing-store (`2026.2.25+`). +- `channels.telegram.groupAllowFrom`: allowlist відправників групи (числові ID користувачів Telegram). `openclaw doctor --fix` може визначити застарілі записи `@username` у ID. Нечислові записи ігноруються під час auth. Group auth не використовує fallback сховища pairing для DM (`2026.2.25+`). - Пріоритетність multi-account: - Коли налаштовано два або більше ID облікових записів, задайте `channels.telegram.defaultAccount` (або включіть `channels.telegram.accounts.default`), щоб зробити маршрутизацію за замовчуванням явною. - - Якщо не задано ні те, ні інше, OpenClaw використовує перший нормалізований ID облікового запису як резервний варіант, а `openclaw doctor` показує попередження. + - Якщо не задано жодного з них, OpenClaw використовує перший нормалізований ID облікового запису як fallback, а `openclaw doctor` показує попередження. - `channels.telegram.accounts.default.allowFrom` і `channels.telegram.accounts.default.groupAllowFrom` застосовуються лише до облікового запису `default`. - Іменовані облікові записи успадковують `channels.telegram.allowFrom` і `channels.telegram.groupAllowFrom`, коли значення на рівні облікового запису не задано. - Іменовані облікові записи не успадковують `channels.telegram.accounts.default.allowFrom` / `groupAllowFrom`. -- `channels.telegram.groups`: значення за замовчуванням для окремих груп + allowlist (використовуйте `"*"` для глобальних значень за замовчуванням). - - `channels.telegram.groups..groupPolicy`: перевизначення groupPolicy для окремої групи (`open | allowlist | disabled`). - - `channels.telegram.groups..requireMention`: значення за замовчуванням для обов’язкової згадки. - - `channels.telegram.groups..skills`: фільтр Skills (не вказано = усі Skills, порожньо = жодного). - - `channels.telegram.groups..allowFrom`: перевизначення allowlist відправників для окремої групи. - - `channels.telegram.groups..systemPrompt`: додатковий системний prompt для групи. +- `channels.telegram.groups`: значення за замовчуванням для групи + allowlist (використовуйте `"*"` для глобальних значень за замовчуванням). + - `channels.telegram.groups..groupPolicy`: перевизначення groupPolicy для групи (`open | allowlist | disabled`). + - `channels.telegram.groups..requireMention`: значення за замовчуванням для gating за згадуванням. + - `channels.telegram.groups..skills`: фільтр Skills (omit = усі Skills, empty = жодного). + - `channels.telegram.groups..allowFrom`: перевизначення allowlist відправників для групи. + - `channels.telegram.groups..systemPrompt`: додатковий system prompt для групи. - `channels.telegram.groups..enabled`: вимкнути групу, якщо `false`. - - `channels.telegram.groups..topics..*`: перевизначення для окремої теми (поля групи + `agentId`, який доступний лише для теми). - - `channels.telegram.groups..topics..agentId`: маршрутизувати цю тему до конкретного агента (перевизначає маршрутизацію на рівні групи та binding). -- `channels.telegram.groups..topics..groupPolicy`: перевизначення groupPolicy для окремої теми (`open | allowlist | disabled`). -- `channels.telegram.groups..topics..requireMention`: перевизначення обов’язкової згадки для окремої теми. -- верхньорівневий `bindings[]` з `type: "acp"` і канонічним ID теми `chatId:topic:topicId` у `match.peer.id`: поля постійної прив’язки тем ACP (див. [ACP Agents](/uk/tools/acp-agents#channel-specific-settings)). -- `channels.telegram.direct..topics..agentId`: маршрутизувати теми DM до конкретного агента (така сама поведінка, як у тем форуму). -- `channels.telegram.execApprovals.enabled`: увімкнути Telegram як клієнт підтвердження exec на основі чату для цього облікового запису. -- `channels.telegram.execApprovals.approvers`: ID користувачів Telegram, яким дозволено схвалювати або відхиляти запити exec. Необов’язково, якщо `channels.telegram.allowFrom` або прямий `channels.telegram.defaultTo` уже визначає власника. -- `channels.telegram.execApprovals.target`: `dm | channel | both` (за замовчуванням: `dm`). `channel` і `both` зберігають вихідну тему Telegram, якщо вона є. -- `channels.telegram.execApprovals.agentFilter`: необов’язковий фільтр ID агента для пересланих запитів на підтвердження. -- `channels.telegram.execApprovals.sessionFilter`: необов’язковий фільтр ключа сесії (підрядок або regex) для пересланих запитів на підтвердження. -- `channels.telegram.accounts..execApprovals`: перевизначення для окремого облікового запису для маршрутизації підтверджень exec у Telegram та авторизації тих, хто підтверджує. + - `channels.telegram.groups..topics..*`: перевизначення для окремої теми (поля групи + `agentId` лише для теми). + - `channels.telegram.groups..topics..agentId`: маршрутизувати цю тему до конкретного agent (перевизначає маршрутизацію на рівні групи та binding). +- `channels.telegram.groups..topics..groupPolicy`: перевизначення groupPolicy для теми (`open | allowlist | disabled`). +- `channels.telegram.groups..topics..requireMention`: перевизначення gating за згадуванням для теми. +- верхньорівневий `bindings[]` з `type: "acp"` і канонічним ID теми `chatId:topic:topicId` у `match.peer.id`: поля постійного прив’язування ACP до теми (див. [ACP Agents](/uk/tools/acp-agents#channel-specific-settings)). +- `channels.telegram.direct..topics..agentId`: маршрутизувати теми DM до конкретного agent (та сама поведінка, що й для тем форуму). +- `channels.telegram.execApprovals.enabled`: увімкнути Telegram як чат-клієнт погодження exec для цього облікового запису. +- `channels.telegram.execApprovals.approvers`: ID користувачів Telegram, яким дозволено погоджувати або відхиляти запити exec. Необов’язково, якщо `channels.telegram.allowFrom` або прямий `channels.telegram.defaultTo` уже визначає owner. +- `channels.telegram.execApprovals.target`: `dm | channel | both` (за замовчуванням: `dm`). `channel` і `both` зберігають вихідну тему Telegram, якщо вона присутня. +- `channels.telegram.execApprovals.agentFilter`: необов’язковий фільтр ID agent для пересланих запитів на погодження. +- `channels.telegram.execApprovals.sessionFilter`: необов’язковий фільтр ключа session (підрядок або regex) для пересланих запитів на погодження. +- `channels.telegram.accounts..execApprovals`: перевизначення маршрутизації погоджень exec Telegram та авторизації approver для окремого облікового запису. - `channels.telegram.capabilities.inlineButtons`: `off | dm | group | all | allowlist` (за замовчуванням: allowlist). - `channels.telegram.accounts..capabilities.inlineButtons`: перевизначення для окремого облікового запису. -- `channels.telegram.commands.nativeSkills`: увімкнути/вимкнути нативні команди Skills у Telegram. +- `channels.telegram.commands.nativeSkills`: увімкнути/вимкнути нативні команди Skills Telegram. - `channels.telegram.replyToMode`: `off | first | all` (за замовчуванням: `off`). -- `channels.telegram.textChunkLimit`: розмір вихідного фрагмента (символів). -- `channels.telegram.chunkMode`: `length` (за замовчуванням) або `newline`, щоб розбивати за порожніми рядками (межами абзаців) перед розбиттям за довжиною. +- `channels.telegram.textChunkLimit`: розмір вихідного чанка (символи). +- `channels.telegram.chunkMode`: `length` (за замовчуванням) або `newline`, щоб розділяти за порожніми рядками (межами абзаців) перед поділом за довжиною. - `channels.telegram.linkPreview`: перемикач попереднього перегляду посилань для вихідних повідомлень (за замовчуванням: true). -- `channels.telegram.streaming`: `off | partial | block | progress` (live stream preview; за замовчуванням: `partial`; `progress` зіставляється з `partial`; `block` — сумісність із застарілим режимом preview). Preview streaming у Telegram використовує одне повідомлення попереднього перегляду, яке редагується на місці. -- `channels.telegram.mediaMaxMb`: обмеження медіа Telegram для вхідних/вихідних даних (МБ, за замовчуванням: 100). -- `channels.telegram.retry`: політика повторних спроб для допоміжних функцій надсилання Telegram (CLI/tools/actions) у разі відновлюваних вихідних помилок API (`attempts`, `minDelayMs`, `maxDelayMs`, `jitter`). -- `channels.telegram.network.autoSelectFamily`: перевизначити Node autoSelectFamily (true=увімкнути, false=вимкнути). За замовчуванням увімкнено в Node 22+, а для WSL2 за замовчуванням вимкнено. -- `channels.telegram.network.dnsResultOrder`: перевизначити порядок результатів DNS (`ipv4first` або `verbatim`). За замовчуванням `ipv4first` у Node 22+. -- `channels.telegram.network.dangerouslyAllowPrivateNetwork`: небезпечний явний дозвіл для довірених середовищ із fake-IP або transparent proxy, де завантаження медіа Telegram визначають `api.telegram.org` у приватні/внутрішні/special-use адреси поза межами дозволеного за замовчуванням benchmark-range RFC 2544. +- `channels.telegram.streaming`: `off | partial | block | progress` (попередній перегляд live stream; за замовчуванням: `partial`; `progress` зіставляється з `partial`; `block` — сумісність із застарілим режимом попереднього перегляду). Попередній перегляд потокового передавання Telegram використовує одне повідомлення попереднього перегляду, яке редагується на місці. +- `channels.telegram.mediaMaxMb`: обмеження вхідних/вихідних медіа Telegram (МБ, за замовчуванням: 100). +- `channels.telegram.retry`: політика повторних спроб для допоміжних функцій надсилання Telegram (CLI/tools/actions) у разі відновлюваних помилок вихідного API (attempts, minDelayMs, maxDelayMs, jitter). +- `channels.telegram.network.autoSelectFamily`: перевизначення Node autoSelectFamily (true=увімкнути, false=вимкнути). За замовчуванням увімкнено в Node 22+, а у WSL2 за замовчуванням вимкнено. +- `channels.telegram.network.dnsResultOrder`: перевизначення порядку DNS-результатів (`ipv4first` або `verbatim`). За замовчуванням `ipv4first` у Node 22+. +- `channels.telegram.network.dangerouslyAllowPrivateNetwork`: небезпечне явне ввімкнення для довірених середовищ fake-IP або transparent-proxy, де завантаження медіа Telegram визначають `api.telegram.org` у приватні/внутрішні/special-use адреси поза типовим дозволом RFC 2544 benchmark-range. - `channels.telegram.proxy`: URL proxy для викликів Bot API (SOCKS/HTTP). -- `channels.telegram.webhookUrl`: увімкнути режим Webhook (потребує `channels.telegram.webhookSecret`). +- `channels.telegram.webhookUrl`: увімкнути режим Webhook (потрібен `channels.telegram.webhookSecret`). - `channels.telegram.webhookSecret`: секрет Webhook (обов’язковий, коли задано webhookUrl). - `channels.telegram.webhookPath`: локальний шлях Webhook (за замовчуванням `/telegram-webhook`). -- `channels.telegram.webhookHost`: локальний хост прив’язки Webhook (за замовчуванням `127.0.0.1`). -- `channels.telegram.webhookPort`: локальний порт прив’язки Webhook (за замовчуванням `8787`). -- `channels.telegram.actions.reactions`: керування дозволами для реакцій інструмента Telegram. -- `channels.telegram.actions.sendMessage`: керування дозволами для надсилання повідомлень інструментом Telegram. -- `channels.telegram.actions.deleteMessage`: керування дозволами для видалення повідомлень інструментом Telegram. -- `channels.telegram.actions.sticker`: керування дозволами для дій зі стікерами Telegram — надсилання та пошук (за замовчуванням: false). -- `channels.telegram.reactionNotifications`: `off | own | all` — керує тим, які реакції запускають системні події (за замовчуванням: `own`, якщо не задано). -- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` — керує можливістю агента працювати з реакціями (за замовчуванням: `minimal`, якщо не задано). -- `channels.telegram.errorPolicy`: `reply | silent` — керує поведінкою відповіді на помилки (за замовчуванням: `reply`). Підтримуються перевизначення для окремого облікового запису/групи/теми. -- `channels.telegram.errorCooldownMs`: мінімальна кількість мс між відповідями про помилки в тому самому чаті (за замовчуванням: `60000`). Запобігає спаму помилками під час збоїв. +- `channels.telegram.webhookHost`: локальний хост прив’язування Webhook (за замовчуванням `127.0.0.1`). +- `channels.telegram.webhookPort`: локальний порт прив’язування Webhook (за замовчуванням `8787`). +- `channels.telegram.actions.reactions`: gating реакцій інструментів Telegram. +- `channels.telegram.actions.sendMessage`: gating надсилання повідомлень інструментами Telegram. +- `channels.telegram.actions.deleteMessage`: gating видалення повідомлень інструментами Telegram. +- `channels.telegram.actions.sticker`: gating дій зі стікерами Telegram — надсилання та пошук (за замовчуванням: false). +- `channels.telegram.reactionNotifications`: `off | own | all` — визначає, які реакції запускають системні події (за замовчуванням: `own`, якщо не задано). +- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` — визначає можливість реакцій agent (за замовчуванням: `minimal`, якщо не задано). +- `channels.telegram.errorPolicy`: `reply | silent` — визначає поведінку відповіді на помилки (за замовчуванням: `reply`). Підтримуються перевизначення для облікового запису/групи/теми. +- `channels.telegram.errorCooldownMs`: мінімальна кількість мс між відповідями з помилками в тому самому чаті (за замовчуванням: `60000`). Запобігає спаму помилками під час збоїв. - [Довідник конфігурації - Telegram](/uk/gateway/configuration-reference#telegram) -Поля Telegram із високим сигналом: +Telegram-специфічні поля з високим сигналом: - startup/auth: `enabled`, `botToken`, `tokenFile`, `accounts.*` (`tokenFile` має вказувати на звичайний файл; symlink відхиляються) -- контроль доступу: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, верхньорівневий `bindings[]` (`type: "acp"`) -- підтвердження exec: `execApprovals`, `accounts.*.execApprovals` -- команда/меню: `commands.native`, `commands.nativeSkills`, `customCommands` +- керування доступом: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, верхньорівневий `bindings[]` (`type: "acp"`) +- погодження exec: `execApprovals`, `accounts.*.execApprovals` +- команди/меню: `commands.native`, `commands.nativeSkills`, `customCommands` - потоки/відповіді: `replyToMode` -- streaming: `streaming` (preview), `blockStreaming` +- потокове передавання: `streaming` (попередній перегляд), `blockStreaming` - форматування/доставка: `textChunkLimit`, `chunkMode`, `linkPreview`, `responsePrefix` - медіа/мережа: `mediaMaxMb`, `timeoutSeconds`, `retry`, `network.autoSelectFamily`, `network.dangerouslyAllowPrivateNetwork`, `proxy` - webhook: `webhookUrl`, `webhookSecret`, `webhookPath`, `webhookHost` -- дії/можливості: `capabilities.inlineButtons`, `actions.sendMessage|editMessage|deleteMessage|reactions|sticker` +- actions/capabilities: `capabilities.inlineButtons`, `actions.sendMessage|editMessage|deleteMessage|reactions|sticker` - реакції: `reactionNotifications`, `reactionLevel` - помилки: `errorPolicy`, `errorCooldownMs` - записи/історія: `configWrites`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit` ## Пов’язане -- [Сполучення](/uk/channels/pairing) +- [Підключення](/uk/channels/pairing) - [Групи](/uk/channels/groups) - [Безпека](/uk/gateway/security) - [Маршрутизація каналів](/uk/channels/channel-routing) diff --git a/docs/uk/channels/troubleshooting.md b/docs/uk/channels/troubleshooting.md index d76ea03ab..3ec547c80 100644 --- a/docs/uk/channels/troubleshooting.md +++ b/docs/uk/channels/troubleshooting.md @@ -1,14 +1,14 @@ --- read_when: - - Транспорт каналу показує, що підключений, але відповіді не надсилаються - - Перед поглибленим розглядом документації провайдера потрібні перевірки, специфічні для каналу -summary: Швидке усунення несправностей на рівні каналу з типовими ознаками збоїв і способами виправлення + - Транспорт каналу показує, що підключено, але відповіді не працюють + - Перш ніж переходити до детальної документації провайдера, потрібні перевірки, специфічні для каналу +summary: Швидке усунення несправностей на рівні каналу з ознаками збоїв і виправленнями для кожного каналу title: Усунення несправностей каналу x-i18n: - generated_at: "2026-04-20T06:31:08Z" + generated_at: "2026-04-20T22:05:51Z" model: gpt-5.4 provider: openai - source_hash: 0aef31742cd5cc4af3fa3d3ea1acba51875ad4a1423c0e8c87372c3df31b0528 + source_hash: 9dd6a0a863b97c984d44d7fd75b3b3cb3b9c4290e2da26e5677e8c4f9700a73c source_path: channels/troubleshooting.md workflow: 15 --- @@ -19,7 +19,7 @@ x-i18n: ## Послідовність команд -Спочатку виконайте їх у такому порядку: +Спочатку запускайте їх у такому порядку: ```bash openclaw status @@ -29,7 +29,7 @@ openclaw doctor openclaw channels status --probe ``` -Ознаки справного базового стану: +Базовий стан справної системи: - `Runtime: running` - `Connectivity probe: ok` @@ -38,63 +38,64 @@ openclaw channels status --probe ## WhatsApp -### Ознаки збоїв у WhatsApp +### Ознаки збоїв WhatsApp -| Симптом | Найшвидша перевірка | Виправлення | -| ------------------------------- | -------------------------------------------------- | ------------------------------------------------------------ | -| Підключено, але немає відповідей у DM | `openclaw pairing list whatsapp` | Підтвердьте відправника або змініть політику DM/список дозволених. | -| Повідомлення в групі ігноруються | Перевірте `requireMention` і шаблони згадок у конфігурації | Згадайте бота або послабте політику згадок для цієї групи. | -| Випадкові цикли відключення/повторного входу | `openclaw channels status --probe` + журнали | Увійдіть знову та переконайтеся, що каталог облікових даних справний. | +| Симптом | Найшвидша перевірка | Виправлення | +| ------------------------------- | ------------------------------------------------ | ------------------------------------------------------------ | +| Підключено, але немає відповідей у DM | `openclaw pairing list whatsapp` | Підтвердьте відправника або змініть політику DM/список дозволених. | +| Повідомлення в групі ігноруються | Перевірте `requireMention` і шаблони згадувань у конфігурації | Згадайте бота або послабте політику згадувань для цієї групи. | +| Випадкові розриви з'єднання/цикли повторного входу | `openclaw channels status --probe` + журнали | Увійдіть знову і переконайтеся, що каталог облікових даних у справному стані. | Повне усунення несправностей: [/channels/whatsapp#troubleshooting](/uk/channels/whatsapp#troubleshooting) ## Telegram -### Ознаки збоїв у Telegram +### Ознаки збоїв Telegram -| Симптом | Найшвидша перевірка | Виправлення | -| ----------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------ | -| `/start`, але немає придатного для використання потоку відповідей | `openclaw pairing list telegram` | Підтвердьте сполучення або змініть політику DM. | -| Бот онлайн, але група мовчить | Перевірте вимогу згадки та режим приватності бота | Вимкніть режим приватності для видимості в групі або згадайте бота. | -| Помилки надсилання з мережевими помилками | Перегляньте журнали на помилки викликів Telegram API | Виправте маршрутизацію DNS/IPv6/proxy до `api.telegram.org`. | -| `setMyCommands` відхиляється під час запуску | Перегляньте журнали на `BOT_COMMANDS_TOO_MUCH` | Зменште кількість команд Telegram від Plugin/Skills/власних команд або вимкніть вбудовані меню. | -| Після оновлення список дозволених вас блокує | `openclaw security audit` і списки дозволених у конфігурації | Виконайте `openclaw doctor --fix` або замініть `@username` на числові ідентифікатори відправників. | +| Симптом | Найшвидша перевірка | Виправлення | +| ----------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------- | +| Є `/start`, але немає придатного потоку відповідей | `openclaw pairing list telegram` | Підтвердьте сполучення або змініть політику DM. | +| Бот онлайн, але група мовчить | Перевірте вимогу згадування та режим приватності бота | Вимкніть режим приватності для видимості в групі або згадайте бота. | +| Помилки надсилання з мережевими збоями | Перегляньте журнали на предмет збоїв викликів Telegram API | Виправте маршрутизацію DNS/IPv6/проксі до `api.telegram.org`. | +| Polling зависає або повільно перепідключається | `openclaw logs --follow` для діагностики polling | Оновіться, а потім перевірте проксі/DNS/IPv6, якщо `getUpdates` продовжує завершуватися за тайм-аутом. | +| `setMyCommands` відхиляється під час запуску | Перегляньте журнали на `BOT_COMMANDS_TOO_MUCH` | Зменште кількість команд Telegram від plugin/Skills/користувацьких команд або вимкніть нативні меню. | +| Оновилися, і список дозволених вас блокує | `openclaw security audit` і списки дозволених у конфігурації | Запустіть `openclaw doctor --fix` або замініть `@username` на числові ID відправників. | Повне усунення несправностей: [/channels/telegram#troubleshooting](/uk/channels/telegram#troubleshooting) ## Discord -### Ознаки збоїв у Discord +### Ознаки збоїв Discord -| Симптом | Найшвидша перевірка | Виправлення | -| ------------------------------- | -------------------------------- | -------------------------------------------------------- | -| Бот онлайн, але не відповідає в guild | `openclaw channels status --probe` | Дозвольте guild/channel і перевірте intent вмісту повідомлень. | -| Повідомлення в групі ігноруються | Перевірте журнали на відхилення через згадки | Згадайте бота або встановіть `requireMention: false` для guild/channel. | -| Немає відповідей у DM | `openclaw pairing list discord` | Підтвердьте сполучення DM або скоригуйте політику DM. | +| Симптом | Найшвидша перевірка | Виправлення | +| ------------------------------- | ------------------------------------ | -------------------------------------------------------------- | +| Бот онлайн, але немає відповідей у guild | `openclaw channels status --probe` | Дозвольте guild/channel і перевірте intent для вмісту повідомлень. | +| Повідомлення в групі ігноруються | Перевірте журнали на drops через gating згадувань | Згадайте бота або встановіть `requireMention: false` для guild/channel. | +| Немає відповідей у DM | `openclaw pairing list discord` | Підтвердьте DM pairing або скоригуйте політику DM. | Повне усунення несправностей: [/channels/discord#troubleshooting](/uk/channels/discord#troubleshooting) ## Slack -### Ознаки збоїв у Slack +### Ознаки збоїв Slack -| Симптом | Найшвидша перевірка | Виправлення | -| -------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Socket mode підключено, але немає відповідей | `openclaw channels status --probe` | Перевірте токен застосунку, токен бота та потрібні дозволи; зверніть увагу на `botTokenStatus` / `appTokenStatus = configured_unavailable` у налаштуваннях на основі SecretRef. | -| DM заблоковані | `openclaw pairing list slack` | Підтвердьте сполучення або послабте політику DM. | -| Повідомлення в каналі ігнорується | Перевірте `groupPolicy` і список дозволених каналів | Дозвольте канал або перемкніть політику на `open`. | +| Симптом | Найшвидша перевірка | Виправлення | +| -------------------------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Socket mode підключений, але немає відповідей | `openclaw channels status --probe` | Перевірте токен застосунку, токен бота і потрібні scope; зверніть увагу на `botTokenStatus` / `appTokenStatus = configured_unavailable` у конфігураціях на основі SecretRef. | +| DM заблоковані | `openclaw pairing list slack` | Підтвердьте pairing або послабте політику DM. | +| Повідомлення в каналі ігнорується | Перевірте `groupPolicy` і список дозволених каналів | Дозвольте канал або перемкніть політику на `open`. | Повне усунення несправностей: [/channels/slack#troubleshooting](/uk/channels/slack#troubleshooting) ## iMessage і BlueBubbles -### Ознаки збоїв у iMessage і BlueBubbles +### Ознаки збоїв iMessage і BlueBubbles | Симптом | Найшвидша перевірка | Виправлення | | -------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------- | -| Немає вхідних подій | Перевірте доступність Webhook/сервера та дозволи застосунку | Виправте URL Webhook або стан сервера BlueBubbles. | -| Можна надсилати, але немає прийому на macOS | Перевірте дозволи конфіденційності macOS для автоматизації Messages | Повторно надайте дозволи TCC і перезапустіть процес каналу. | -| Відправника DM заблоковано | `openclaw pairing list imessage` або `openclaw pairing list bluebubbles` | Підтвердьте сполучення або оновіть список дозволених. | +| Немає вхідних подій | Перевірте доступність Webhook/сервера і дозволи застосунку | Виправте URL Webhook або стан сервера BlueBubbles. | +| Можна надсилати, але немає отримання на macOS | Перевірте дозволи macOS privacy для автоматизації Messages | Повторно надайте дозволи TCC і перезапустіть процес каналу. | +| Відправника DM заблоковано | `openclaw pairing list imessage` або `openclaw pairing list bluebubbles` | Підтвердьте pairing або оновіть список дозволених. | Повне усунення несправностей: @@ -103,39 +104,39 @@ openclaw channels status --probe ## Signal -### Ознаки збоїв у Signal +### Ознаки збоїв Signal -| Симптом | Найшвидша перевірка | Виправлення | -| ------------------------------- | ----------------------------------- | ------------------------------------------------------- | -| Демон доступний, але бот мовчить | `openclaw channels status --probe` | Перевірте URL/обліковий запис демона `signal-cli` і режим прийому. | -| DM заблоковано | `openclaw pairing list signal` | Підтвердьте відправника або скоригуйте політику DM. | -| Відповіді в групі не спрацьовують | Перевірте список дозволених груп і шаблони згадок | Додайте відправника/групу або послабте фільтрацію. | +| Симптом | Найшвидша перевірка | Виправлення | +| ------------------------------- | --------------------------------------- | -------------------------------------------------------- | +| Daemon доступний, але бот мовчить | `openclaw channels status --probe` | Перевірте URL/account daemon `signal-cli` і режим receive. | +| DM заблоковано | `openclaw pairing list signal` | Підтвердьте відправника або скоригуйте політику DM. | +| Відповіді в групі не спрацьовують | Перевірте список дозволених груп і шаблони згадувань | Додайте відправника/групу або послабте gating. | Повне усунення несправностей: [/channels/signal#troubleshooting](/uk/channels/signal#troubleshooting) ## QQ Bot -### Ознаки збоїв у QQ Bot +### Ознаки збоїв QQ Bot -| Симптом | Найшвидша перевірка | Виправлення | -| ------------------------------- | -------------------------------------------- | -------------------------------------------------------------------- | -| Бот відповідає "gone to Mars" | Перевірте `appId` і `clientSecret` у конфігурації | Налаштуйте облікові дані або перезапустіть Gateway. | -| Немає вхідних повідомлень | `openclaw channels status --probe` | Перевірте облікові дані на QQ Open Platform. | -| Голос не транскрибується | Перевірте конфігурацію провайдера STT | Налаштуйте `channels.qqbot.stt` або `tools.media.audio`. | -| Проактивні повідомлення не надходять | Перевірте вимоги платформи QQ щодо взаємодії | QQ може блокувати повідомлення, ініційовані ботом, без недавньої взаємодії. | +| Симптом | Найшвидша перевірка | Виправлення | +| ------------------------------- | ------------------------------------------- | -------------------------------------------------------------------- | +| Бот відповідає "gone to Mars" | Перевірте `appId` і `clientSecret` у конфігурації | Встановіть облікові дані або перезапустіть Gateway. | +| Немає вхідних повідомлень | `openclaw channels status --probe` | Перевірте облікові дані на QQ Open Platform. | +| Голос не транскрибується | Перевірте конфігурацію провайдера STT | Налаштуйте `channels.qqbot.stt` або `tools.media.audio`. | +| Ініційовані ботом повідомлення не надходять | Перевірте вимоги платформи QQ до взаємодії | QQ може блокувати повідомлення, ініційовані ботом, без нещодавньої взаємодії. | Повне усунення несправностей: [/channels/qqbot#troubleshooting](/uk/channels/qqbot#troubleshooting) ## Matrix -### Ознаки збоїв у Matrix +### Ознаки збоїв Matrix -| Симптом | Найшвидша перевірка | Виправлення | -| ----------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------ | -| Вхід виконано, але повідомлення кімнати ігноруються | `openclaw channels status --probe` | Перевірте `groupPolicy`, список дозволених кімнат і фільтрацію за згадками. | -| DM не обробляються | `openclaw pairing list matrix` | Підтвердьте відправника або скоригуйте політику DM. | -| Зашифровані кімнати не працюють | `openclaw matrix verify status` | Повторно верифікуйте пристрій, потім перевірте `openclaw matrix verify backup status`. | -| Відновлення резервної копії очікується/зламане | `openclaw matrix verify backup status` | Виконайте `openclaw matrix verify backup restore` або повторіть із ключем відновлення. | -| Cross-signing/bootstrap виглядає неправильно | `openclaw matrix verify bootstrap` | За один прохід виправте секретне сховище, cross-signing і стан резервної копії. | +| Симптом | Найшвидша перевірка | Виправлення | +| ----------------------------------- | ----------------------------------- | ------------------------------------------------------------------------- | +| Виконано вхід, але повідомлення кімнати ігноруються | `openclaw channels status --probe` | Перевірте `groupPolicy`, список дозволених кімнат і gating згадувань. | +| DM не обробляються | `openclaw pairing list matrix` | Підтвердьте відправника або скоригуйте політику DM. | +| Зашифровані кімнати не працюють | `openclaw matrix verify status` | Повторно верифікуйте пристрій, потім перевірте `openclaw matrix verify backup status`. | +| Відновлення резервної копії очікує/пошкоджене | `openclaw matrix verify backup status` | Запустіть `openclaw matrix verify backup restore` або повторіть із ключем відновлення. | +| Cross-signing/bootstrap виглядає неправильно | `openclaw matrix verify bootstrap` | Виправте secret storage, cross-signing і стан резервної копії за один прохід. | Повне налаштування і конфігурація: [Matrix](/uk/channels/matrix)