教程

多账号路由实操:30 分钟做完会话隔离

按步骤完成 channel/account/thread 三层隔离,避免 Telegram、WhatsApp、Discord 串会话。

你要拿到的结果

做完后必须满足:

  1. 同一渠道下 A/B 两个账号不会互相看到上下文
  2. 同一账号下不同会话(thread)不会互串
  3. 你能从日志直接定位“串会话发生在哪一层”

前置准备(5 分钟)

准备 2 个账号和 2 条测试任务:

  • 账号 A:发送“只回答 A”
  • 账号 B:发送“只回答 B”

确保日志里能看到这 3 个字段(字段名按你系统实际为准):

  • channel
  • accountId(或 userId)
  • threadId(或 conversationId)

参考:

操作步骤(20 分钟)

第 1 步:先定 session key 规则

先写死规则,再改配置。
推荐最小公式:

sessionKey = channel + ":" + accountId + ":" + threadId

不要只用 channel,也不要只用 accountId

第 2 步:按“渠道、账号、会话”三层路由

执行顺序不要反:

  1. 渠道分流(Telegram/WhatsApp/Discord 分开)
  2. 渠道内账号分流(A/B 分开)
  3. 账号内 thread 分流(会话隔离)

第 3 步:跑最小回归矩阵

必须跑这 6 组:

  1. Telegram A thread-1
  2. Telegram A thread-2
  3. Telegram B thread-1
  4. WhatsApp A thread-1
  5. WhatsApp B thread-1
  6. Discord A thread-1

每组发 2 条消息,检查回复是否只引用本组历史。

验收标准(必须全部通过)

  • 同账号不同 thread:无串历史
  • 同渠道不同账号:无串历史
  • 不同渠道同账号标识:无串历史
  • 日志能看到唯一 sessionKey

失败排查(直接对照)

  1. 症状:A 收到 B 的历史
    动作:检查 sessionKey 是否缺 accountId

  2. 症状:同账号不同会话互串
    动作:检查 sessionKey 是否缺 threadId

  3. 症状:只有某个渠道串会话
    动作:先看该渠道入口是否上报了错误的 accountIdthreadId

DM 场景补充

启用私聊前,先定义谁能配对、配对后权限范围。
不要把“能私聊”当“全能力放开”。

下一步

会话隔离稳定后,再做这两件事: