Sessions and memory
Закріплення каналу
Стикування каналів — це переадресація викликів для одного сеансу OpenClaw. Воно зберігає той самий контекст розмови, але змінює місце доставлення майбутніх відповідей для цього сеансу. Стикування працює лише з особистого чату; у груповому чаті воно не виконується.
Приклад
Аліса може надсилати повідомлення OpenClaw у Telegram і Discord:
{ session: { identityLinks: { alice: ["telegram:123", "discord:456"], }, },}Якщо Аліса надішле це з особистого чату Telegram:
/dock_discordOpenClaw збереже контекст поточного сеансу та змінить маршрут відповідей:
| До стикування | Після /dock_discord |
|---|---|
Відповіді надходять у Telegram 123 |
Відповіді надходять у Discord 456 |
Сеанс не створюється заново. Історія розмови залишається пов’язаною з тим самим сеансом.
Навіщо це використовувати
Використовуйте стикування, коли завдання починається в одному застосунку для спілкування, але наступні відповіді мають надходити в інше місце.
Типовий сценарій:
- Запустіть завдання агента з Telegram.
- Перейдіть у Discord, де ви координуєте роботу.
- Надішліть
/dock_discordз особистого чату Telegram. - Продовжуйте використовувати той самий сеанс OpenClaw, але отримуйте майбутні відповіді в Discord.
Обов’язкова конфігурація
Для стикування потрібен session.identityLinks. Відправник у вихідному каналі та цільовий співрозмовник
мають належати до однієї групи ідентичності:
{ session: { identityLinks: { alice: ["telegram:123", "discord:456", "slack:U123"], }, },}Значення — це ідентифікатори співрозмовників із префіксом каналу:
| Значення | Значення |
|---|---|
telegram:123 |
Ідентифікатор відправника Telegram 123 |
discord:456 |
Ідентифікатор особистого співрозмовника Discord 456 |
slack:U123 |
Ідентифікатор користувача Slack U123 |
Канонічний ключ (alice вище) — це лише спільна назва групи ідентичності. Команди
стикування використовують значення з префіксом каналу, щоб підтвердити, що відправник у вихідному каналі та
цільовий співрозмовник — та сама особа.
Команди
OpenClaw створює одну команду /dock-<channel> для кожного завантаженого Plugin каналу,
який підтримує нативні команди, тому список розширюється з додаванням плагінів. Вбудовані
плагіни, які наразі це підтримують:
| Цільовий канал | Команда | Псевдонім |
|---|---|---|
| Discord | /dock-discord |
/dock_discord |
| Mattermost | /dock-mattermost |
/dock_mattermost |
| Slack | /dock-slack |
/dock_slack |
| Telegram | /dock-telegram |
/dock_telegram |
Форма з підкресленням також є назвою нативної команди в інтерфейсах на кшталт Telegram, які надають безпосередній доступ до команд із похилою рискою.
Що змінюється
Стикування оновлює поля доставлення активного сеансу:
| Поле сеансу | Приклад після /dock_discord |
|---|---|
lastChannel |
discord |
lastTo |
456 |
lastAccountId |
обліковий запис цільового каналу або default |
Ці поля зберігаються в сховищі сеансів і використовуються для подальшого доставлення відповідей у межах цього сеансу.
Що не змінюється
Стикування не:
- створює облікові записи каналів
- підключає нового бота Discord, Telegram, Slack або Mattermost
- надає користувачеві доступ
- обходить списки дозволених користувачів каналів або політики особистих повідомлень
- переносить історію розмови до іншого сеансу
- змушує непов’язаних користувачів спільно використовувати один сеанс
Воно лише змінює маршрут доставлення для поточного сеансу.
Усунення несправностей
Команда повідомляє, що відправника не пов’язано.
Додайте поточного відправника та цільового співрозмовника до однієї групи
session.identityLinks. Наприклад, якщо відправника Telegram 123 потрібно зістикувати
зі співрозмовником Discord 456, додайте і telegram:123, і discord:456.
Команда повідомляє, що стикування доступне лише з особистих чатів.
Надішліть команду стикування з особистого чату з OpenClaw, а не з групового чату.
Команда повідомляє, що активного сеансу не існує.
Виконайте стикування з наявного сеансу особистого чату. Команді потрібен запис активного сеансу, щоб зберегти новий маршрут.
Відповіді все ще надходять у старий канал.
Перевірте, чи команда відповіла повідомленням про успіх, і переконайтеся, що ідентифікатор цільового співрозмовника відповідає ідентифікатору, який використовує цей канал. Стикування змінює лише маршрут активного сеансу; інший сеанс усе ще може мати інший маршрут.
Мені потрібно повернутися назад.
Надішліть відповідну команду для початкового каналу, наприклад /dock_telegram або
/dock-telegram, від пов’язаного відправника.