diff --git a/docs/uk/channels/slack.md b/docs/uk/channels/slack.md
index 711b703ab..930c1e7c4 100644
--- a/docs/uk/channels/slack.md
+++ b/docs/uk/channels/slack.md
@@ -1,43 +1,43 @@
---
read_when:
- Налаштування Slack або налагодження сокетного/HTTP-режиму Slack
-summary: Налаштування Slack і поведінка під час виконання (режим Socket + URL-адреси HTTP-запитів)
+summary: Налаштування Slack і поведінка під час виконання (Socket Mode + URL-адреси HTTP-запитів)
title: Slack
x-i18n:
- generated_at: "2026-05-02T02:59:10Z"
+ generated_at: "2026-05-02T04:01:21Z"
model: gpt-5.5
provider: openai
- source_hash: 82dbc27617415cb21e3c682d58c8a8a7f56c7471af0b43d5fcbb5df3fa872a49
+ source_hash: 1a676acabdb4dce83f813f991692624e1f5b2dff739e68b5c5bd7b064dd82d03
source_path: channels/slack.md
workflow: 16
---
-Готово до production-використання для DM і каналів через інтеграції застосунку Slack. Типовий режим — Socket Mode; HTTP Request URLs також підтримуються.
+Готовий до production-використання для DM і каналів через інтеграції Slack app. Режим за замовчуванням — Socket Mode; HTTP Request URLs також підтримуються.
-
- Slack DM типово використовують режим сполучення.
+
+ DM у Slack за замовчуванням використовують режим створення пари.
-
+
Нативна поведінка команд і каталог команд.
- Міжканальна діагностика та playbook-и відновлення.
+ Міжканальна діагностика та інструкції з виправлення.
## Швидке налаштування
-
+
-
- У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
+
+ У налаштуваннях Slack app натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
- - виберіть **from a manifest** і виберіть робочий простір для свого застосунку
- - вставте [приклад маніфесту](#manifest-and-scope-checklist) нижче та продовжте створення
- - згенеруйте **App-Level Token** (`xapp-...`) із `connections:write`
- - установіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`)
+ - виберіть **from a manifest** і виберіть workspace для свого app
+ - вставте [приклад manifest](#manifest-and-scope-checklist) нижче й продовжте створення
+ - згенеруйте **App-Level Token** (`xapp-...`) з `connections:write`
+ - установіть app і скопіюйте показаний **Bot Token** (`xoxb-...`)
@@ -64,7 +64,7 @@ openclaw config patch --file ./slack.socket.patch.json5 --dry-run
openclaw config patch --file ./slack.socket.patch.json5
```
- Резервний варіант через env (лише типовий обліковий запис):
+ Резервний варіант через env (лише обліковий запис за замовчуванням):
```bash
SLACK_APP_TOKEN=xapp-...
@@ -86,13 +86,13 @@ openclaw gateway
-
- У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
+
+ У налаштуваннях Slack app натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
- - виберіть **from a manifest** і виберіть робочий простір для свого застосунку
- - вставте [приклад маніфесту](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням
+ - виберіть **from a manifest** і виберіть workspace для свого app
+ - вставте [приклад manifest](#manifest-and-scope-checklist) і оновіть URL-адреси перед створенням
- збережіть **Signing Secret** для перевірки запитів
- - установіть застосунок і скопіюйте показаний **Bot Token** (`xoxb-...`)
+ - установіть app і скопіюйте показаний **Bot Token** (`xoxb-...`)
@@ -121,9 +121,9 @@ openclaw config patch --file ./slack.http.patch.json5
```
- Використовуйте унікальні шляхи Webhook для HTTP з кількома обліковими записами
+ Використовуйте унікальні webhook-шляхи для HTTP із кількома обліковими записами
- Надайте кожному обліковому запису окремий `webhookPath` (типово `/slack/events`), щоб реєстрації не конфліктували.
+ Надайте кожному обліковому запису окремий `webhookPath` (за замовчуванням `/slack/events`), щоб реєстрації не конфліктували.
@@ -142,7 +142,7 @@ openclaw gateway
## Налаштування транспорту Socket Mode
-OpenClaw типово встановлює для клієнта Slack SDK час очікування pong у 15 секунд для Socket Mode. Перевизначайте налаштування транспорту лише тоді, коли вам потрібне налаштування для конкретного робочого простору або хоста:
+OpenClaw за замовчуванням установлює для клієнта Slack SDK час очікування pong 15 секунд у Socket Mode. Перевизначайте транспортні налаштування лише тоді, коли потрібне налаштування під конкретний workspace або хост:
```json5
{
@@ -159,13 +159,13 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
}
```
-Використовуйте це лише для робочих просторів Socket Mode, які записують у журнал тайм-аути pong websocket Slack або server-ping, чи працюють на хостах із відомим голодуванням event loop. `clientPingTimeout` — це очікування pong після того, як SDK надсилає client ping; `serverPingTimeout` — це очікування ping-ів сервера Slack. Повідомлення й події застосунку залишаються станом застосунку, а не сигналами живості транспорту.
+Використовуйте це лише для workspace у Socket Mode, які фіксують у журналах таймаути pong/server-ping для websocket Slack або працюють на хостах із відомим виснаженням event loop. `clientPingTimeout` — це очікування pong після того, як SDK надсилає клієнтський ping; `serverPingTimeout` — очікування ping від сервера Slack. Повідомлення й події app залишаються станом застосунку, а не сигналами активності транспорту.
-## Чекліст маніфесту та scope-ів
+## Контрольний список manifest і scopes
-Базовий маніфест застосунку Slack однаковий для Socket Mode і HTTP Request URLs. Відрізняється лише блок `settings` (і `url` slash-команди).
+Базовий manifest Slack app однаковий для Socket Mode і HTTP Request URLs. Відрізняється лише блок `settings` (і `url` slash-команди).
-Базовий маніфест (Socket Mode типово):
+Базовий manifest (Socket Mode за замовчуванням):
```json
{
@@ -270,16 +270,16 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
}
```
-### Додаткові налаштування маніфесту
+### Додаткові налаштування manifest
-Покажіть різні функції, що розширюють наведені вище типові значення.
+Увімкніть інші функції, що розширюють наведені вище типові значення.
-Типовий маніфест вмикає вкладку **Home** у Slack App Home і підписується на `app_home_opened`. Коли учасник робочого простору відкриває вкладку Home, OpenClaw публікує безпечне типове подання Home через `views.publish`; payload розмови або приватна конфігурація не включаються. Вкладка **Messages** залишається ввімкненою для Slack DM.
+Типовий manifest вмикає вкладку **Home** у Slack App Home і підписується на `app_home_opened`. Коли учасник workspace відкриває вкладку Home, OpenClaw публікує безпечне типове подання Home через `views.publish`; payload розмови або приватна конфігурація не додаються. Вкладка **Messages** лишається ввімкненою для DM у Slack.
- Кілька [нативних slash-команд](#commands-and-slash-behavior) можна використовувати замість однієї налаштованої команди з такими нюансами:
+ Кілька [нативних slash-команд](#commands-and-slash-behavior) можна використовувати замість однієї налаштованої команди з певними нюансами:
- Використовуйте `/agentstatus` замість `/status`, оскільки команда `/status` зарезервована.
- Одночасно можна зробити доступними не більше ніж 25 slash-команд.
@@ -287,7 +287,7 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
Замініть наявний розділ `features.slash_commands` підмножиною [доступних команд](/uk/tools/slash-commands#command-list):
-
+
```json
"slash_commands": [
@@ -404,7 +404,7 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
- Використовуйте той самий список `slash_commands`, що й у Socket Mode вище, і додайте `"url": "https://gateway-host.example.com/slack/events"` до кожного запису. Приклад:
+ Використовуйте той самий список `slash_commands`, що й для Socket Mode вище, і додайте `"url": "https://gateway-host.example.com/slack/events"` до кожного запису. Приклад:
```json
"slash_commands": [
@@ -427,14 +427,14 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
-
- Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували активну ідентичність агента (власне ім’я користувача та іконку) замість типової ідентичності застосунку Slack.
+
+ Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (користувацьке ім’я та іконку), а не типову ідентичність Slack app.
- Якщо ви використовуєте іконку emoji, Slack очікує синтаксис `:emoji_name:`.
+ Якщо ви використовуєте emoji-іконку, Slack очікує синтаксис `:emoji_name:`.
-
- Якщо ви налаштовуєте `channels.slack.userToken`, типові області читання такі:
+
+ Якщо ви налаштовуєте `channels.slack.userToken`, типовими областями доступу для читання є:
- `channels:history`, `groups:history`, `im:history`, `mpim:history`
- `channels:read`, `groups:read`, `im:read`, `mpim:read`
@@ -442,7 +442,7 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
- `reactions:read`
- `pins:read`
- `emoji:read`
- - `search:read` (якщо ви покладаєтеся на читання пошуку Slack)
+ - `search:read` (якщо ви покладаєтеся на читання через пошук Slack)
@@ -450,49 +450,49 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
## Модель токенів
- `botToken` + `appToken` потрібні для Socket Mode.
-- HTTP-режим потребує `botToken` + `signingSecret`.
-- `botToken`, `appToken`, `signingSecret` і `userToken` приймають відкриті текстові
+- Режим HTTP потребує `botToken` + `signingSecret`.
+- `botToken`, `appToken`, `signingSecret` і `userToken` приймають відкриті
рядки або об’єкти SecretRef.
-- Токени в конфігурації перевизначають резервні значення з env.
-- Резервні env-значення `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовуються лише до стандартного облікового запису.
-- `userToken` (`xoxp-...`) налаштовується лише через конфігурацію (без резервного env-значення) і за замовчуванням має поведінку лише для читання (`userTokenReadOnly: true`).
+- Токени конфігурації мають пріоритет над резервними значеннями зі змінних середовища.
+- Резервні значення env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовуються лише до облікового запису за замовчуванням.
+- `userToken` (`xoxp-...`) налаштовується лише в конфігурації (без резервного значення env) і за замовчуванням працює лише для читання (`userTokenReadOnly: true`).
Поведінка знімка стану:
-- Перевірка облікового запису Slack відстежує поля `*Source` і `*Status`
+- Інспекція облікового запису Slack відстежує поля `*Source` і `*Status`
для кожних облікових даних (`botToken`, `appToken`, `signingSecret`, `userToken`).
-- Стан: `available`, `configured_unavailable` або `missing`.
+- Стан може бути `available`, `configured_unavailable` або `missing`.
- `configured_unavailable` означає, що обліковий запис налаштовано через SecretRef
- або інше не-inline джерело секрету, але поточний шлях команди/середовища виконання
- не зміг визначити фактичне значення.
-- У HTTP-режимі включено `signingSecretStatus`; у Socket Mode
- обов’язкова пара — `botTokenStatus` + `appTokenStatus`.
+ або інше неінлайн-джерело секретів, але поточна команда чи шлях виконання
+ не змогли отримати фактичне значення.
+- У режимі HTTP включається `signingSecretStatus`; у Socket Mode
+ потрібна пара — `botTokenStatus` + `appTokenStatus`.
-Для дій/читання довідника user token може мати пріоритет, якщо його налаштовано. Для запису bot token і далі має пріоритет; записи через user-token дозволені лише коли `userTokenReadOnly: false` і bot token недоступний.
+Для дій і читання каталогу користувацький токен може мати пріоритет, якщо його налаштовано. Для запису перевага залишається за bot token; записи через користувацький токен дозволені лише коли `userTokenReadOnly: false` і bot token недоступний.
## Дії та шлюзи
-Дії Slack контролюються через `channels.slack.actions.*`.
+Дії Slack керуються через `channels.slack.actions.*`.
Доступні групи дій у поточному інструментарії Slack:
-| Група | Стандартно |
-| ---------- | ---------- |
+| Група | За замовчуванням |
+| ---------- | ------- |
| messages | увімкнено |
| reactions | увімкнено |
| pins | увімкнено |
| memberInfo | увімкнено |
| emojiList | увімкнено |
-Поточні дії повідомлень Slack містять `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`. `download-file` приймає ідентифікатори файлів Slack, показані у вхідних заповнювачах файлів, і повертає попередні перегляди зображень для зображень або метадані локальних файлів для інших типів файлів.
+Поточні дії повідомлень Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`. `download-file` приймає ID файлів Slack, показані у вхідних плейсхолдерах файлів, і повертає прев’ю зображень для зображень або метадані локального файлу для інших типів файлів.
## Контроль доступу та маршрутизація
- `channels.slack.dmPolicy` керує доступом до DM. `channels.slack.allowFrom` — канонічний allowlist для DM.
+ `channels.slack.dmPolicy` керує доступом до DM. `channels.slack.allowFrom` є канонічним allowlist для DM.
- `pairing` (за замовчуванням)
- `allowlist`
@@ -513,9 +513,9 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
- Іменовані облікові записи успадковують `channels.slack.allowFrom`, коли їхній власний `allowFrom` не задано.
- Іменовані облікові записи не успадковують `channels.slack.accounts.default.allowFrom`.
- Застарілі `channels.slack.dm.policy` і `channels.slack.dm.allowFrom` досі читаються для сумісності. `openclaw doctor --fix` переносить їх у `dmPolicy` і `allowFrom`, коли це можна зробити без зміни доступу.
+ Застарілі `channels.slack.dm.policy` і `channels.slack.dm.allowFrom` усе ще читаються для сумісності. `openclaw doctor --fix` мігрує їх до `dmPolicy` і `allowFrom`, коли це можливо без зміни доступу.
- Сполучення в DM використовує `openclaw pairing approve slack `.
+ Спарювання в DM використовує `openclaw pairing approve slack `.
@@ -526,20 +526,20 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
- `allowlist`
- `disabled`
- Allowlist каналів міститься в `channels.slack.channels` і **має використовувати стабільні ідентифікатори каналів Slack** (наприклад, `C12345678`) як ключі конфігурації.
+ Allowlist каналів розташований у `channels.slack.channels` і **має використовувати стабільні ID каналів Slack** (наприклад `C12345678`) як ключі конфігурації.
- Примітка щодо середовища виконання: якщо `channels.slack` повністю відсутній (налаштування лише через env), середовище виконання повертається до `groupPolicy="allowlist"` і записує попередження в журнал (навіть якщо `channels.defaults.groupPolicy` задано).
+ Примітка щодо runtime: якщо `channels.slack` повністю відсутній (налаштування лише через env), runtime повертається до `groupPolicy="allowlist"` і записує попередження в журнал (навіть якщо задано `channels.defaults.groupPolicy`).
- Розпізнавання імен/ідентифікаторів:
+ Розпізнавання імен/ID:
- записи allowlist каналів і записи allowlist DM розпізнаються під час запуску, коли доступ токена це дозволяє
- нерозпізнані записи з іменами каналів зберігаються як налаштовані, але за замовчуванням ігноруються для маршрутизації
- - вхідна авторизація та маршрутизація каналів за замовчуванням спершу використовують ID; пряме зіставлення імен користувачів/slug потребує `channels.slack.dangerouslyAllowNameMatching: true`
+ - вхідна авторизація та маршрутизація каналів за замовчуванням спершу використовують ID; прямий збіг за username/slug потребує `channels.slack.dangerouslyAllowNameMatching: true`
- Ключі на основі імен (`#channel-name` або `channel-name`) **не** збігаються під `groupPolicy: "allowlist"`. Пошук каналу за замовчуванням спершу використовує ID, тому ключ на основі імені ніколи не маршрутизуватиметься успішно, а всі повідомлення в цьому каналі буде тихо заблоковано. Це відрізняється від `groupPolicy: "open"`, де ключ каналу не потрібен для маршрутизації, і ключ на основі імені виглядає робочим.
+ Ключі на основі імен (`#channel-name` або `channel-name`) **не** збігаються під `groupPolicy: "allowlist"`. Пошук каналу за замовчуванням спершу використовує ID, тому ключ на основі імені ніколи не маршрутизуватиметься успішно, а всі повідомлення в цьому каналі буде тихо заблоковано. Це відрізняється від `groupPolicy: "open"`, де ключ каналу не потрібен для маршрутизації, і ключ на основі імені здається робочим.
- Завжди використовуйте ідентифікатор каналу Slack як ключ. Щоб знайти його: клацніть канал у Slack правою кнопкою миші → **Copy link** — ID (`C...`) з’явиться в кінці URL.
+ Завжди використовуйте ID каналу Slack як ключ. Щоб знайти його: клацніть канал у Slack правою кнопкою → **Copy link** — ID (`C...`) з’являється в кінці URL.
Правильно:
@@ -574,45 +574,45 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
-
- Повідомлення каналів за замовчуванням пропускаються лише за згадкою.
+
+ Повідомлення каналів за замовчуванням пропускаються через фільтр згадок.
Джерела згадок:
- явна згадка застосунку (`<@botId>`)
- згадка групи користувачів Slack (``), коли користувач бота є учасником цієї групи користувачів; потребує `usergroups:read`
- - regex-патерни згадок (`agents.list[].groupChat.mentionPatterns`, резервно `messages.groupChat.mentionPatterns`)
- - неявна поведінка гілки з відповіддю боту (вимкнено, коли `thread.requireExplicitMention` має значення `true`)
+ - regex-шаблони згадок (`agents.list[].groupChat.mentionPatterns`, резервний варіант `messages.groupChat.mentionPatterns`)
+ - неявна поведінка гілки відповіді боту (вимкнено, коли `thread.requireExplicitMention` має значення `true`)
- Поканальні елементи керування (`channels.slack.channels.`; імена лише через розв’язання під час запуску або `dangerouslyAllowNameMatching`):
+ Керування на рівні каналу (`channels.slack.channels.`; імена лише через розв’язання під час запуску або `dangerouslyAllowNameMatching`):
- `requireMention`
- - `users` (список дозволених)
+ - `users` (allowlist)
- `allowBots`
- `skills`
- `systemPrompt`
- `tools`, `toolsBySender`
- - формат ключа `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або wildcard `"*"`
- (застарілі ключі без префікса й надалі зіставляються лише з `id:`)
+ - формат ключів `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або wildcard `"*"`
+ (застарілі ключі без префікса досі зіставляються лише з `id:`)
- `allowBots` є консервативним для каналів і приватних каналів: повідомлення кімнати, створені ботом, приймаються лише тоді, коли бот-відправник явно вказаний у списку дозволених `users` цієї кімнати, або коли принаймні один явний ідентифікатор власника Slack із `channels.slack.allowFrom` наразі є учасником кімнати. Wildcard і записи власників за відображуваним іменем не підтверджують присутність власника. Присутність власника використовує Slack `conversations.members`; переконайтеся, що застосунок має відповідну область читання для типу кімнати (`channels:read` для публічних каналів, `groups:read` для приватних каналів). Якщо пошук учасників не вдається, OpenClaw відкидає повідомлення кімнати, створене ботом.
+ `allowBots` є консервативним для каналів і приватних каналів: повідомлення кімнати, створені ботом, приймаються лише тоді, коли бот-відправник явно вказаний у allowlist `users` цієї кімнати, або коли принаймні один явний ID власника Slack із `channels.slack.allowFrom` зараз є учасником кімнати. Wildcard і записи власника за відображуваним іменем не задовольняють умову присутності власника. Присутність власника використовує Slack `conversations.members`; переконайтеся, що застосунок має відповідну область читання для типу кімнати (`channels:read` для публічних каналів, `groups:read` для приватних каналів). Якщо пошук учасників не вдається, OpenClaw відкидає повідомлення кімнати, створене ботом.
-## Гілки, сесії та теги відповіді
+## Гілки, сеанси й теги відповіді
- DM маршрутизуються як `direct`; канали як `channel`; MPIM як `group`.
-- За стандартного `session.dmScope=main` DM Slack згортаються до основної сесії агента.
-- Сесії каналів: `agent::slack:channel:`.
-- Відповіді в гілках можуть створювати суфікси сесій гілок (`:thread:`), коли це застосовно.
-- Стандартне значення `channels.slack.thread.historyScope` — `thread`; стандартне значення `thread.inheritParent` — `false`.
-- `channels.slack.thread.initialHistoryLimit` керує тим, скільки наявних повідомлень гілки отримується під час запуску нової сесії гілки (стандартно `20`; задайте `0`, щоб вимкнути).
-- `channels.slack.thread.requireExplicitMention` (стандартно `false`): коли `true`, пригнічує неявні згадки в гілці, щоб бот відповідав лише на явні згадки `@bot` усередині гілок, навіть якщо бот уже брав участь у гілці. Без цього відповіді в гілці, де брав участь бот, обходять пропускання `requireMention`.
+- З типовим `session.dmScope=main` DM Slack згортаються в основний сеанс агента.
+- Сеанси каналів: `agent::slack:channel:`.
+- Відповіді в гілках можуть створювати суфікси сеансів гілок (`:thread:`), коли це застосовно.
+- Типове значення `channels.slack.thread.historyScope` — `thread`; типове значення `thread.inheritParent` — `false`.
+- `channels.slack.thread.initialHistoryLimit` керує тим, скільки наявних повідомлень гілки отримується під час запуску нового сеансу гілки (типово `20`; установіть `0`, щоб вимкнути).
+- `channels.slack.thread.requireExplicitMention` (типово `false`): коли `true`, пригнічує неявні згадки в гілках, щоб бот відповідав лише на явні згадки `@bot` усередині гілок, навіть якщо бот уже брав участь у гілці. Без цього відповіді в гілці, де брав участь бот, обходять фільтр `requireMention`.
-Елементи керування гілками відповідей:
+Керування гілками відповідей:
-- `channels.slack.replyToMode`: `off|first|all|batched` (стандартно `off`)
+- `channels.slack.replyToMode`: `off|first|all|batched` (типово `off`)
- `channels.slack.replyToModeByChatType`: окремо для `direct|group|channel`
- застарілий резервний варіант для прямих чатів: `channels.slack.dm.replyToMode`
@@ -622,19 +622,19 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
- `[[reply_to:]]`
-`replyToMode="off"` вимикає **усі** гілки відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги й надалі враховуються в режимі `"off"`. Гілки Slack приховують повідомлення з каналу, тоді як відповіді Telegram залишаються видимими вбудовано.
+`replyToMode="off"` вимикає **всі** гілки відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все одно враховуються в режимі `"off"`. Гілки Slack приховують повідомлення з каналу, тоді як відповіді Telegram залишаються видимими в рядку.
## Реакції підтвердження
-`ackReaction` надсилає emoji підтвердження, поки OpenClaw обробляє вхідне повідомлення.
+`ackReaction` надсилає емодзі підтвердження, поки OpenClaw обробляє вхідне повідомлення.
Порядок розв’язання:
- `channels.slack.accounts..ackReaction`
- `channels.slack.ackReaction`
- `messages.ackReaction`
-- резервний emoji ідентичності агента (`agents.list[].identity.emoji`, інакше "👀")
+- резервний емодзі ідентичності агента (`agents.list[].identity.emoji`, інакше "👀")
Примітки:
@@ -643,24 +643,24 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
## Потокове передавання тексту
-`channels.slack.streaming` керує поведінкою живого попереднього перегляду:
+`channels.slack.streaming` керує поведінкою live preview:
-- `off`: вимкнути потокове передавання живого попереднього перегляду.
-- `partial` (стандартно): замінювати текст попереднього перегляду найновішим частковим виводом.
-- `block`: додавати фрагментовані оновлення попереднього перегляду.
-- `progress`: показувати текст стану перебігу під час генерування, а потім надсилати фінальний текст.
-- `streaming.preview.toolProgress`: коли чернетковий попередній перегляд активний, маршрутизувати оновлення інструментів/перебігу в те саме редаговане повідомлення попереднього перегляду (стандартно: `true`). Задайте `false`, щоб зберігати окремі повідомлення інструментів/перебігу.
+- `off`: вимкнути потокове передавання live preview.
+- `partial` (типово): замінювати текст preview найновішим частковим виводом.
+- `block`: додавати фрагментовані оновлення preview.
+- `progress`: показувати текст статусу перебігу під час генерації, а потім надіслати фінальний текст.
+- `streaming.preview.toolProgress`: коли draft preview активний, спрямовувати оновлення інструментів/перебігу в те саме редаговане повідомлення preview (типово: `true`). Установіть `false`, щоб зберігати окремі повідомлення інструментів/перебігу.
-`channels.slack.streaming.nativeTransport` керує нативним потоковим передаванням тексту Slack, коли `channels.slack.streaming.mode` має значення `partial` (стандартно: `true`).
+`channels.slack.streaming.nativeTransport` керує нативним потоковим передаванням тексту Slack, коли `channels.slack.streaming.mode` має значення `partial` (типово: `true`).
-- Для появи нативного потокового передавання тексту та стану гілки асистента Slack має бути доступна гілка відповіді. Вибір гілки й надалі дотримується `replyToMode`.
-- Корені каналів і групових чатів усе ще можуть використовувати звичайний чернетковий попередній перегляд, коли нативне потокове передавання недоступне.
-- DM Slack верхнього рівня за замовчуванням залишаються поза гілкою, тому вони не показують попередній перегляд у стилі гілки; використовуйте відповіді в гілках або `typingReaction`, якщо хочете бачити перебіг там.
-- Медіа та нетекстові payload-и повертаються до звичайної доставки.
-- Фінальні медіа/помилки скасовують очікувані редагування попереднього перегляду; придатні текстові/блокові фінальні повідомлення скидаються лише тоді, коли можуть редагувати попередній перегляд на місці.
-- Якщо потокове передавання зазнає збою посеред відповіді, OpenClaw повертається до звичайної доставки для решти payload-ів.
+- Для появи нативного потокового передавання тексту й статусу гілки помічника Slack має бути доступна гілка відповіді. Вибір гілки все одно відповідає `replyToMode`.
+- Корені каналів і групових чатів усе ще можуть використовувати звичайний draft preview, коли нативне потокове передавання недоступне.
+- DM Slack верхнього рівня за замовчуванням залишаються поза гілкою, тому вони не показують preview у стилі гілки; використовуйте відповіді в гілках або `typingReaction`, якщо хочете мати там видимий перебіг.
+- Медіа й нетекстові payloads повертаються до звичайної доставки.
+- Фінальні медіа/помилки скасовують очікувані редагування preview; придатні фінальні текстові/блокові результати скидаються лише тоді, коли можуть редагувати preview на місці.
+- Якщо потокове передавання завершується помилкою посеред відповіді, OpenClaw повертається до звичайної доставки для решти payloads.
-Використовуйте чернетковий попередній перегляд замість нативного потокового передавання тексту Slack:
+Використовуйте draft preview замість нативного потокового передавання тексту Slack:
```json5
{
@@ -678,12 +678,12 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
Застарілі ключі:
- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрується до `channels.slack.streaming.mode`.
-- булевий `channels.slack.streaming` автоматично мігрується до `channels.slack.streaming.mode` і `channels.slack.streaming.nativeTransport`.
+- boolean `channels.slack.streaming` автоматично мігрується до `channels.slack.streaming.mode` і `channels.slack.streaming.nativeTransport`.
- застарілий `channels.slack.nativeStreaming` автоматично мігрується до `channels.slack.streaming.nativeTransport`.
-## Резервна реакція набору
+## Резервна реакція набору тексту
-`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її, коли виконання завершується. Це найкорисніше поза відповідями в гілках, які використовують стандартний індикатор стану "is typing...".
+`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення запуску. Це найкорисніше поза відповідями в гілках, які використовують типовий індикатор статусу "is typing...".
Порядок розв’язання:
@@ -693,25 +693,25 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
Примітки:
- Slack очікує короткі коди (наприклад, `"hourglass_flowing_sand"`).
-- Реакція виконується за принципом best-effort, а очищення автоматично виконується після завершення відповіді або шляху збою.
+- Реакція виконується за принципом best-effort, а очищення автоматично пробується після завершення відповіді або шляху помилки.
-## Медіа, фрагментація та доставка
+## Медіа, фрагментація й доставка
-
- Вкладені файли Slack завантажуються з приватних URL, розміщених у Slack (потік запиту з автентифікацією токеном), і записуються до сховища медіа, коли отримання успішне та обмеження розміру це дозволяють. Заповнювачі файлів містять Slack `fileId`, щоб агенти могли отримати оригінальний файл за допомогою `download-file`.
+
+ Файлові вкладення Slack завантажуються з приватних URL, розміщених Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, коли отримання успішне й обмеження розміру це дозволяють. Заповнювачі файлів містять Slack `fileId`, щоб агенти могли отримати оригінальний файл за допомогою `download-file`.
- Завантаження використовують обмежені таймаути простою та загального часу. Якщо отримання файлу Slack зависає або завершується помилкою, OpenClaw продовжує обробляти повідомлення й повертається до заповнювача файлу.
+ Завантаження використовують обмежені тайм-аути простою й загального часу. Якщо отримання файлу Slack зависає або завершується помилкою, OpenClaw продовжує обробляти повідомлення й повертається до заповнювача файлу.
- Обмеження розміру вхідних даних під час виконання за замовчуванням становить `20MB`, якщо його не перевизначено через `channels.slack.mediaMaxMb`.
+ Обмеження вхідного розміру під час виконання за замовчуванням становить `20MB`, якщо його не перевизначено через `channels.slack.mediaMaxMb`.
- текстові фрагменти використовують `channels.slack.textChunkLimit` (за замовчуванням 4000)
- - `channels.slack.chunkMode="newline"` вмикає розбиття з пріоритетом абзаців
- - надсилання файлів використовує API завантаження Slack і може включати відповіді в тредах (`thread_ts`)
- - обмеження вихідних медіа відповідає `channels.slack.mediaMaxMb`, коли налаштовано; інакше надсилання в канал використовує типові значення за MIME-типом із медіаконвеєра
+ - `channels.slack.chunkMode="newline"` вмикає поділ із пріоритетом абзаців
+ - надсилання файлів використовує API завантаження Slack і може містити відповіді в тредах (`thread_ts`)
+ - обмеження вихідних медіа використовує `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канал використовує типові значення за MIME-типом із медіаконвеєра
@@ -721,14 +721,14 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
- `user:` для DM
- `channel:` для каналів
- DM Slack відкриваються через API розмов Slack під час надсилання до цілей користувача.
+ Текстові або лише блочні Slack DM можуть публікуватися напряму в ідентифікатори користувачів; завантаження файлів і надсилання в тредах спочатку відкривають DM через API розмов Slack, тому що ці шляхи потребують конкретного ідентифікатора розмови.
## Команди та поведінка slash
-Slash-команди з’являються у Slack як одна налаштована команда або кілька нативних команд. Налаштуйте `channels.slack.slashCommand`, щоб змінити типові значення команд:
+Slash-команди відображаються у Slack як одна налаштована команда або кілька нативних команд. Налаштуйте `channels.slack.slashCommand`, щоб змінити типові значення команд:
- `enabled: false`
- `name: "openclaw"`
@@ -747,12 +747,12 @@ Slash-команди з’являються у Slack як одна налашт
/help
```
-Меню нативних аргументів використовують адаптивну стратегію відтворення, яка показує модальне вікно підтвердження перед передаванням вибраного значення опції:
+Меню аргументів нативних команд використовують адаптивну стратегію рендерингу, яка показує модальне вікно підтвердження перед надсиланням вибраного значення параметра:
-- до 5 опцій: блоки кнопок
-- 6–100 опцій: статичне меню вибору
-- понад 100 опцій: зовнішній вибір з асинхронною фільтрацією опцій, коли доступні обробники параметрів інтерактивності
-- перевищені ліміти Slack: закодовані значення опцій повертаються до кнопок
+- до 5 варіантів: блоки кнопок
+- 6-100 варіантів: статичне меню вибору
+- понад 100 варіантів: зовнішній вибір з асинхронним фільтруванням варіантів, коли доступні обробники параметрів інтерактивності
+- перевищені ліміти Slack: закодовані значення параметрів повертаються до кнопок
```txt
/think
@@ -762,7 +762,7 @@ Slash-сеанси використовують ізольовані ключі
## Інтерактивні відповіді
-Slack може відтворювати створені агентом елементи керування інтерактивною відповіддю, але ця функція за замовчуванням вимкнена.
+Slack може рендерити створені агентом інтерактивні елементи керування відповідями, але ця функція за замовчуванням вимкнена.
Увімкніть її глобально:
@@ -796,7 +796,7 @@ Slack може відтворювати створені агентом елем
}
```
-Коли ввімкнено, агенти можуть виводити директиви відповідей лише для Slack:
+Коли ввімкнено, агенти можуть надсилати директиви відповідей лише для Slack:
- `[[slack_buttons: Approve:approve, Reject:reject]]`
- `[[slack_select: Choose a target | Canary:canary, Production:production]]`
@@ -805,35 +805,35 @@ Slack може відтворювати створені агентом елем
Примітки:
-- Це інтерфейс, специфічний для Slack. Інші канали не перетворюють директиви Slack Block Kit на власні системи кнопок.
-- Значення інтерактивних callback — це згенеровані OpenClaw непрозорі токени, а не сирі значення, створені агентом.
-- Якщо згенеровані інтерактивні блоки перевищили б ліміти Slack Block Kit, OpenClaw повертається до початкової текстової відповіді замість надсилання недійсного payload блоків.
+- Це UI, специфічний для Slack. Інші канали не перетворюють директиви Slack Block Kit на власні системи кнопок.
+- Значення інтерактивних callback є непрозорими токенами, згенерованими OpenClaw, а не сирими значеннями, створеними агентом.
+- Якщо згенеровані інтерактивні блоки перевищили б ліміти Slack Block Kit, OpenClaw натомість повертається до початкової текстової відповіді, щоб не надсилати недійсне payload блоків.
-## Підтвердження виконання у Slack
+## Exec-схвалення у Slack
-Slack може працювати як нативний клієнт підтверджень з інтерактивними кнопками та взаємодіями, замість повернення до Web UI або термінала.
+Slack може працювати як нативний клієнт схвалень з інтерактивними кнопками та взаємодіями, замість повернення до Web UI або термінала.
-- Підтвердження виконання використовують `channels.slack.execApprovals.*` для нативної маршрутизації DM/каналів.
-- Підтвердження Plugin усе ще можуть вирішуватися через ту саму нативну для Slack поверхню кнопок, коли запит уже надходить у Slack, а вид ідентифікатора підтвердження — `plugin:`.
-- Авторизація користувачів, які підтверджують, усе ще застосовується: лише користувачі, визначені як ті, хто може підтверджувати, можуть схвалювати або відхиляти запити через Slack.
+- Exec-схвалення використовують `channels.slack.execApprovals.*` для нативної маршрутизації DM/каналів.
+- Схвалення Plugin усе ще можуть вирішуватися через ту саму нативну поверхню кнопок Slack, коли запит уже надходить у Slack і тип ідентифікатора схвалення є `plugin:`.
+- Авторизація схвалювача все ще застосовується: лише користувачі, ідентифіковані як схвалювачі, можуть схвалювати або відхиляти запити через Slack.
-Це використовує ту саму спільну поверхню кнопок підтвердження, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити підтвердження відтворюються як кнопки Block Kit безпосередньо в розмові.
-Коли ці кнопки присутні, вони є основним UX підтвердження; OpenClaw
-має включати ручну команду `/approve` лише тоді, коли результат інструмента повідомляє, що підтвердження в чаті
-недоступні або ручне підтвердження є єдиним шляхом.
+Це використовує ту саму спільну поверхню кнопок схвалення, що й інші канали. Коли `interactivity` увімкнено в налаштуваннях вашого застосунку Slack, запити схвалення рендеряться як кнопки Block Kit безпосередньо в розмові.
+Коли ці кнопки присутні, вони є основним UX схвалення; OpenClaw
+має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що схвалення
+через чат недоступні або ручне схвалення є єдиним шляхом.
Шлях конфігурації:
- `channels.slack.execApprovals.enabled`
-- `channels.slack.execApprovals.approvers` (необов’язково; повертається до `commands.ownerAllowFrom`, коли можливо)
+- `channels.slack.execApprovals.approvers` (необов’язково; за можливості повертається до `commands.ownerAllowFrom`)
- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, за замовчуванням: `dm`)
- `agentFilter`, `sessionFilter`
-Slack автоматично вмикає нативні підтвердження виконання, коли `enabled` не задано або має значення `"auto"` і
-визначається принаймні один користувач для підтвердження. Задайте `enabled: false`, щоб явно вимкнути Slack як нативний клієнт підтверджень.
-Задайте `enabled: true`, щоб примусово ввімкнути нативні підтвердження, коли визначаються користувачі для підтвердження.
+Slack автоматично вмикає нативні Exec-схвалення, коли `enabled` не задано або має значення `"auto"` і визначено принаймні одного
+схвалювача. Установіть `enabled: false`, щоб явно вимкнути Slack як нативний клієнт схвалень.
+Установіть `enabled: true`, щоб примусово ввімкнути нативні схвалення, коли схвалювачів визначено.
-Типова поведінка без явної конфігурації підтверджень виконання Slack:
+Типова поведінка без явної конфігурації Exec-схвалень Slack:
```json5
{
@@ -843,8 +843,8 @@ Slack автоматично вмикає нативні підтверджен
}
```
-Явна нативна конфігурація Slack потрібна лише тоді, коли потрібно перевизначити користувачів для підтвердження, додати фільтри або
-увімкнути доставку в чат походження:
+Явна нативна конфігурація Slack потрібна лише тоді, коли ви хочете перевизначити схвалювачів, додати фільтри або
+увімкнути доставку в початковий чат:
```json5
{
@@ -860,39 +860,39 @@ Slack автоматично вмикає нативні підтверджен
}
```
-Спільне переспрямування `approvals.exec` є окремим. Використовуйте його лише тоді, коли запити підтвердження виконання також мають
-спрямовуватися до інших чатів або явних позасмугових цілей. Спільне переспрямування `approvals.plugin` також
-окреме; нативні кнопки Slack усе ще можуть вирішувати підтвердження Plugin, коли ці запити вже надходять
+Спільне переспрямування `approvals.exec` є окремим. Використовуйте його лише тоді, коли запити Exec-схвалення також мають
+маршрутизуватися до інших чатів або явних позасмугових цілей. Спільне переспрямування `approvals.plugin` також
+окреме; нативні кнопки Slack усе ще можуть вирішувати схвалення Plugin, коли ці запити вже надходять
у Slack.
-`/approve` у тому самому чаті також працює в каналах Slack і DM, які вже підтримують команди. Див. [Підтвердження виконання](/uk/tools/exec-approvals), щоб переглянути повну модель переспрямування підтверджень.
+`/approve` у тому самому чаті також працює в каналах Slack і DM, які вже підтримують команди. Див. [Exec-схвалення](/uk/tools/exec-approvals) для повної моделі переспрямування схвалень.
## Події та операційна поведінка
- Редагування/видалення повідомлень зіставляються із системними подіями.
-- Трансляції тредів (відповіді в треді з параметром «Також надіслати в канал») обробляються як звичайні повідомлення користувача.
+- Трансляції тредів (відповіді в тредах "Also send to channel") обробляються як звичайні повідомлення користувача.
- Події додавання/видалення реакцій зіставляються із системними подіями.
- Події приєднання/виходу учасника, створення/перейменування каналу та додавання/видалення закріплення зіставляються із системними подіями.
-- `channel_id_changed` може мігрувати ключі конфігурації каналу, коли ввімкнено `configWrites`.
-- Метадані теми/призначення каналу розглядаються як ненадійний контекст і можуть бути вставлені в контекст маршрутизації.
-- Початкове повідомлення треду та початкове заповнення контексту історії треду фільтруються налаштованими списками дозволених відправників, коли застосовно.
-- Дії блоків і модальні взаємодії виводять структуровані системні події `Slack interaction: ...` з насиченими полями payload:
+- `channel_id_changed` може мігрувати ключі конфігурації каналів, коли ввімкнено `configWrites`.
+- Метадані теми/призначення каналу вважаються ненадійним контекстом і можуть бути впроваджені в контекст маршрутизації.
+- Початкове повідомлення треду та початкове наповнення контексту історії треду фільтруються за налаштованими allowlist відправників, коли це застосовно.
+- Дії блоків і модальні взаємодії генерують структуровані системні події `Slack interaction: ...` із насиченими полями payload:
- дії блоків: вибрані значення, мітки, значення picker і метадані `workflow_*`
- - події модальних `view_submission` і `view_closed` з маршрутизованими метаданими каналу та введенням форми
+ - події modal `view_submission` і `view_closed` з маршрутизованими метаданими каналу та введеннями форми
## Довідник конфігурації
-Основний довідник: [Довідник конфігурації — Slack](/uk/gateway/config-channels#slack).
+Основний довідник: [Довідник конфігурації - Slack](/uk/gateway/config-channels#slack).
- режим/автентифікація: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
-- доступ до DM: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
-- перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний; тримайте вимкненим, якщо не потрібно)
+- доступ до DM: `dm.enabled`, `dmPolicy`, `allowFrom` (застарілі: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
+- перемикач сумісності: `dangerouslyAllowNameMatching` (break-glass; тримайте вимкненим, якщо не потрібно)
- доступ до каналів: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- треди/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- доставка: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `streaming.nativeTransport`, `streaming.preview.toolProgress`
-- операції/функції: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
+- ops/функції: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
@@ -900,12 +900,12 @@ Slack автоматично вмикає нативні підтверджен
- Перевірте по черзі:
+ Перевірте по порядку:
- `groupPolicy`
- - список дозволених каналів (`channels.slack.channels`) — **ключі мають бути ідентифікаторами каналів** (`C12345678`), а не назвами (`#channel-name`). Ключі на основі назв непомітно не спрацьовують із `groupPolicy: "allowlist"`, оскільки маршрутизація каналів за замовчуванням насамперед використовує ідентифікатори. Щоб знайти ідентифікатор: клацніть правою кнопкою канал у Slack → **Copy link** — значення `C...` наприкінці URL є ідентифікатором каналу.
+ - allowlist каналів (`channels.slack.channels`) — **ключі мають бути ідентифікаторами каналів** (`C12345678`), а не назвами (`#channel-name`). Ключі на основі назв непомітно не спрацьовують із `groupPolicy: "allowlist"`, тому що маршрутизація каналів за замовчуванням насамперед використовує ID. Щоб знайти ID: клацніть канал у Slack правою кнопкою → **Copy link** — значення `C...` наприкінці URL є ідентифікатором каналу.
- `requireMention`
- - поканальний список дозволених `users`
+ - allowlist `users` для окремого каналу
Корисні команди:
@@ -917,13 +917,13 @@ openclaw doctor
-
+
Перевірте:
- `channels.slack.dm.enabled`
- - `channels.slack.dmPolicy` (або застаріле `channels.slack.dm.policy`)
- - підтвердження pairing / записи списку дозволених
- - Події DM Slack Assistant: докладні журнали зі згадкою `drop message_changed`
+ - `channels.slack.dmPolicy` (або застарілий `channels.slack.dm.policy`)
+ - схвалення спарювання / записи allowlist
+ - події Slack Assistant DM: докладні журнали зі згадкою `drop message_changed`
зазвичай означають, що Slack надіслав відредаговану подію треду Assistant без
відновлюваного людського відправника в метаданих повідомлення
@@ -933,71 +933,72 @@ openclaw pairing list slack
-
+
Перевірте токени bot + app і ввімкнення Socket Mode у налаштуваннях застосунку Slack.
Якщо `openclaw channels status --probe --json` показує `botTokenStatus` або
`appTokenStatus: "configured_unavailable"`, обліковий запис Slack
- налаштований, але поточне середовище виконання не змогло визначити значення на основі SecretRef.
+ налаштовано, але поточне середовище виконання не змогло визначити значення,
+ що підтримується SecretRef.
-
+
Перевірте:
- - signing secret
- - шлях Webhook
+ - секрет підписування
+ - шлях webhook
- URL запитів Slack (Events + Interactivity + Slash Commands)
- унікальний `webhookPath` для кожного HTTP-облікового запису
- Якщо `signingSecretStatus: "configured_unavailable"` з’являється у знімках облікового запису,
- HTTP-обліковий запис налаштований, але поточне середовище виконання не змогло
- визначити signing secret на основі SecretRef.
+ Якщо `signingSecretStatus: "configured_unavailable"` з’являється у знімках
+ облікового запису, HTTP-обліковий запис налаштовано, але поточне середовище виконання не змогло
+ визначити секрет підписування, що підтримується SecretRef.
Перевірте, що саме ви мали на увазі:
- - режим нативних команд (`channels.slack.commands.native: true`) із відповідними slash-командами, зареєстрованими у Slack
+ - режим нативних команд (`channels.slack.commands.native: true`) з відповідними slash-командами, зареєстрованими у Slack
- або режим однієї slash-команди (`channels.slack.slashCommand.enabled: true`)
- Також перевірте `commands.useAccessGroups` і списки дозволених каналів/користувачів.
+ Також перевірте `commands.useAccessGroups` і allowlist каналів/користувачів.
## Довідник vision для вкладень
-Slack може прикріплювати завантажені медіа до кроку агента, коли завантаження файлів Slack успішне й обмеження розміру дозволяють. Файли зображень можуть проходити через шлях розуміння медіа або безпосередньо до моделі відповіді з підтримкою vision; інші файли зберігаються як контекст файлів для завантаження, а не обробляються як вхідні зображення.
+Slack може додавати завантажені медіа до ходу агента, коли завантаження файлів Slack успішні й обмеження розміру це дозволяють. Файли зображень можуть передаватися через шлях розуміння медіа або безпосередньо до моделі відповіді з підтримкою vision; інші файли зберігаються як контекст файлів для завантаження, а не розглядаються як вхідні зображення.
### Підтримувані типи медіа
-| Тип медіа | Джерело | Поточна поведінка | Примітки |
-| ------------------------------ | -------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
-| Зображення JPEG / PNG / GIF / WebP | URL файлу Slack | Завантажуються й додаються до ходу для обробки з підтримкою зору | Ліміт на файл: `channels.slack.mediaMaxMb` (типово 20 MB) |
-| Файли PDF | URL файлу Slack | Завантажуються й надаються як файловий контекст для інструментів, як-от `download-file` або `pdf` | Вхідні повідомлення Slack не перетворюють PDF автоматично на вхідні дані для зорової обробки |
-| Інші файли | URL файлу Slack | Завантажуються, коли це можливо, і надаються як файловий контекст | Бінарні файли не обробляються як вхідні зображення |
-| Відповіді в треді | Файли початкового повідомлення треду | Файли кореневого повідомлення можуть бути завантажені як контекст, коли відповідь не має власних медіа | Початкові повідомлення лише з файлами використовують заповнювач вкладення |
-| Повідомлення з кількома зображеннями | Кілька файлів Slack | Кожен файл оцінюється незалежно | Обробка Slack обмежена вісьмома файлами на повідомлення |
+| Тип медіа | Джерело | Поточна поведінка | Примітки |
+| ------------------------------ | -------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
+| Зображення JPEG / PNG / GIF / WebP | URL файлу Slack | Завантажуються й додаються до ходу для обробки з підтримкою зорових можливостей | Ліміт на файл: `channels.slack.mediaMaxMb` (типово 20 MB) |
+| Файли PDF | URL файлу Slack | Завантажуються й надаються як файловий контекст для інструментів, як-от `download-file` або `pdf` | Вхідні повідомлення Slack не перетворюють PDF на вхідні дані image-vision автоматично |
+| Інші файли | URL файлу Slack | Завантажуються, коли це можливо, і надаються як файловий контекст | Двійкові файли не розглядаються як вхідні зображення |
+| Відповіді в гілках | Файли початкового повідомлення гілки | Файли кореневого повідомлення можуть бути підвантажені як контекст, коли відповідь не має власних медіа | Початкові повідомлення лише з файлами використовують заповнювач вкладення |
+| Повідомлення з кількома зображеннями | Кілька файлів Slack | Кожен файл оцінюється незалежно | Обробка Slack обмежена вісьмома файлами на повідомлення |
### Вхідний конвеєр
Коли надходить повідомлення Slack із файловими вкладеннями:
-1. OpenClaw завантажує файл із приватної URL-адреси Slack за допомогою токена бота (`xoxb-...`).
+1. OpenClaw завантажує файл із приватного URL Slack за допомогою токена бота (`xoxb-...`).
2. У разі успіху файл записується до сховища медіа.
-3. Шляхи завантажених медіа й типи вмісту додаються до вхідного контексту.
-4. Шляхи моделі/інструменту з підтримкою зображень можуть використовувати вкладення зображень із цього контексту.
-5. Файли, що не є зображеннями, залишаються доступними як файлові метадані або посилання на медіа для інструментів, які можуть їх обробляти.
+3. Шляхи завантажених медіа та типи вмісту додаються до вхідного контексту.
+4. Шляхи моделі/інструмента з підтримкою зображень можуть використовувати вкладення зображень із цього контексту.
+5. Файли, що не є зображеннями, залишаються доступними як файлові метадані або медіапосилання для інструментів, які можуть їх обробляти.
-### Успадкування вкладень кореня треду
+### Успадкування вкладень кореня гілки
-Коли повідомлення надходить у треді (має батьківський `thread_ts`):
+Коли повідомлення надходить у гілці (має батьківський `thread_ts`):
-- Якщо сама відповідь не має власних медіа, а включене кореневе повідомлення має файли, Slack може завантажити кореневі файли як контекст початкового повідомлення треду.
-- Власні вкладення відповіді мають пріоритет над вкладеннями кореневого повідомлення.
-- Кореневе повідомлення, яке має лише файли й не має тексту, представляється заповнювачем вкладення, щоб резервний варіант усе одно міг включити його файли.
+- Якщо сама відповідь не має прямих медіа, а включене кореневе повідомлення має файли, Slack може підвантажити кореневі файли як контекст початку гілки.
+- Прямі вкладення відповіді мають пріоритет над вкладеннями кореневого повідомлення.
+- Кореневе повідомлення, яке має лише файли й не має тексту, представляється заповнювачем вкладення, щоб резервний шлях усе одно міг включити його файли.
### Обробка кількох вкладень
@@ -1008,49 +1009,49 @@ Slack може прикріплювати завантажені медіа до
- Порядок обробки відповідає порядку файлів Slack у корисному навантаженні події.
- Помилка завантаження одного вкладення не блокує інші.
-### Обмеження розміру, завантаження та моделей
+### Обмеження розміру, завантаження та моделі
-- **Ліміт розміру**: Типово 20 MB на файл. Налаштовується через `channels.slack.mediaMaxMb`.
-- **Помилки завантаження**: Файли, які Slack не може надати, прострочені URL-адреси, недоступні файли, завеликі файли та HTML-відповіді автентифікації/входу Slack пропускаються, а не повідомляються як непідтримувані формати.
-- **Зорова модель**: Аналіз зображень використовує активну модель відповіді, коли вона підтримує зір, або модель зображень, налаштовану в `agents.defaults.imageModel`.
+- **Ліміт розміру**: типово 20 MB на файл. Налаштовується через `channels.slack.mediaMaxMb`.
+- **Помилки завантаження**: файли, які Slack не може надати, прострочені URL, недоступні файли, завеликі файли та HTML-відповіді автентифікації/входу Slack пропускаються замість того, щоб повідомлятися як непідтримувані формати.
+- **Модель зорового аналізу**: аналіз зображень використовує активну модель відповіді, коли вона підтримує зоровий аналіз, або модель зображень, налаштовану в `agents.defaults.imageModel`.
### Відомі обмеження
-| Сценарій | Поточна поведінка | Обхідний шлях |
-| -------------------------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| Прострочена URL-адреса файлу Slack | Файл пропускається; помилка не показується | Повторно завантажте файл у Slack |
-| Зорова модель не налаштована | Вкладення зображень зберігаються як посилання на медіа, але не аналізуються як зображення | Налаштуйте `agents.defaults.imageModel` або використовуйте модель відповіді з підтримкою зору |
-| Дуже великі зображення (> 20 MB типово) | Пропускаються відповідно до ліміту розміру | Збільште `channels.slack.mediaMaxMb`, якщо Slack дозволяє |
-| Переслані/спільні вкладення | Текст і розміщені в Slack медіа зображень/файлів обробляються за принципом найкращих зусиль | Поділіться ними повторно безпосередньо в треді OpenClaw |
-| Вкладення PDF | Зберігаються як файловий/медійний контекст, не спрямовуються автоматично через зорову обробку зображень | Використовуйте `download-file` для файлових метаданих або інструмент `pdf` для аналізу PDF |
+| Сценарій | Поточна поведінка | Обхідний шлях |
+| ------------------------------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
+| Прострочений URL файлу Slack | Файл пропускається; помилка не показується | Повторно завантажте файл у Slack |
+| Модель зорового аналізу не налаштована | Вкладення зображень зберігаються як медіапосилання, але не аналізуються як зображення | Налаштуйте `agents.defaults.imageModel` або використайте модель відповіді з підтримкою зорового аналізу |
+| Дуже великі зображення (> 20 MB типово) | Пропускаються відповідно до ліміту розміру | Збільште `channels.slack.mediaMaxMb`, якщо Slack дозволяє |
+| Переслані/поширені вкладення | Текст і розміщені в Slack медіа зображень/файлів обробляються за принципом best-effort | Поділіться ними напряму в гілці OpenClaw |
+| PDF-вкладення | Зберігаються як файловий/медіаконтекст, але автоматично не спрямовуються через зоровий аналіз зображень | Використовуйте `download-file` для файлових метаданих або інструмент `pdf` для аналізу PDF |
### Пов’язана документація
- [Конвеєр розуміння медіа](/uk/nodes/media-understanding)
- [Інструмент PDF](/uk/tools/pdf)
-- Епік: [#51349](https://github.com/openclaw/openclaw/issues/51349) — увімкнення зорової обробки вкладень Slack
+- Епік: [#51349](https://github.com/openclaw/openclaw/issues/51349) — увімкнення зорового аналізу вкладень Slack
- Регресійні тести: [#51353](https://github.com/openclaw/openclaw/issues/51353)
- Жива перевірка: [#51354](https://github.com/openclaw/openclaw/issues/51354)
## Пов’язане
-
- Сполучіть користувача Slack із Gateway.
+
+ Зв’яжіть користувача Slack із Gateway.
-
- Поведінка каналів і групових DM.
+
+ Поведінка каналу та групових DM.
-
+
Спрямовуйте вхідні повідомлення до агентів.
-
+
Модель загроз і посилення захисту.
-
+
Структура конфігурації та пріоритетність.
-
+
Каталог команд і поведінка.
diff --git a/docs/uk/gateway/diagnostics.md b/docs/uk/gateway/diagnostics.md
index 19f5a863f..11159ec0f 100644
--- a/docs/uk/gateway/diagnostics.md
+++ b/docs/uk/gateway/diagnostics.md
@@ -1,26 +1,26 @@
---
read_when:
- - Підготовка звіту про помилку або запиту до служби підтримки
- - Налагодження збоїв Gateway, перезапусків, нестачі пам’яті або завеликих корисних навантажень
+ - Підготовка звіту про помилку або запиту на підтримку
+ - Налагодження аварійних завершень Gateway, перезапусків, тиску на пам’ять або надмірно великих корисних навантажень
- Перегляд того, які діагностичні дані записуються або приховуються
-summary: Створення придатних для поширення діагностичних пакетів Gateway для звітів про помилки
-title: Експорт діагностичних даних
+summary: Створюйте поширювані діагностичні пакети Gateway для звітів про помилки
+title: Експорт діагностики
x-i18n:
- generated_at: "2026-04-28T22:44:31Z"
+ generated_at: "2026-05-02T04:01:30Z"
model: gpt-5.5
provider: openai
- source_hash: e66f1391da77e531b5d3b0ed19600da222d80960d1b6e54d51925c04b06dae46
+ source_hash: 4d1f7c1e1d96aeeebe30b30c8a23ec3c7b0fb4938f15a3783bf22e861770bf78
source_path: gateway/diagnostics.md
workflow: 16
---
-OpenClaw може створити локальний zip-архів діагностики для звітів про помилки. Він об’єднує
-очищені статус Gateway, стан працездатності, журнали, форму конфігурації та нещодавні події
-стабільності без payload.
+OpenClaw може створити локальний zip-файл діагностики для звітів про помилки. Він об’єднує
+очищені стан Gateway, працездатність, журнали, форму конфігурації та нещодавні
+події стабільності без вмісту payload.
Ставтеся до діагностичних пакетів як до секретів, доки не переглянете їх. Вони
-спроєктовані так, щоб пропускати або редагувати payload і облікові дані, але все одно узагальнюють
-локальні журнали Gateway та стан середовища виконання на рівні хоста.
+спроєктовані так, щоб пропускати або редагувати payload і облікові дані, але все одно підсумовують
+локальні журнали Gateway і стан runtime на рівні хоста.
## Швидкий старт
@@ -28,7 +28,7 @@ OpenClaw може створити локальний zip-архів діагн
openclaw gateway diagnostics export
```
-Команда виводить шлях до записаного zip-архіву. Щоб вибрати шлях:
+Команда друкує шлях до записаного zip-файлу. Щоб вибрати шлях:
```bash
openclaw gateway diagnostics export --output openclaw-diagnostics.zip
@@ -43,58 +43,58 @@ openclaw gateway diagnostics export --json
## Команда чату
Власники можуть використовувати `/diagnostics [note]` у чаті, щоб запросити локальний експорт Gateway.
-Використовуйте це, коли помилка сталася в реальній розмові й вам потрібен один
+Використовуйте це, коли помилка сталася в реальній розмові і вам потрібен один
звіт для підтримки, який можна скопіювати й вставити:
1. Надішліть `/diagnostics` у розмові, де ви помітили проблему. Додайте
- коротку примітку, якщо це допоможе, наприклад `/diagnostics bad tool choice`.
-2. OpenClaw надсилає вступ до діагностики та просить одне явне підтвердження exec.
- Підтвердження запускає `openclaw gateway diagnostics export --json`.
- Не підтверджуйте діагностику через правило allow-all.
-3. Після підтвердження OpenClaw відповідає звітом для вставлення, який містить локальний
- шлях до пакета, зведення маніфесту, примітки щодо приватності та відповідні ідентифікатори сесій.
+ коротку нотатку, якщо це допоможе, наприклад `/diagnostics bad tool choice`.
+2. OpenClaw надсилає вступ до діагностики та просить одне явне схвалення exec.
+ Схвалення запускає `openclaw gateway diagnostics export --json`.
+ Не схвалюйте діагностику через правило allow-all.
+3. Після схвалення OpenClaw відповідає звітом для вставлення, що містить локальний
+ шлях пакета, підсумок маніфесту, примітки щодо приватності та відповідні ідентифікатори сесій.
У групових чатах власник усе ще може запустити `/diagnostics`, але OpenClaw не
-публікує діагностичні деталі назад у спільний чат. Він надсилає вступ,
-запити підтвердження, результат експорту Gateway та розбивку сесії/потоку Codex
-власнику через приватний маршрут підтвердження. Група отримує лише коротке повідомлення
-про те, що діагностичний процес було надіслано приватно. Якщо OpenClaw не може знайти приватний
-маршрут до власника, команда закривається без виконання й просить власника запустити її з DM.
+публікує діагностичні подробиці назад у спільний чат. Він надсилає вступ,
+запити схвалення, результат експорту Gateway і розбір сесії/треду Codex
+власнику через приватний маршрут схвалення. Група отримує лише коротке повідомлення
+про те, що діагностичний потік було надіслано приватно. Якщо OpenClaw не може знайти приватний
+маршрут до власника, команда завершується безпечною відмовою і просить власника запустити її з DM.
Коли активна сесія OpenClaw використовує нативний harness OpenAI Codex,
-те саме підтвердження exec також охоплює завантаження відгуку OpenAI для потоків
-середовища виконання Codex, про які знає OpenClaw. Це завантаження відокремлене від локального
-zip-архіву Gateway і з’являється лише для сесій harness Codex. Перед підтвердженням
-запит пояснює, що підтвердження діагностики також надішле відгук Codex, але
-не перелічує ідентифікатори сесій або потоків Codex. Після підтвердження відповідь у чаті перелічує
-канали, ідентифікатори сесій OpenClaw, ідентифікатори потоків Codex і локальні команди відновлення
-для потоків, надісланих на сервери OpenAI. Якщо ви відхилите або проігноруєте
-підтвердження, OpenClaw не запускає експорт, не надсилає відгук Codex і
+те саме схвалення exec також покриває завантаження відгуку OpenAI для тредів runtime
+Codex, про які знає OpenClaw. Це завантаження окреме від локального zip-файлу
+Gateway і з’являється лише для сесій harness Codex. Перед схваленням
+запит пояснює, що схвалення діагностики також надішле відгук Codex, але він
+не перелічує ідентифікатори сесій або тредів Codex. Після схвалення відповідь у чаті перелічує
+канали, ідентифікатори сесій OpenClaw, ідентифікатори тредів Codex і локальні команди resume
+для тредів, надісланих на сервери OpenAI. Якщо ви відхилите або проігноруєте
+схвалення, OpenClaw не запускає експорт, не надсилає відгук Codex і
не друкує ідентифікатори Codex.
-Це робить типовий цикл налагодження Codex коротким: помітьте неправильну поведінку в
-Telegram, Discord або іншому каналі, запустіть `/diagnostics`, підтвердьте один раз, поділіться
-звітом із підтримкою, а потім запустіть надруковану команду `codex resume `
-локально, якщо хочете самостійно переглянути нативний потік Codex. Див.
-[harness Codex](/uk/plugins/codex-harness#inspect-a-codex-thread-from-the-cli) для
-цього процесу перегляду.
+Це робить звичний цикл налагодження Codex коротким: помітили погану поведінку в
+Telegram, Discord або іншому каналі, запустили `/diagnostics`, один раз схвалили, поділилися
+звітом із підтримкою, а потім локально запустили надруковану команду `codex resume `,
+якщо хочете самостійно перевірити нативний тред Codex. Див.
+[Harness Codex](/uk/plugins/codex-harness#inspect-a-codex-thread-from-the-cli) для
+цього робочого процесу перевірки.
## Що містить експорт
-Zip-архів містить:
+Zip-файл містить:
-- `summary.md`: зрозумілий для людини огляд для підтримки.
-- `diagnostics.json`: машинозчитуване зведення конфігурації, журналів, статусу, стану працездатності
+- `summary.md`: зручний для людини огляд для підтримки.
+- `diagnostics.json`: машиночитний підсумок конфігурації, журналів, стану, працездатності
та даних стабільності.
- `manifest.json`: метадані експорту та список файлів.
-- Очищену форму конфігурації та несекретні деталі конфігурації.
-- Очищені зведення журналів і нещодавні відредаговані рядки журналів.
-- Найкращі можливі знімки статусу та стану працездатності Gateway.
-- `stability/latest.json`: найновіший збережений пакет стабільності, якщо доступний.
+- Очищену форму конфігурації та несекретні подробиці конфігурації.
+- Очищені підсумки журналів і нещодавні відредаговані рядки журналів.
+- Best-effort знімки стану та працездатності Gateway.
+- `stability/latest.json`: найновіший збережений пакет стабільності, коли він доступний.
-Експорт корисний навіть тоді, коли Gateway нездоровий. Якщо Gateway не може
-відповісти на запити статусу або стану працездатності, локальні журнали, форма конфігурації та найновіший
-пакет стабільності все одно збираються, коли доступні.
+Експорт корисний навіть тоді, коли Gateway непрацездатний. Якщо Gateway не може
+відповісти на запити стану або працездатності, локальні журнали, форма конфігурації та найновіший
+пакет стабільності все одно збираються, коли вони доступні.
## Модель приватності
@@ -102,32 +102,34 @@ Zip-архів містить:
які допомагають налагодженню, як-от:
- назви підсистем, ідентифікатори plugin, ідентифікатори провайдерів, ідентифікатори каналів і налаштовані режими
-- коди статусу, тривалості, кількість байтів, стан черги та показники пам’яті
+- коди стану, тривалості, кількість байтів, стан черги та показники пам’яті
- очищені метадані журналів і відредаговані операційні повідомлення
- форму конфігурації та несекретні налаштування функцій
Експорт пропускає або редагує:
-- текст чату, промпти, інструкції, тіла Webhook і результати інструментів
+- текст чату, промпти, інструкції, тіла webhook і результати інструментів
- облікові дані, API-ключі, токени, cookies і секретні значення
- сирі тіла запитів або відповідей
- ідентифікатори облікових записів, ідентифікатори повідомлень, сирі ідентифікатори сесій, імена хостів і локальні імена користувачів
Коли повідомлення журналу схоже на текст користувача, чату, промпта або payload інструмента,
-експорт зберігає лише факт пропуску повідомлення та кількість байтів.
+експорт зберігає лише те, що повідомлення було пропущено, і кількість байтів.
## Реєстратор стабільності
-Gateway за замовчуванням записує обмежений потік стабільності без payload, коли
+Gateway типово записує обмежений потік стабільності без payload, коли
діагностику ввімкнено. Він призначений для операційних фактів, а не для вмісту.
-Той самий діагностичний Heartbeat записує попередження про живість, коли Gateway продовжує
-працювати, але цикл подій Node.js або CPU виглядає перевантаженим. Ці
-події `diagnostic.liveness.warning` містять затримку циклу подій, використання циклу подій,
-співвідношення CPU-core, а також кількість активних/очікувальних/поставлених у чергу сесій. Вони
-самі по собі не перезапускають Gateway.
+Той самий діагностичний heartbeat записує зразки життєздатності, коли Gateway продовжує
+працювати, але event loop Node.js або CPU виглядає перевантаженим. Ці
+події `diagnostic.liveness.warning` містять затримку event loop, використання event loop,
+співвідношення CPU-core і кількість активних/очікуваних/поставлених у чергу сесій. Неактивні
+зразки залишаються в телеметрії на рівні `info`; вони логуються як попередження Gateway
+лише коли діагностична робота активна, очікує або стоїть у черзі. Вони самі по собі
+не перезапускають Gateway.
-Перегляньте активний реєстратор:
+Перевірити активний реєстратор:
```bash
openclaw gateway stability
@@ -135,22 +137,22 @@ openclaw gateway stability --type payload.large
openclaw gateway stability --json
```
-Перегляньте найновіший збережений пакет стабільності після фатального завершення, таймауту
-завершення роботи або помилки запуску після перезапуску:
+Перевірити найновіший збережений пакет стабільності після фатального виходу, тайм-ауту завершення роботи
+або помилки запуску після перезапуску:
```bash
openclaw gateway stability --bundle latest
```
-Створіть zip-архів діагностики з найновішого збереженого пакета:
+Створити zip-файл діагностики з найновішого збереженого пакета:
```bash
openclaw gateway stability --bundle latest --export
```
-Збережені пакети розміщуються в `~/.openclaw/logs/stability/`, коли події існують.
+Збережені пакети розташовані в `~/.openclaw/logs/stability/`, коли події існують.
-## Корисні опції
+## Корисні параметри
```bash
openclaw gateway diagnostics export \
@@ -159,20 +161,20 @@ openclaw gateway diagnostics export \
--log-bytes 1000000
```
-- `--output `: записати до конкретного шляху zip-архіву.
+- `--output `: записати до конкретного шляху zip-файлу.
- `--log-lines `: максимальна кількість очищених рядків журналу для включення.
- `--log-bytes `: максимальна кількість байтів журналу для перевірки.
-- `--url `: URL WebSocket Gateway для знімків статусу та стану працездатності.
-- `--token `: токен Gateway для знімків статусу та стану працездатності.
-- `--password `: пароль Gateway для знімків статусу та стану працездатності.
-- `--timeout `: таймаут знімка статусу та стану працездатності.
+- `--url `: URL WebSocket Gateway для знімків стану та працездатності.
+- `--token `: токен Gateway для знімків стану та працездатності.
+- `--password `: пароль Gateway для знімків стану та працездатності.
+- `--timeout `: тайм-аут знімків стану та працездатності.
- `--no-stability-bundle`: пропустити пошук збереженого пакета стабільності.
-- `--json`: надрукувати машинозчитувані метадані експорту.
+- `--json`: надрукувати машиночитні метадані експорту.
## Вимкнення діагностики
-Діагностику ввімкнено за замовчуванням. Щоб вимкнути реєстратор стабільності та
-збір діагностичних подій:
+Діагностику ввімкнено типово. Щоб вимкнути реєстратор стабільності та
+збирання діагностичних подій:
```json5
{
@@ -183,12 +185,12 @@ openclaw gateway diagnostics export \
```
Вимкнення діагностики зменшує деталізацію звіту про помилку. Воно не впливає на звичайне
-журналювання Gateway.
+логування Gateway.
## Пов’язане
-- [Перевірки стану працездатності](/uk/gateway/health)
+- [Перевірки працездатності](/uk/gateway/health)
- [CLI Gateway](/uk/cli/gateway#gateway-diagnostics-export)
- [Протокол Gateway](/uk/gateway/protocol#system-and-identity)
-- [Журналювання](/uk/logging)
-- [Експорт OpenTelemetry](/uk/gateway/opentelemetry) — окремий процес для потокової діагностики до колектора
+- [Логування](/uk/logging)
+- [Експорт OpenTelemetry](/uk/gateway/opentelemetry) — окремий потік для передавання діагностики до колектора