Skip to content

7.6 多渠道路由规则


前面几节,你学会了如何把 OpenClaw 接入单个渠道。

但实际场景中,你可能希望一个 Agent 同时接入多个渠道

  • 团队用飞书,客户用钉钉,朋友用 QQ
  • 不想维护三个独立的 OpenClaw 实例
  • 希望在任何渠道都能和同一个 AI 助手对话

这就是多渠道路由要解决的问题。


关键术语

在配置路由之前,先理解几个核心概念:

术语说明
渠道(Channel)消息来源平台:feishudingtalkqqbot
AccountId每个渠道的账户实例(支持多账号的渠道)
SessionKey用于存储上下文和控制并发的会话键

基础配置:一个 Agent 接入多个渠道

最简单的场景:同一个 Agent 同时接入飞书、钉钉、QQ。

json5
{
  agents: {
    list: [
      { id: "main", name: "主助手" }
    ]
  },
  channels: {
    feishu: {
      enabled: true,
      accounts: {
        main: { appId: "xxx", appSecret: "xxx" }
      }
    },
    dingtalk: {
      enabled: true,
      accounts: {
        main: { clientId: "xxx", clientSecret: "xxx" }
      }
    },
    qqbot: {
      enabled: true,
      appId: "xxx",
      clientSecret: "xxx"
    }
  }
}

就这样!不需要额外配置路由规则,所有渠道的消息都会路由到默认的 main Agent。


会话隔离

不同渠道的会话是如何隔离的?

私聊:共享主会话

所有渠道的私聊都折叠到 Agent 的主会话

agent:main:main

这意味着:

  • 在飞书私聊说的内容,钉钉私聊也知道
  • 跨渠道保持连续对话
  • 上下文不丢失

群聊:独立会话

每个群组有独立的会话键:

agent:main:feishu:group:oc_xxx
agent:main:dingtalk:group:xxx
agent:main:qqbot:group:123456

这意味着:

  • 不同群组之间上下文不互通
  • 防止信息混乱(销售群的内容不会出现在技术群)
  • 同一群组在不同渠道也是独立会话

会话隔离示意

场景会话键说明
飞书私聊agent:main:main与主会话共享
钉钉私聊agent:main:main与主会话共享
QQ 私聊agent:main:main与主会话共享
飞书群 Aagent:main:feishu:group:oc_aaa独立会话
飞书群 Bagent:main:feishu:group:oc_bbb独立会话
钉钉群agent:main:dingtalk:group:xxx独立会话

配置步骤

第一步:启用多个渠道

编辑配置文件:

bash
vim ~/.openclaw/openclaw.json

channels 中添加你需要的渠道:

json5
{
  channels: {
    feishu: {
      enabled: true,
      accounts: {
        main: { appId: "xxx", appSecret: "xxx" }
      }
    },
    dingtalk: {
      enabled: true,
      accounts: {
        main: { clientId: "xxx", clientSecret: "xxx" }
      }
    }
  }
}

第二步:安装渠道插件

如果渠道需要插件,安装对应的插件:

bash
# 钉钉插件
openclaw plugins install @openclaw/connector-dingtalk

# QQ 插件
openclaw plugins install @sliverp/qqbot@latest

第三步:重启 Gateway

bash
openclaw gateway restart

第四步:验证

在各个渠道发送消息测试:

你:你好

机器人:你好!我是你的 AI 助手...

WebChat 的行为

WebChat(浏览器访问 http://127.0.0.1:18789)连接到所选 Agent 的主会话

因此,WebChat 让你可以:

  • 在一个地方查看该 Agent 的跨渠道上下文
  • 在 WebChat 中说的话,私聊渠道也能看到

实际应用场景

场景一:个人多平台助手

你在不同平台都有账号,希望随时随地都能和 AI 助手对话:

  • 工作用飞书 → 飞书接入
  • 客户用钉钉 → 钉钉接入
  • 朋友用 QQ → QQ 接入

配置后,无论在哪个平台,都能和同一个 AI 助手对话,私聊上下文互通。

场景二:社群运营

你运营多个社群,分布在不同平台:

  • 飞书群:技术交流
  • 钉钉群:客户服务
  • QQ 群:用户讨论

一个 Agent 同时服务多个平台,但各群会话隔离,互不干扰。


故障排查

某个渠道不响应

检查清单:

  • [ ] 该渠道 enabled: true
  • [ ] 对应的插件已安装
  • [ ] Gateway 正在运行
  • [ ] 凭证(AppID/Secret)正确

私聊上下文不互通

确认:

  • 使用的是同一个 Agent(默认 main
  • 两个渠道的私聊都应该走主会话

查看日志

bash
openclaw logs --follow

日志会显示每条消息来自哪个渠道。


这一节,你做了什么

概念理解
多渠道配置channels 中配置多个渠道
私聊共享所有渠道私聊折叠到主会话
群聊隔离每个群组独立会话

至此,第 7 章全部完成。你已经学会了:

  • 渠道接入的基本原理
  • 飞书、企微、钉钉、QQ 的接入方法
  • 一个 Agent 接入多个渠道

下一章,我们将学习多 Agent 协作。

基于 MIT 许可发布