chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-27 20:15:30 +00:00
parent 0ac9a07d78
commit fd14c52e3c

View File

@ -1,85 +1,93 @@
---
read_when:
- Зміна маршрутизації каналів або поведінки вхідних повідомлень
summary: Правила маршрутизації для кожного каналу (WhatsApp, Telegram, Discord, Slack) і спільний контекст
summary: Правила маршрутизації за каналами (WhatsApp, Telegram, Discord, Slack) і спільний контекст
title: Маршрутизація каналів
x-i18n:
generated_at: "2026-04-23T22:57:24Z"
generated_at: "2026-04-27T20:14:58Z"
model: gpt-5.4
provider: openai
source_hash: cb87a774bb094af15524702c2c4fd17cf0b41fe27ac0943d1008523a43d5553b
source_hash: c43347048fcfd137cc3a0b2cfdc4cf36426fdcf9645f2d1a05ce9cf49688cf0d
source_path: channels/channel-routing.md
workflow: 15
---
# Канали й маршрутизація
OpenClaw маршрутизує відповіді **назад у той канал, звідки надійшло повідомлення**. Модель не вибирає канал; маршрутизація є детермінованою та контролюється конфігурацією хоста.
OpenClaw маршрутизує відповіді **назад у той канал, звідки надійшло повідомлення**. Модель не вибирає канал; маршрутизація є детермінованою та керується конфігурацією хоста.
## Ключові терміни
- **Канал**: `telegram`, `whatsapp`, `discord`, `irc`, `googlechat`, `slack`, `signal`, `imessage`, `line`, а також канали plugin. `webchat` — це внутрішній канал інтерфейсу WebChat і не є налаштовуваним вихідним каналом.
- **AccountId**: екземпляр облікового запису для певного каналу (де підтримується).
- Необов’язковий обліковий запис каналу за замовчуванням: `channels.<channel>.defaultAccount` визначає, який обліковий запис використовується, коли вихідний шлях не вказує `accountId`.
- У конфігураціях із кількома обліковими записами встановіть явне значення за замовчуванням (`defaultAccount` або `accounts.default`), якщо налаштовано два або більше облікових записів. Без цього резервна маршрутизація може вибрати перший нормалізований ідентифікатор облікового запису.
- **AgentId**: ізольований робочий простір + сховище сесій (“мозок”).
- **SessionKey**: ключ сегмента, який використовується для збереження контексту та керування паралелізмом.
- **Канал**: `telegram`, `whatsapp`, `discord`, `irc`, `googlechat`, `slack`, `signal`, `imessage`, `line`, а також канали Plugin. `webchat` — це внутрішній канал інтерфейсу WebChat і не є налаштовуваним вихідним каналом.
- **AccountId**: екземпляр облікового запису в межах каналу (де підтримується).
- Необов’язковий типовий обліковий запис каналу: `channels.<channel>.defaultAccount` визначає, який обліковий запис використовується, коли вихідний шлях не вказує `accountId`.
- У конфігураціях із кількома обліковими записами встановіть явний типовий обліковий запис (`defaultAccount` або `accounts.default`), коли налаштовано два чи більше облікових записи. Без цього резервна маршрутизація може вибрати перший нормалізований ідентифікатор облікового запису.
- **AgentId**: ізольований робочий простір + сховище сесій («brain»).
- **SessionKey**: ключ сегмента, який використовується для збереження контексту та керування конкурентністю.
## Форми ключів сесії (приклади)
## Форми ключа сесії (приклади)
Повідомлення напряму за замовчуванням згортаються в **основну** сесію агента:
Прямі повідомлення типово згортаються до **основної** сесії агента:
- `agent:<agentId>:<mainKey>` (типово: `agent:main:main`)
Навіть коли історія розмов у прямих повідомленнях спільна з основною сесією, політика sandbox та інструментів використовує похідний ключ середовища виконання прямого чату для кожного облікового запису для зовнішніх DM, щоб повідомлення, що надходять із каналів, не оброблялися як локальні запуски основної сесії.
Навіть коли історія розмов у прямих повідомленнях спільна з основною сесією, політика sandbox і tool використовує похідний ключ середовища виконання для прямого чату на рівні облікового запису для зовнішніх DM, щоб повідомлення, що походять із каналів, не трактувалися як локальні запуски основної сесії.
Групи та канали залишаються ізольованими в межах кожного каналу:
Групи й канали залишаються ізольованими в межах каналу:
- Групи: `agent:<agentId>:<channel>:group:<id>`
- Канали/кімнати: `agent:<agentId>:<channel>:channel:<id>`
Гілки:
Потоки:
- Гілки Slack/Discord додають `:thread:<threadId>` до базового ключа.
- Теми форуму Telegram вбудовують `:topic:<topicId>` у ключ групи.
- Потоки Slack/Discord додають `:thread:<threadId>` до базового ключа.
- Теми форумів Telegram вбудовують `:topic:<topicId>` у ключ групи.
Приклади:
- `agent:main:telegram:group:-1001234567890:topic:42`
- `agent:main:discord:channel:123456:thread:987654`
## Закріплення основного маршруту DM
## Закріплення маршруту основних DM
Коли `session.dmScope` має значення `main`, прямі повідомлення можуть використовувати одну спільну основну сесію.
Щоб `lastRoute` сесії не перезаписувався DM від не-власників,
Коли `session.dmScope` має значення `main`, прямі повідомлення можуть спільно використовувати одну основну сесію.
Щоб `lastRoute` цієї сесії не перезаписувався DM від не-власника,
OpenClaw визначає закріпленого власника з `allowFrom`, якщо виконуються всі такі умови:
- `allowFrom` містить рівно один запис без wildcard.
- Цей запис можна нормалізувати до конкретного ідентифікатора відправника для цього каналу.
- `allowFrom` містить рівно один не-шаблонний запис.
- Запис можна нормалізувати до конкретного ідентифікатора відправника для цього каналу.
- Відправник вхідного DM не збігається з цим закріпленим власником.
У разі такої невідповідності OpenClaw усе одно записує метадані вхідної сесії, але пропускає оновлення `lastRoute` основної сесії.
У разі такої невідповідності OpenClaw усе одно записує метадані вхідної сесії, але
пропускає оновлення `lastRoute` основної сесії.
## Захищений запис вхідних даних
Плагіни каналів можуть позначати запис вхідної сесії як `createIfMissing: false`,
коли захищений шлях не повинен створювати нову сесію OpenClaw. У цьому режимі
OpenClaw може оновлювати метадані та `lastRoute` для наявної сесії, але
не створює запис сесії лише для маршруту тільки тому, що було виявлено повідомлення.
## Правила маршрутизації (як вибирається агент)
Маршрутизація вибирає **одного агента** для кожного вхідного повідомлення:
1. **Точний збіг peer** (`bindings` із `peer.kind` + `peer.id`).
2. **Збіг батьківського peer** (успадкування гілки).
3. **Збіг гільдії + ролей** (Discord) через `guildId` + `roles`.
4. **Збіг гільдії** (Discord) через `guildId`.
5. **Збіг команди** (Slack) через `teamId`.
1. **Точний збіг peer** (`bindings` з `peer.kind` + `peer.id`).
2. **Збіг батьківського peer** (успадкування потоку).
3. **Збіг guild + ролей** (Discord) через `guildId` + `roles`.
4. **Збіг guild** (Discord) через `guildId`.
5. **Збіг team** (Slack) через `teamId`.
6. **Збіг облікового запису** (`accountId` у каналі).
7. **Збіг каналу** (будь-який обліковий запис у цьому каналі, `accountId: "*"`).
8. **Агент за замовчуванням** (`agents.list[].default`, інакше перший запис у списку, резервно`main`).
8. **Типовий агент** (`agents.list[].default`, інакше перший запис у списку, резервний варіант`main`).
Коли прив’язка містить кілька полів збігу (`peer`, `guildId`, `teamId`, `roles`), **усі вказані поля мають збігатися**, щоб ця прив’язка застосувалася.
Коли binding містить кілька полів збігу (`peer`, `guildId`, `teamId`, `roles`), **усі надані поля мають збігатися**, щоб цей binding застосовувався.
Збіг агента визначає, які робочий простір і сховище сесій використовуються.
Зіставлений агент визначає, який робочий простір і яке сховище сесій використовуються.
## Групи трансляції (запуск кількох агентів)
Групи трансляції дають змогу запускати **кілька агентів** для одного й того самого peer **коли OpenClaw зазвичай відповідав би** (наприклад, у групах WhatsApp після згадки/активаційного фільтра).
Групи трансляції дають змогу запускати **кілька агентів** для одного й того самого peer **коли OpenClaw зазвичай відповідає** (наприклад, у групах WhatsApp після згадки/активаційного шлюзу).
Конфігурація:
@ -105,7 +113,7 @@ OpenClaw визначає закріпленого власника з `allowFro
```json5
{
agents: {
list: [{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }],
list: [{ id: "support", name: "Підтримка", workspace: "~/.openclaw/workspace-support" }],
},
bindings: [
{ match: { channel: "slack", teamId: "T123" }, agentId: "support" },
@ -119,29 +127,31 @@ OpenClaw визначає закріпленого власника з `allowFro
Сховища сесій розміщуються в каталозі стану (типово `~/.openclaw`):
- `~/.openclaw/agents/<agentId>/sessions/sessions.json`
- JSONL-стенограми зберігаються поруч зі сховищем
- JSONL-стенограми розміщуються поруч зі сховищем
Ви можете перевизначити шлях до сховища через `session.store` і шаблонізацію `{agentId}`.
Виявлення сесій Gateway і ACP також сканує дискові сховища агентів у
типовому корені `agents/` і в коренях `session.store`, заданих шаблоном. Виявлені
сховища мають залишатися в межах цього розв’язаного кореня агента й використовувати звичайний файл
Виявлення сесій Gateway і ACP також сканує дискові сховища агентів у типовому
корені `agents/` і в коренях `session.store` із шаблонами. Виявлені
сховища мають залишатися всередині цього визначеного кореня агента й використовувати звичайний файл
`sessions.json`. Символічні посилання та шляхи поза коренем ігноруються.
## Поведінка WebChat
WebChat підключається до **вибраного агента** і за замовчуванням використовує основну сесію агента. Завдяки цьому WebChat дає змогу бачити міжканальний контекст для цього агента в одному місці.
WebChat підключається до **вибраного агента** і типово використовує основну
сесію агента. Завдяки цьому WebChat дає змогу бачити міжканальний контекст для цього
агента в одному місці.
## Контекст відповіді
Вхідні відповіді включають:
Вхідні відповіді містять:
- `ReplyToId`, `ReplyToBody` і `ReplyToSender`, якщо доступні.
- `ReplyToId`, `ReplyToBody` і `ReplyToSender`, коли доступні.
- Цитований контекст додається до `Body` як блок `[Replying to ...]`.
Це однаково для всіх каналів.
Це узгоджено в усіх каналах.
## Пов’язано
## Пов’язане
- [Групи](/uk/channels/groups)
- [Групи трансляції](/uk/channels/broadcast-groups)