Sessions and memory

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

Закрепление канала — это переадресация вызовов для одного сеанса OpenClaw.

Оно сохраняет тот же контекст разговора, но меняет место доставки будущих ответов для этого сеанса.

Пример

Alice может писать OpenClaw в Telegram и Discord:

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

Если Alice отправит это из 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 выше) — это только имя общей группы идентичности. Команды закрепления используют значения с префиксом канала, чтобы доказать, что исходный отправитель и целевой собеседник — один и тот же человек.

Команды

Команды закрепления генерируются из загруженных плагинов каналов, которые поддерживают нативные команды. Текущие встроенные команды:

Целевой канал Команда Псевдоним
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.

Команда сообщает, что активный сеанс отсутствует.

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

Ответы по-прежнему идут в старый канал.

Проверьте, что команда ответила сообщением об успехе, и подтвердите, что идентификатор целевого собеседника совпадает с идентификатором, используемым этим каналом. Закрепление меняет только маршрут активного сеанса; другой сеанс все еще может направляться в другое место.

Мне нужно переключиться обратно.

Отправьте соответствующую команду для исходного канала, например /dock_telegram или /dock-telegram, от связанного отправителя.

Was this useful?
On this page

On this page