Sessions and memory

Закрепление канала

Докинг канала — это переадресация вызовов для одного сеанса OpenClaw. Он сохраняет тот же контекст разговора, но изменяет место доставки будущих ответов для этого сеанса. Докинг работает только из личного чата; его нельзя выполнить из группового чата.

Пример

Алиса может отправлять сообщения OpenClaw в Telegram и Discord:

json5
{  session: {    identityLinks: {      alice: ["telegram:123", "discord:456"],    },  },}

Если Алиса отправит следующую команду из личного чата Telegram:

text
/dock_discord

OpenClaw сохранит контекст текущего сеанса и изменит маршрут ответов:

До докинга После /dock_discord
Ответы поступают в Telegram 123 Ответы поступают в Discord 456

Сеанс не создаётся заново. История переписки остаётся привязанной к тому же сеансу.

Зачем это использовать

Используйте докинг, когда задача начинается в одном приложении для общения, но следующие ответы должны поступать в другое.

Типичный сценарий:

  1. Запустите задачу агента из Telegram.
  2. Перейдите в Discord, где вы координируете работу.
  3. Отправьте /dock_discord из личного чата Telegram.
  4. Продолжайте использовать тот же сеанс OpenClaw, но получайте будущие ответы в Discord.

Обязательная конфигурация

Для докинга требуется session.identityLinks. Исходный отправитель и целевой собеседник должны входить в одну группу идентичности:

json5
{  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> для каждого загруженного плагина канала, поддерживающего нативные команды, поэтому список растёт по мере добавления плагинов. Встроенные плагины, которые поддерживают эту функцию в настоящее время:

Целевой канал Команда Псевдоним
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, от привязанного отправителя.

Was this useful?
On this page

On this page