当你在一个 WhatsApp 群里@机器人,它怎么知道该用哪个"大脑"来回复你?答案就是——渠道路由。
想象一下,你经营着一个跨境电商业务,有客服咨询、订单查询、售后支持三种不同的 AI 助手。客户在 WhatsApp 上发消息时,系统如何自动判断该由哪个 AI 来响应?
这就是 OpenClaw 渠道路由要解决的核心问题。
一、渠道路由的本质
渠道路由 = 消息分发规则引擎
OpenClaw 将回复路由回消息来源的渠道。模型不会选择渠道;路由是确定性的,由主机配置控制。

简单来说:
- • 用户从 WhatsApp 发消息 → 系统根据规则选择 AI 智能体 → AI 处理 → 回复发回 WhatsApp
- • 用户从 Telegram 发消息 → 系统根据规则选择 AI 智能体 → AI 处理 → 回复发回 Telegram
整个过程完全自动化,无需人工干预。
二、关键术语解析
在深入配置之前,先搞清楚几个核心概念:

1. 渠道(Channel)
渠道就是消息的载体平台,OpenClaw 支持:
- •
whatsapp- WhatsApp - •
telegram- Telegram - •
discord- Discord - •
slack- Slack - •
signal- Signal - •
imessage- iMessage - •
webchat- 网页聊天
2. AccountId(账户 ID)
每个渠道的账户实例。比如你有两个 WhatsApp 账号,一个用于客服、一个用于营销,它们就是两个不同的 AccountId。
3. AgentId(智能体 ID)
隔离的工作区 + 会话存储,可以理解为 AI 的"大脑"。每个 AgentId 有独立的记忆、配置和工作空间。
4. SessionKey(会话键)
用于存储上下文和控制并发的桶键。它决定了消息的对话历史存储在哪里。
三、会话键格式详解
会话键是渠道路由的核心,它决定了消息如何被归类和处理。
私信会话
私信会折叠到智能体的主会话:
agent:<agentId>:<mainKey>默认情况下是 agent:main:main,也就是说所有私信都会汇聚到主会话中。
群组和渠道会话
群组和渠道按渠道隔离:
# 群组
agent:<agentId>:<channel>:group:<id>
# 渠道/房间
agent:<agentId>:<channel>:channel:<id>线程会话
对于支持线程的平台(如 Slack、Discord),线程会在基础键后追加:
# Slack/Discord 线程
agent:<agentId>:<channel>:channel:<id>:thread:<threadId>
# Telegram 论坛主题
agent:<agentId>:<channel>:group:<id>:topic:<topicId>实际示例
# Telegram 群组中的主题讨论
agent:main:telegram:group:-1001234567890:topic:42
# Discord 频道中的线程回复
agent:main:discord:channel:123456:thread:987654
理解了会话键,你就理解了 OpenClaw 如何组织对话上下文。
四、路由规则:如何选择智能体
当一条消息进来时,OpenClaw 按照以下优先级选择智能体:
匹配优先级(从高到低)

- 1. 精确对端匹配 -
bindings中的peer.kind+peer.id - 2. Guild 匹配 - Discord 服务器通过
guildId - 3. Team 匹配 - Slack 工作区通过
teamId - 4. 账户匹配 - 渠道上的
accountId - 5. 渠道匹配 - 该渠道上的任意账户
- 6. 默认智能体 -
agents.list[].default,否则取列表第一项,兜底为main
匹配到的智能体决定使用哪个工作区和会话存储。
配置示例
{
agents: {
list: [
{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }
],
},
bindings: [
// 匹配特定 Slack 团队
{ match: { channel: "slack", teamId: "T123" }, agentId: "support" },
// 匹配特定 Telegram 群组
{ match: { channel: "telegram", peer: { kind: "group", id: "-100123" } }, agentId: "support" },
]
}五、广播组:一个消息,多个智能体
广播组是 OpenClaw 的高级功能,允许你为同一对端运行多个智能体。
使用场景
假设你有一个 VIP 客户群,希望同时:
- • 一个 AI 负责客服响应
- • 一个 AI 负责记录对话日志
- • 一个 AI 负责分析客户情绪
广播组可以让这三个 AI 同时接收消息并各自处理。
配置方式
{
broadcast: {
strategy: "parallel",
"120363403215116621@g.us": ["alfred", "baerbel"],
"+15555550123": ["support", "logger"],
}
}
这意味着:
- • WhatsApp 群组
120363403215116621@g.us的消息会同时发送给alfred和baerbel两个智能体 - • 电话号码
+15555550123的消息会同时发送给support和logger
触发条件
广播组在 OpenClaw 正常回复时触发,例如在 WhatsApp 群组中,经过提及/激活门控之后。
六、会话存储机制
会话存储位于状态目录下(默认 ~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.jsonJSONL 记录文件与存储位于同一目录。
你可以通过 session.store 和 {agentId} 模板来覆盖存储路径,实现自定义存储策略。
七、WebChat 行为
WebChat 连接到所选智能体,并默认使用该智能体的主会话。
这意味着:WebChat 让你可以在一个地方查看该智能体的跨渠道上下文。
举个例子:
- • 你的
support智能体同时处理 WhatsApp 和 Telegram 的客服消息 - • 通过 WebChat,你可以在一个界面看到所有渠道的对话历史
- • 无需切换平台,统一管理所有客服对话

八、回复上下文处理
当用户回复某条消息时,OpenClaw 会自动提取上下文信息:
包含的信息
- •
ReplyToId- 被回复消息的 ID - •
ReplyToBody- 被回复消息的内容 - •
ReplyToSender- 被回复消息的发送者
上下文格式
引用的上下文会以 [Replying to ...] 块的形式追加到 Body 中,让 AI 理解对话的上下文关系。
九、实战配置:搭建多智能体系统
场景描述
假设你要为一个 SaaS 公司搭建客服系统:
- • 售前咨询 →
sales智能体 - • 技术支持 →
tech智能体 - • 账单问题 →
billing智能体
完整配置

{
agents: {
list: [
{
id: "sales",
name: "售前顾问",
workspace: "~/.openclaw/workspace-sales",
default: false
},
{
id: "tech",
name: "技术支持",
workspace: "~/.openclaw/workspace-tech",
default: false
},
{
id: "billing",
name: "账单助手",
workspace: "~/.openclaw/workspace-billing",
default: false
},
{
id: "main",
name: "通用助手",
workspace: "~/.openclaw/workspace-main",
default: true
}
],
},
bindings: [
// WhatsApp 售前群
{
match: {
channel: "whatsapp",
peer: { kind: "group", id: "120363403215116621@g.us" }
},
agentId: "sales"
},
// Telegram 技术支持群
{
match: {
channel: "telegram",
peer: { kind: "group", id: "-100123456789" }
},
agentId: "tech"
},
// Slack 账单频道
{
match: {
channel: "slack",
channelId: "C123456789"
},
agentId: "billing"
}
],
broadcast: {
// VIP 客户群,三个智能体同时响应
"vip-group-id@g.us": ["sales", "tech", "billing"]
}
}十、常见问题与排查
问题 1:消息没有路由到正确的智能体
检查清单:
- 1. 确认
bindings配置中的channel名称正确 - 2. 确认
peer.id或groupId与实际一致 - 3. 检查匹配优先级,是否有更高优先级的规则覆盖了你的配置
问题 2:会话上下文丢失
可能原因:
- 1.
SessionKey格式变化导致历史对话无法关联 - 2. 存储路径配置错误
- 3. 智能体 ID 变更
问题 3:广播组不工作
排查步骤:
- 1. 确认
broadcast.strategy设置为"parallel" - 2. 确认目标智能体都已正确配置并运行
- 3. 检查触发条件是否满足(如提及/激活门控)
总结
OpenClaw 的渠道路由系统是一个强大而灵活的消息分发引擎:
- • 确定性路由 - 规则驱动,行为可预测
- • 多智能体支持 - 通过广播组实现复杂场景
- • 跨渠道上下文 - WebChat 统一管理
- • 灵活的会话存储 - 支持自定义路径
理解并掌握渠道路由,你就能搭建出专业级的多智能体消息处理系统,让每个 AI 都在正确的位置发挥最大的价值。
下一步:
- • 查看广播组详细文档
- • 阅读渠道故障排除指南
- • 开始配置你的第一个渠道路由规则
夜雨聆风