概述

Channel Docking 是 OpenClaw 会话的”呼叫转移”功能。它保持相同的对话上下文,但将该会话的后续回复投递目标切换到另一个已链接的 channel。

核心要点

  • 不创建新会话:transcript 历史保持不变,只改变回复路由
  • 需要 identityLinks 配置:发送方和目标 peer 必须在同一身份组中
  • 改变的字段:lastChannel、lastTo、lastAccountId(持久化到 session store)
  • 不改变的内容:不创建 channel 账号、不绕过 allowlist、不移动 transcript、不让无关用户共享 session

支持的 dock 命令:

目标 channel命令
Discord/dock-discord / /dock_discord
Mattermost/dock-mattermost / /dock_mattermost
Slack/dock-slack / /dock_slack
Telegram/dock-telegram / /dock_telegram

配置/使用

必须先配置 session.identityLinks,将同一用户在不同 channel 的 ID 归入同一身份组:

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

典型使用流程:

  1. 在 Telegram 开始一个 Agent 任务
  2. 切换到 Discord 协调工作
  3. 从 Telegram 发送 /dock_discord
  4. 保持同一 OpenClaw session,后续回复在 Discord 接收

常见问题:

  • “sender not linked”:检查 identityLinks 是否包含当前发送方和目标 peer
  • “no active session”:需要从已有 DM session 发起 dock 命令
  • 想切回原 channel:发送对应的 dock 命令(如 /dock_telegram)

相关页面

  • session - 会话管理与路由机制
  • multi-agent - 多 Agent 路由与 binding 配置
  • channel - Channel 接入与账号配置