Перейти до основного вмісту
Стикування каналів — це переадресація викликів для одного сеансу OpenClaw. Воно зберігає той самий контекст розмови, але змінює, куди доставлятимуться майбутні відповіді для цього сеансу.

Приклад

Alice може писати OpenClaw у Telegram і Discord:
{
  session: {
    identityLinks: {
      alice: ["telegram:123", "discord:456"],
    },
  },
}
Якщо Alice надішле це з Telegram:
/dock_discord
OpenClaw збереже контекст поточного сеансу й змінить маршрут відповіді:
До стикуванняПісля /dock_discord
Відповіді надходять у Telegram 123Відповіді надходять у Discord 456
Сеанс не створюється заново. Історія стенограми залишається прив’язаною до того самого сеансу.

Навіщо це використовувати

Використовуйте стикування, коли завдання починається в одному застосунку чату, але наступні відповіді мають надходити кудись іще. Типовий сценарій:
  1. Запустіть завдання агента з Telegram.
  2. Перейдіть до Discord, де ви координуєте роботу.
  3. Надішліть /dock_discord із сеансу Telegram.
  4. Збережіть той самий сеанс OpenClaw, але отримуйте майбутні відповіді в Discord.

Обов’язкова конфігурація

Для стикування потрібен session.identityLinks. Відправник джерела й цільовий peer мають бути в одній групі ідентичності:
{
  session: {
    identityLinks: {
      alice: ["telegram:123", "discord:456", "slack:U123"],
    },
  },
}
Значення — це ідентифікатори peer із префіксом каналу:
ЗначенняЗначення
telegram:123Ідентифікатор відправника Telegram 123
discord:456Ідентифікатор прямого peer у Discord 456
slack:U123Ідентифікатор користувача Slack U123
Канонічний ключ (alice вище) — це лише спільна назва групи ідентичності. Команди dock використовують значення з префіксом каналу, щоб підтвердити, що відправник джерела й цільовий peer — це одна й та сама особа.

Команди

Команди dock генеруються із завантажених плагінів каналів, які підтримують нативні команди. Поточні вбудовані команди:
Цільовий каналКомандаПсевдонім
Discord/dock-discord/dock_discord
Mattermost/dock-mattermost/dock_mattermost
Slack/dock-slack/dock_slack
Telegram/dock-telegram/dock_telegram
Псевдоніми з підкресленням корисні на поверхнях нативних команд, таких як Telegram.

Що змінюється

Стикування оновлює поля доставки активного сеансу:
Поле сеансуПриклад після /dock_discord
lastChanneldiscord
lastTo456
lastAccountIdцільовий обліковий запис каналу або default
Ці поля зберігаються у сховищі сеансів і використовуються для подальшої доставки відповідей у цьому сеансі.

Що не змінюється

Стикування не:
  • створює облікові записи каналів
  • підключає нового бота Discord, Telegram, Slack або Mattermost
  • надає користувачу доступ
  • обходить allowlist каналів або політики прямих повідомлень
  • переносить історію стенограми до іншого сеансу
  • не робить так, щоб непов’язані користувачі спільно використовували один сеанс
Воно лише змінює маршрут доставки для поточного сеансу.

Усунення несправностей

Команда повідомляє, що відправника не пов’язано. Додайте і поточного відправника, і цільовий peer до тієї самої групи session.identityLinks. Наприклад, якщо відправник Telegram 123 має стикуватися з peer Discord 456, включіть і telegram:123, і discord:456. Команда повідомляє, що активного сеансу не існує. Виконайте стикування з наявного сеансу прямого чату. Команді потрібен запис активного сеансу, щоб вона могла зберегти новий маршрут. Відповіді все ще надходять у старий канал. Перевірте, що команда повернула повідомлення про успіх, і підтвердьте, що ідентифікатор цільового peer збігається з ідентифікатором, який використовує цей канал. Стикування змінює лише маршрут активного сеансу; інший сеанс усе ще може спрямовувати відповіді в інше місце. Мені потрібно переключитися назад. Надішліть відповідну команду для початкового каналу, наприклад /dock_telegram або /dock-telegram, від пов’язаного відправника.