OpenClaw Series

这篇文章属于 OpenClaw 排错与渠道接入总览篇

如果你已经把 OpenClaw 装上了,但不知道问题到底卡在 Gateway、Dashboard、pairing,还是聊天渠道本身,这篇可以直接当总排查手册用;如果你还没安装完,建议先去看安装实战篇。

本文按 2026 年 4 月 2 日可查到的 OpenClaw 官方 Channels、Pairing、Gateway Troubleshooting、Dashboard 与 openclaw message 文档整理。重点不是把参数堆满,而是帮你先分清问题层级,再决定该接哪个应用、怎么接、接不上时先查什么。

先说结论:OpenClaw 真正最稳的路线,是先本地跑通,再只接一个外部应用

如果你现在的目标是“别折腾半天还不知道问题在哪”,最稳的顺序其实只有 4 步:

  1. 先用 openclaw dashboard 把本地浏览器聊天跑通
  2. 再用命令梯子把 Gateway / pairing / policy 全查一遍
  3. 只新增 1 个你最常用的聊天渠道
  4. 单渠道跑通后,再考虑第二个应用

不要一上来就同时上:

  • Telegram
  • Discord
  • Slack
  • WhatsApp
  • 再加群聊、线程、allowlist、远程访问

因为一旦你同时把这些变量都打开,后面你根本分不清问题到底出在:

  • Gateway 没起来
  • Dashboard token 不对
  • DM pairing 没批准
  • groupPolicy 拦住了
  • requireMention 没满足
  • 平台权限没开全

所以这篇文章会一直坚持一个原则:

先验证本地闭环,再扩展外部渠道。


一、先把本地最小闭环跑通

官方当前的最快第一次聊天路径,仍然是本地 Control UI,也就是:

1
openclaw dashboard

如果你连本地浏览器都还没跑通,就不要先去怪 Telegram、Discord 或 Slack。

先确认下面这几个点:

  • openclaw dashboard 能给出本地地址
  • openclaw gateway statusRuntimerunning
  • RPC probeok
  • 你能在浏览器里真正发出第一条消息

如果你本地聊天页本身就打不开,可以先回看这篇更细的排错文:


二、所有渠道通用的排错梯子

OpenClaw 官方当前给出的渠道排错梯子,可以直接记成下面这 5 条:

1
2
3
4
5
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe

健康基线通常应该长这样:

  • Runtime: running
  • RPC probe: ok
  • 你已经配置过的 channel 在 channels status --probe 里显示 connectedready

如果“渠道状态看起来在线,但就是没有回消息”,官方当前更建议你继续查这 4 件事:

1
2
3
openclaw status
openclaw channels status --probe
openclaw logs --follow

你重点看的是:

  • 有没有 pending pairing
  • 有没有 mention required
  • 有没有 allowlist mismatch
  • 有没有 401403missing_scopenot_in_channel
  • 当前真正生效的配置文件,到底是不是你在改的那份 ~/.openclaw/openclaw.json

只要这套顺序跑熟了,后面不管你接 Telegram、Discord、Slack,还是 WhatsApp,排错逻辑都不会乱。


三、接入聊天应用前,先理解 4 条共同规则

1. pairing 不是报错,它是默认安全门

OpenClaw 官方当前把很多 DM 渠道的默认策略都设成 pairing

这意味着:

  • 陌生私聊进来时,不会立刻放行
  • 对方会拿到一个短验证码
  • 只有你批准之后,这个发送者才真正被允许跟 OpenClaw 对话

常见批准写法:

1
2
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>

同样的逻辑也适用于:

  • discord
  • slack
  • whatsapp

所以很多人看到“对方发来了消息但 OpenClaw 没回复”,其实不是坏了,而是 pairing 还没批。

2. 群聊能不能回,不只看“加没加群”,还看 groupPolicy

OpenClaw 在群聊里通常不是默认全开,而是默认更保守。

你要分清 3 件事:

  • 这个群本身有没有被允许
  • 群里哪些人可以触发它
  • 回复时是否必须 @mention

很多“机器人明明在线但在群里装死”的问题,最后都不是 token 错,而是:

  • groupPolicy 没放开
  • 群没进 allowlist
  • requireMention 还开着

3. requireMention 没关时,它不会主动接每一条群消息

这一条在 Discord、Slack、Telegram 群聊、WhatsApp 群聊里都很关键。

默认更保守的行为通常是:

  • 你在群里 @ 它,它才回
  • 或者你在回复它的线程里继续聊,它才继续

所以如果你想把它放进自己的私有群,做“全程在线型助理”,通常要明确关掉:

  • 服务器级 requireMention
  • 或某个频道 / 群组级 requireMention

4. 多个渠道都配好以后,--channel 就别靠猜了

官方当前 openclaw message 文档写得很清楚:

  • 如果只配置了 1 个渠道,它会自动当默认值
  • 如果配置了多个渠道,--channel 就是必需项

所以一旦你已经同时配了:

  • Telegram
  • Slack
  • Discord

那你再手工发消息测试时,就不要写得模模糊糊,直接明确写:

1
openclaw message send --channel telegram --target @your_username --message "hello"

四、Telegram:最适合先做个人助理

如果你是第一次从“浏览器聊天”扩展到“手机随时问”,我最建议先上 Telegram。

原因很简单:

  • 配置路径清晰
  • 个人私聊最容易理解
  • 群聊策略也比较直观
  • pairing、group allowlist、topic/thread 都有比较完整的官方文档

最小接入思路

第一步,去 @BotFather 创建 bot token。

第二步,把 Telegram 配到 ~/.openclaw/openclaw.json,最小形态可以先这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "123:abc",
"dmPolicy": "pairing",
"groups": {
"*": {
"requireMention": true
}
}
}
}
}

第三步,启动或重启 Gateway:

1
openclaw gateway

第四步,第一次私聊你的 bot,然后批准 pairing:

1
2
openclaw pairing list telegram
openclaw pairing approve telegram <CODE>

第五步,做一次主动发送测试:

1
openclaw message send --channel telegram --target @your_username --message "Hello from OpenClaw"

Telegram 最容易踩的坑

1. 配完 token 了,但还跑 channels login

Telegram 当前不是靠扫码登录的那类渠道。

它的核心做法是:

  • 配 token
  • 起 gateway
  • 批 pairing

不是:

  • openclaw channels login telegram

所以你如果老想着“为什么 Telegram 没有二维码登录”,方向一开始就错了。

2. 群里不回消息

这通常优先看 3 件事:

  • requireMention 是否还是 true
  • BotFather 的 privacy mode 有没有关
  • 机器人重新加群了没有

官方当前文档特别提醒:

  • Telegram bot 默认 privacy mode 会限制它看到的群消息
  • 你如果改了 /setprivacy
  • 最好把 bot 退群再重新拉进群一次

3. 你把群 ID 和用户 ID 配混了

Telegram 这里很容易犯一个经典错误:

  • 群 ID 是负数,应该放在 groups
  • 用户 ID 是正数,才该放在 allowFrom / groupAllowFrom

如果你把这两种 ID 混着写,最后常见现象就是:

  • 看起来像是 allowlist 配了
  • 实际上一个也没放通

4. 明明能连网,但日志一直报 Telegram 请求失败

这种情况优先看:

  • 出口网络是否能访问 api.telegram.org
  • DNS 有没有被拦
  • 本机代理 / VPS 出口有没有把 Telegram API 卡住

如果你不确定用户 ID,官方当前更推荐的稳妥做法是:

1
openclaw logs --follow

然后自己给 bot 发一条私聊,从日志里直接读 from.id


五、Discord:最适合团队频道和线程协作

如果你后面是想把 OpenClaw 放到团队讨论里,Discord 会比 Telegram 更像一个“工作空间内助理”。

它的优点在于:

  • 支持 DM
  • 支持 guild channel
  • 支持 thread
  • 每个频道天然是独立上下文

最小接入思路

第一步,在 Discord Developer Portal 新建应用并加一个 bot。

第二步,至少打开下面两个 Intents:

  • Message Content Intent
  • Server Members Intent

第三步,先准备环境变量:

1
2
export DISCORD_BOT_TOKEN="YOUR_BOT_TOKEN"
openclaw gateway restart

然后把它引到 ~/.openclaw/openclaw.json

1
2
3
4
5
6
7
8
9
10
11
12
{
"channels": {
"discord": {
"enabled": true,
"token": {
"source": "env",
"provider": "default",
"id": "DISCORD_BOT_TOKEN"
}
}
}
}

第四步,第一次给 bot 发 DM,批准 pairing:

1
2
openclaw pairing list discord
openclaw pairing approve discord <CODE>

第五步,主动发一条测试消息:

1
openclaw message send --channel discord --target channel:1234567890 --message "今天的部署已经完成"

Discord 最容易踩的坑

1. bot 在线,但服务器里完全不理人

这是 Discord 最典型的问题之一,优先查:

  • Message Content Intent 开没开
  • 改完 intent 之后有没有重启 gateway
  • groupPolicy 有没有挡住
  • channels.discord.guilds 下有没有把 guild / channel 放进允许范围
  • requireMention 是不是还开着

2. 私有服务器里也要每条都 @ 它,聊起来很烦

Discord 当前默认仍然偏保守,guild channel 里通常要 @mention 才回。

如果这是你自己的私有服务器,通常可以在 guild 配置里显式关掉:

1
2
3
4
5
6
7
8
9
10
11
{
"channels": {
"discord": {
"guilds": {
"YOUR_SERVER_ID": {
"requireMention": false
}
}
}
}
}

这样它就更像一个常驻频道助理,而不是必须每次都被点名才说话的机器人。

3. 你以为“一个 Discord”就是一个上下文

实际上 Discord 场景里更真实的情况是:

  • DM 是一套上下文
  • 每个 guild channel 是一套上下文
  • 每个 thread 也可能是另一套上下文

所以 Discord 适合做:

  • #research
  • #coding
  • #ops

这种按主题拆开的长期协作,不适合你把所有事情都丢进同一个频道然后怪它“记忆太乱”。

4. Group DM 没反应

官方当前文档写得很明确:

  • Group DM 默认是忽略的
  • 如果你真要用 Group DM,要额外开 channels.discord.dm.groupEnabled

所以不要默认以为 Discord 的“私聊都一样”。


六、Slack:最适合工作流和组织协作,但权限最容易漏

Slack 的特点不是“最难”,而是“最容易少开一项就半通不通”。

它很适合:

  • 团队通知
  • 日报频道
  • 运营 / 支持协作
  • 内部工作流型问答

最小接入思路

官方当前默认更推荐 Socket Mode。

第一步,在 Slack App 设置里:

  • 开启 Socket Mode
  • 创建 xapp-... 的 App Token
  • 安装应用,拿到 xoxb-... 的 Bot Token

第二步,订阅基础事件,至少包括:

  • app_mention
  • message.channels
  • message.groups
  • message.im
  • message.mpim

同时记得启用:

  • App Home Messages Tab

第三步,把 Slack 配到 ~/.openclaw/openclaw.json

1
2
3
4
5
6
7
8
9
10
{
"channels": {
"slack": {
"enabled": true,
"mode": "socket",
"appToken": "xapp-...",
"botToken": "xoxb-..."
}
}
}

或者走环境变量:

1
2
export SLACK_APP_TOKEN="xapp-..."
export SLACK_BOT_TOKEN="xoxb-..."

第四步,启动 Gateway:

1
openclaw gateway

第五步,第一次私聊时批准 pairing:

1
2
openclaw pairing list slack
openclaw pairing approve slack <CODE>

第六步,主动往某个频道发一次测试消息:

1
openclaw message send --channel slack --target channel:C12345678 --message "这是一条 Slack 测试消息"

Slack 最容易踩的坑

1. Socket Mode 根本连不上

这时候不要先折腾代码,先查:

  • App Token 是不是 xapp-...
  • Bot Token 是不是 xoxb-...
  • Slack 后台的 Socket Mode 开没开

少了任何一个,表现都可能是:

  • 看起来配过了
  • 实际上 channel status 永远不 ready

2. DM 能进,频道却一直不回

官方当前给出的排查顺序很直接:

  • groupPolicy
  • channels.slack.channels
  • requireMention
  • 频道级 users allowlist

所以 Slack 常见的真实问题,不是“bot 死了”,而是:

  • 频道没放行
  • 频道里只允许特定人触发
  • 必须 @mention

3. 你想用 slash command,但压根没把模式想清楚

Slack 这里很容易混两套思路:

  • 原生 command 模式
  • 单 slash command 模式

如果你发现:

  • slash command 根本不触发
  • 或触发了但 OpenClaw 没接住

优先看的是:

  • 你到底是不是想用 channels.slack.commands.native: true
  • 还是只想跑一个 channels.slack.slashCommand
  • Slack 后台的 Request URL、Events、Interactivity 有没有都对上

4. HTTP 模式半通不通

如果你不是走 Socket Mode,而是走 HTTP Events API,那么要额外确认:

  • signingSecret
  • webhookPath
  • Slack 后台 Events、Interactivity、Slash Commands 的 URL

而且多账号时,每个账号的 webhookPath 最好都不一样。


七、WhatsApp:最像“手机私人助理”,但最依赖登录状态

如果你的目标是:

  • 手机直接给自己的助理发消息
  • 日常生活化使用
  • 亲友或个人小群辅助

那 WhatsApp 很有吸引力。

但它的特点也很明显:

  • 更依赖登录态
  • 更依赖二维码 / 账号状态
  • 更容易遇到“连上了但会偶发断开”

最小接入思路

第一步,先写访问策略。最小形态可以这样:

1
2
3
4
5
6
7
8
9
10
{
"channels": {
"whatsapp": {
"dmPolicy": "pairing",
"allowFrom": ["+8613812345678"],
"groupPolicy": "allowlist",
"groupAllowFrom": ["+8613812345678"]
}
}
}

第二步,首次登录 WhatsApp:

1
openclaw channels login --channel whatsapp

如果你还没装对应插件,当前流程会提示安装。

第三步,启动 Gateway:

1
openclaw gateway

第四步,批准第一次 pairing:

1
2
openclaw pairing list whatsapp
openclaw pairing approve whatsapp <CODE>

第五步,主动发一条测试消息:

1
openclaw message send --channel whatsapp --target +8613812345678 --message "Hello from OpenClaw"

WhatsApp 最容易踩的坑

WhatsApp 最常见的基础问题其实很直接:

  • 账号还没真的 link 好
  • 二维码没扫成功
  • 登录状态丢了

优先查:

1
2
openclaw channels status --probe
openclaw logs --follow

如果状态显示还没 linked,就直接重新走:

1
openclaw channels login --channel whatsapp

2. 明明 connected,但私聊没有回消息

这类问题官方当前给出的最快检查点就是:

1
openclaw pairing list whatsapp

因为 WhatsApp 的典型情况是:

  • 链路没问题
  • 但 sender 还没被批准

3. 群里不说话

官方当前文档建议你按这个顺序看:

  • groupPolicy
  • groupAllowFrom / allowFrom
  • groups allowlist
  • requireMention

所以 WhatsApp 群聊不回,第一怀疑对象通常不是“掉线”,而是策略拦住了。

4. 反复断开 / 重连

如果你看到的是这种症状:

  • 能连
  • 但不稳定
  • 经常重新登录

就优先看:

  • openclaw doctor
  • openclaw logs --follow

必要时直接重新 link。

另外官方当前文档还有一个很实际的建议:

如果条件允许,尽量给 OpenClaw 单独准备一个 WhatsApp 号码。

这样做的好处是:

  • allowlist 更清楚
  • 路由边界更清楚
  • 少很多“自己给自己发消息到底算谁”的混乱

如果你非要用自己的主号,官方当前也支持 personal-number 模式,但它会更依赖:

  • allowFrom
  • selfChatMode
  • 你是否清楚自己在和哪个账号对话

八、除了这 4 个,还有哪些主流应用可以接

按 2026 年 4 月 2 日我查到的 OpenClaw 官方渠道总览,当前除了 Telegram、Discord、Slack、WhatsApp 之外,还能看到这些常见路线:

  • Google Chat
  • Microsoft Teams
  • Signal
  • iMessage / BlueBubbles
  • Feishu / Lark
  • LINE
  • Matrix

其中你真正最容易立即上手的,还是前面这 4 个。

如果你现在的目标是:

  • 个人助理
  • 手机随时聊
  • 小团队先试用

那不建议第一天就去追:

  • 多插件平台
  • 多账号矩阵
  • 企业级审批流
  • 多群组多线程自动化

先把一个主渠道做成稳定入口,比“一次接十个平台”实用得多。


九、一个真正能照着执行的排错顺序

如果你已经装好了 OpenClaw,但现在就是觉得“哪里都像有问题”,那请按下面顺序,不要跳步。

第一步:先确认本地入口

1
2
openclaw dashboard
openclaw gateway status

先确认不是本地 Control UI 本身没起来。

第二步:确认服务与渠道总状态

1
2
3
openclaw status
openclaw channels status --probe
openclaw doctor

先看 Gateway、RPC、channel probe 是不是都健康。

第三步:如果是“能连但不回”,先查 pairing

1
2
3
4
openclaw pairing list telegram
openclaw pairing list discord
openclaw pairing list slack
openclaw pairing list whatsapp

你用哪个渠道,就查哪个,不要全靠猜。

第四步:如果是群聊不回,先查策略而不是重装

你重点看:

  • groupPolicy
  • allowFrom
  • groupAllowFrom
  • requireMention
  • channel / guild / groups allowlist

第五步:做一次主动发送测试

比如:

1
2
3
4
openclaw message send --channel telegram --target @your_username --message "ping"
openclaw message send --channel discord --target channel:1234567890 --message "ping"
openclaw message send --channel slack --target channel:C12345678 --message "ping"
openclaw message send --channel whatsapp --target +8613812345678 --message "ping"

主动发送能过,通常说明:

  • outbound 基本没问题
  • 问题更可能卡在 inbound policy、pairing 或 mention gating

第六步:最后才去看更复杂的平台权限细节

例如:

  • Discord intents
  • Slack Socket Mode / Signing Secret
  • Telegram privacy mode
  • WhatsApp link / re-link

因为如果你一开始就埋头改平台后台,往往会改了很多东西,仍然不知道问题到底解决没有。


十、最后给一个最实用的建议

如果你今天只打算完成一件事,我建议你这样选:

  • 想做个人手机助理:先上 Telegram
  • 想做团队频道协作:先上 Discord
  • 想接工作区和流程协作:先上 Slack
  • 想更像私人聊天入口:先上 WhatsApp

但无论你选哪个,顺序都别变:

先本地 Dashboard,后单渠道接入,再多渠道扩展。

只要你把这个顺序守住,OpenClaw 的很多“疑难杂症”,其实都会变成可以拆开的普通问题。


参考文档