chore(i18n): refresh uk translations
This commit is contained in:
parent
373c655a51
commit
dcbe8d1897
@ -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 також підтримуються.
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Сполучення" icon="link" href="/uk/channels/pairing">
|
||||
Slack DM типово використовують режим сполучення.
|
||||
<Card title="Pairing" icon="link" href="/uk/channels/pairing">
|
||||
DM у Slack за замовчуванням використовують режим створення пари.
|
||||
</Card>
|
||||
<Card title="Slash-команди" icon="terminal" href="/uk/tools/slash-commands">
|
||||
<Card title="Slash commands" icon="terminal" href="/uk/tools/slash-commands">
|
||||
Нативна поведінка команд і каталог команд.
|
||||
</Card>
|
||||
<Card title="Усунення несправностей каналів" icon="wrench" href="/uk/channels/troubleshooting">
|
||||
Міжканальна діагностика та playbook-и відновлення.
|
||||
Міжканальна діагностика та інструкції з виправлення.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Швидке налаштування
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Socket Mode (типово)">
|
||||
<Tab title="Socket Mode (за замовчуванням)">
|
||||
<Steps>
|
||||
<Step title="Створіть новий застосунок Slack">
|
||||
У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
|
||||
<Step title="Створіть новий Slack app">
|
||||
У налаштуваннях 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-...`)
|
||||
|
||||
</Step>
|
||||
|
||||
@ -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
|
||||
|
||||
<Tab title="HTTP Request URLs">
|
||||
<Steps>
|
||||
<Step title="Створіть новий застосунок Slack">
|
||||
У налаштуваннях застосунку Slack натисніть кнопку **[Create New App](https://api.slack.com/apps/new)**:
|
||||
<Step title="Створіть новий Slack app">
|
||||
У налаштуваннях 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-...`)
|
||||
|
||||
</Step>
|
||||
|
||||
@ -121,9 +121,9 @@ openclaw config patch --file ./slack.http.patch.json5
|
||||
```
|
||||
|
||||
<Note>
|
||||
Використовуйте унікальні шляхи Webhook для HTTP з кількома обліковими записами
|
||||
Використовуйте унікальні webhook-шляхи для HTTP із кількома обліковими записами
|
||||
|
||||
Надайте кожному обліковому запису окремий `webhookPath` (типово `/slack/events`), щоб реєстрації не конфліктували.
|
||||
Надайте кожному обліковому запису окремий `webhookPath` (за замовчуванням `/slack/events`), щоб реєстрації не конфліктували.
|
||||
</Note>
|
||||
|
||||
</Step>
|
||||
@ -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.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Необов’язкові нативні slash-команди">
|
||||
|
||||
Кілька [нативних 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):
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Socket Mode (типово)">
|
||||
<Tab title="Socket Mode (за замовчуванням)">
|
||||
|
||||
```json
|
||||
"slash_commands": [
|
||||
@ -404,7 +404,7 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
|
||||
|
||||
</Tab>
|
||||
<Tab title="HTTP Request URLs">
|
||||
Використовуйте той самий список `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 ча
|
||||
</Tabs>
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Необов’язкові scope-и авторства (операції запису)">
|
||||
Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували активну ідентичність агента (власне ім’я користувача та іконку) замість типової ідентичності застосунку Slack.
|
||||
<Accordion title="Необов’язкові scopes авторства (операції запису)">
|
||||
Додайте bot scope `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (користувацьке ім’я та іконку), а не типову ідентичність Slack app.
|
||||
|
||||
Якщо ви використовуєте іконку emoji, Slack очікує синтаксис `:emoji_name:`.
|
||||
Якщо ви використовуєте emoji-іконку, Slack очікує синтаксис `:emoji_name:`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Необов’язкові області user-token (операції читання)">
|
||||
Якщо ви налаштовуєте `channels.slack.userToken`, типові області читання такі:
|
||||
<Accordion title="Необов’язкові області доступу користувацького токена (операції читання)">
|
||||
Якщо ви налаштовуєте `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)
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -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`.
|
||||
|
||||
<Tip>
|
||||
Для дій/читання довідника user token може мати пріоритет, якщо його налаштовано. Для запису bot token і далі має пріоритет; записи через user-token дозволені лише коли `userTokenReadOnly: false` і bot token недоступний.
|
||||
Для дій і читання каталогу користувацький токен може мати пріоритет, якщо його налаштовано. Для запису перевага залишається за bot token; записи через користувацький токен дозволені лише коли `userTokenReadOnly: false` і bot token недоступний.
|
||||
</Tip>
|
||||
|
||||
## Дії та шлюзи
|
||||
|
||||
Дії 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, показані у вхідних плейсхолдерах файлів, і повертає прев’ю зображень для зображень або метадані локального файлу для інших типів файлів.
|
||||
|
||||
## Контроль доступу та маршрутизація
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Політика DM">
|
||||
`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 <code>`.
|
||||
Спарювання в DM використовує `openclaw pairing approve slack <code>`.
|
||||
|
||||
</Tab>
|
||||
|
||||
@ -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`
|
||||
|
||||
<Warning>
|
||||
Ключі на основі імен (`#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 ча
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Mentions and channel users">
|
||||
Повідомлення каналів за замовчуванням пропускаються лише за згадкою.
|
||||
<Tab title="Згадки та користувачі каналу">
|
||||
Повідомлення каналів за замовчуванням пропускаються через фільтр згадок.
|
||||
|
||||
Джерела згадок:
|
||||
|
||||
- явна згадка застосунку (`<@botId>`)
|
||||
- згадка групи користувачів Slack (`<!subteam^S...>`), коли користувач бота є учасником цієї групи користувачів; потребує `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.<id>`; імена лише через розв’язання під час запуску або `dangerouslyAllowNameMatching`):
|
||||
Керування на рівні каналу (`channels.slack.channels.<id>`; імена лише через розв’язання під час запуску або `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 відкидає повідомлення кімнати, створене ботом.
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Гілки, сесії та теги відповіді
|
||||
## Гілки, сеанси й теги відповіді
|
||||
|
||||
- DM маршрутизуються як `direct`; канали як `channel`; MPIM як `group`.
|
||||
- За стандартного `session.dmScope=main` DM Slack згортаються до основної сесії агента.
|
||||
- Сесії каналів: `agent:<agentId>:slack:channel:<channelId>`.
|
||||
- Відповіді в гілках можуть створювати суфікси сесій гілок (`:thread:<threadTs>`), коли це застосовно.
|
||||
- Стандартне значення `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:<agentId>:slack:channel:<channelId>`.
|
||||
- Відповіді в гілках можуть створювати суфікси сеансів гілок (`:thread:<threadTs>`), коли це застосовно.
|
||||
- Типове значення `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:<id>]]`
|
||||
|
||||
<Note>
|
||||
`replyToMode="off"` вимикає **усі** гілки відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги й надалі враховуються в режимі `"off"`. Гілки Slack приховують повідомлення з каналу, тоді як відповіді Telegram залишаються видимими вбудовано.
|
||||
`replyToMode="off"` вимикає **всі** гілки відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все одно враховуються в режимі `"off"`. Гілки Slack приховують повідомлення з каналу, тоді як відповіді Telegram залишаються видимими в рядку.
|
||||
</Note>
|
||||
|
||||
## Реакції підтвердження
|
||||
|
||||
`ackReaction` надсилає emoji підтвердження, поки OpenClaw обробляє вхідне повідомлення.
|
||||
`ackReaction` надсилає емодзі підтвердження, поки OpenClaw обробляє вхідне повідомлення.
|
||||
|
||||
Порядок розв’язання:
|
||||
|
||||
- `channels.slack.accounts.<accountId>.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, а очищення автоматично пробується після завершення відповіді або шляху помилки.
|
||||
|
||||
## Медіа, фрагментація та доставка
|
||||
## Медіа, фрагментація й доставка
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Inbound attachments">
|
||||
Вкладені файли Slack завантажуються з приватних URL, розміщених у Slack (потік запиту з автентифікацією токеном), і записуються до сховища медіа, коли отримання успішне та обмеження розміру це дозволяють. Заповнювачі файлів містять Slack `fileId`, щоб агенти могли отримати оригінальний файл за допомогою `download-file`.
|
||||
<Accordion title="Вхідні вкладення">
|
||||
Файлові вкладення Slack завантажуються з приватних URL, розміщених Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, коли отримання успішне й обмеження розміру це дозволяють. Заповнювачі файлів містять Slack `fileId`, щоб агенти могли отримати оригінальний файл за допомогою `download-file`.
|
||||
|
||||
Завантаження використовують обмежені таймаути простою та загального часу. Якщо отримання файлу Slack зависає або завершується помилкою, OpenClaw продовжує обробляти повідомлення й повертається до заповнювача файлу.
|
||||
Завантаження використовують обмежені тайм-аути простою й загального часу. Якщо отримання файлу Slack зависає або завершується помилкою, OpenClaw продовжує обробляти повідомлення й повертається до заповнювача файлу.
|
||||
|
||||
Обмеження розміру вхідних даних під час виконання за замовчуванням становить `20MB`, якщо його не перевизначено через `channels.slack.mediaMaxMb`.
|
||||
Обмеження вхідного розміру під час виконання за замовчуванням становить `20MB`, якщо його не перевизначено через `channels.slack.mediaMaxMb`.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Вихідний текст і файли">
|
||||
- текстові фрагменти використовують `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-типом із медіаконвеєра
|
||||
|
||||
</Accordion>
|
||||
|
||||
@ -721,14 +721,14 @@ OpenClaw типово встановлює для клієнта Slack SDK ча
|
||||
- `user:<id>` для DM
|
||||
- `channel:<id>` для каналів
|
||||
|
||||
DM Slack відкриваються через API розмов Slack під час надсилання до цілей користувача.
|
||||
Текстові або лише блочні Slack DM можуть публікуватися напряму в ідентифікатори користувачів; завантаження файлів і надсилання в тредах спочатку відкривають DM через API розмов Slack, тому що ці шляхи потребують конкретного ідентифікатора розмови.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Команди та поведінка 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).
|
||||
|
||||
<Accordion title="Високосигнальні поля 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`
|
||||
|
||||
</Accordion>
|
||||
|
||||
@ -900,12 +900,12 @@ Slack автоматично вмикає нативні підтверджен
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Немає відповідей у каналах">
|
||||
Перевірте по черзі:
|
||||
Перевірте по порядку:
|
||||
|
||||
- `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
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="DM-повідомлення ігноруються">
|
||||
<Accordion title="Повідомлення DM ігноруються">
|
||||
Перевірте:
|
||||
|
||||
- `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
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Режим Socket не підключається">
|
||||
<Accordion title="Socket mode не підключається">
|
||||
Перевірте токени bot + app і ввімкнення Socket Mode у налаштуваннях застосунку Slack.
|
||||
|
||||
Якщо `openclaw channels status --probe --json` показує `botTokenStatus` або
|
||||
`appTokenStatus: "configured_unavailable"`, обліковий запис Slack
|
||||
налаштований, але поточне середовище виконання не змогло визначити значення на основі SecretRef.
|
||||
налаштовано, але поточне середовище виконання не змогло визначити значення,
|
||||
що підтримується SecretRef.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Режим HTTP не отримує події">
|
||||
<Accordion title="HTTP-режим не отримує події">
|
||||
Перевірте:
|
||||
|
||||
- signing secret
|
||||
- шлях Webhook
|
||||
- секрет підписування
|
||||
- шлях webhook
|
||||
- URL запитів Slack (Events + Interactivity + Slash Commands)
|
||||
- унікальний `webhookPath` для кожного HTTP-облікового запису
|
||||
|
||||
Якщо `signingSecretStatus: "configured_unavailable"` з’являється у знімках облікового запису,
|
||||
HTTP-обліковий запис налаштований, але поточне середовище виконання не змогло
|
||||
визначити signing secret на основі SecretRef.
|
||||
Якщо `signingSecretStatus: "configured_unavailable"` з’являється у знімках
|
||||
облікового запису, HTTP-обліковий запис налаштовано, але поточне середовище виконання не змогло
|
||||
визначити секрет підписування, що підтримується SecretRef.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Нативні/slash-команди не спрацьовують">
|
||||
Перевірте, що саме ви мали на увазі:
|
||||
|
||||
- режим нативних команд (`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 каналів/користувачів.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Довідник 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)
|
||||
|
||||
## Пов’язане
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Сполучення" icon="link" href="/uk/channels/pairing">
|
||||
Сполучіть користувача Slack із Gateway.
|
||||
<Card title="Pairing" icon="link" href="/uk/channels/pairing">
|
||||
Зв’яжіть користувача Slack із Gateway.
|
||||
</Card>
|
||||
<Card title="Групи" icon="users" href="/uk/channels/groups">
|
||||
Поведінка каналів і групових DM.
|
||||
<Card title="Groups" icon="users" href="/uk/channels/groups">
|
||||
Поведінка каналу та групових DM.
|
||||
</Card>
|
||||
<Card title="Маршрутизація каналу" icon="route" href="/uk/channels/channel-routing">
|
||||
<Card title="Channel routing" icon="route" href="/uk/channels/channel-routing">
|
||||
Спрямовуйте вхідні повідомлення до агентів.
|
||||
</Card>
|
||||
<Card title="Безпека" icon="shield" href="/uk/gateway/security">
|
||||
<Card title="Security" icon="shield" href="/uk/gateway/security">
|
||||
Модель загроз і посилення захисту.
|
||||
</Card>
|
||||
<Card title="Конфігурація" icon="sliders" href="/uk/gateway/configuration">
|
||||
<Card title="Configuration" icon="sliders" href="/uk/gateway/configuration">
|
||||
Структура конфігурації та пріоритетність.
|
||||
</Card>
|
||||
<Card title="Slash-команди" icon="terminal" href="/uk/tools/slash-commands">
|
||||
<Card title="Slash commands" icon="terminal" href="/uk/tools/slash-commands">
|
||||
Каталог команд і поведінка.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -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 <thread-id>`
|
||||
локально, якщо хочете самостійно переглянути нативний потік Codex. Див.
|
||||
[harness Codex](/uk/plugins/codex-harness#inspect-a-codex-thread-from-the-cli) для
|
||||
цього процесу перегляду.
|
||||
Це робить звичний цикл налагодження Codex коротким: помітили погану поведінку в
|
||||
Telegram, Discord або іншому каналі, запустили `/diagnostics`, один раз схвалили, поділилися
|
||||
звітом із підтримкою, а потім локально запустили надруковану команду `codex resume <thread-id>`,
|
||||
якщо хочете самостійно перевірити нативний тред 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 <path>`: записати до конкретного шляху zip-архіву.
|
||||
- `--output <path>`: записати до конкретного шляху zip-файлу.
|
||||
- `--log-lines <count>`: максимальна кількість очищених рядків журналу для включення.
|
||||
- `--log-bytes <bytes>`: максимальна кількість байтів журналу для перевірки.
|
||||
- `--url <url>`: URL WebSocket Gateway для знімків статусу та стану працездатності.
|
||||
- `--token <token>`: токен Gateway для знімків статусу та стану працездатності.
|
||||
- `--password <password>`: пароль Gateway для знімків статусу та стану працездатності.
|
||||
- `--timeout <ms>`: таймаут знімка статусу та стану працездатності.
|
||||
- `--url <url>`: URL WebSocket Gateway для знімків стану та працездатності.
|
||||
- `--token <token>`: токен Gateway для знімків стану та працездатності.
|
||||
- `--password <password>`: пароль Gateway для знімків стану та працездатності.
|
||||
- `--timeout <ms>`: тайм-аут знімків стану та працездатності.
|
||||
- `--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) — окремий потік для передавання діагностики до колектора
|
||||
|
||||
Loading…
Reference in New Issue
Block a user