7.6 多渠道路由规则
前面几节,你学会了如何把 OpenClaw 接入单个渠道。
但实际场景中,你可能希望一个 Agent 同时接入多个渠道:
- 团队用飞书,客户用钉钉,朋友用 QQ
- 不想维护三个独立的 OpenClaw 实例
- 希望在任何渠道都能和同一个 AI 助手对话
这就是多渠道路由要解决的问题。
关键术语
在配置路由之前,先理解几个核心概念:
| 术语 | 说明 |
|---|---|
| 渠道(Channel) | 消息来源平台:feishu、dingtalk、qqbot 等 |
| 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 | 与主会话共享 |
| 飞书群 A | agent:main:feishu:group:oc_aaa | 独立会话 |
| 飞书群 B | agent: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 协作。