夜雨聆风学习资料网

ARTICLE · 1013089

OpenClaw 接入微信频道:从连接到自动回复,附一次真实推送翻车

OpenClaw 接入微信频道:从连接到自动回复,附一次真实推送翻车

先说结论

OpenClaw 接微信不难,因为渠道是官方插件,不用自己写协议。难点在连接稳定性:它依赖长连接,服务器重启、网络抖动、心跳超时都会让推送静默失败——而且失败时不报错,只是"没收到"。
这篇解决的是:怎么接上,以及接上之后怎么确认它真的在干活。

场景:我要微信干什么

我需要 OpenClaw 做三件事:
每天把生成的「养虾日报」推到我的微信
内容工厂、项目日报等定时任务完成后通知我
我能在微信里直接问它问题,它回我
就是让 AI 助手常驻在微信里,不用开电脑、不用开网页。

配置步骤

步骤 1:确认频道已安装

openclaw channels list
本机输出(真实):
Chat channels:
  • Telegram default: installed, configured, enabled
  • openclaw-weixin default: installed, configured, enabled
  • openclaw-weixin e471ee286ee5-im-bot: installed, configured, enabled
看到 openclaw-weixin ... enabled 就说明插件在、账号也在。

步骤 2:登录(首次需要扫码)

openclaw channels login --channel openclaw-weixin
会弹出二维码,用微信扫。账号文件落在:
/root/.openclaw/openclaw-weixin/accounts/.json

步骤 3:配置定时任务推送到微信

cron 任务里指定 channel: openclaw-weixin 即可。本机有几个走微信推送的定时任务(例如每日「养虾日报」),具体时间属于内部调度,这里不展开——你只要知道渠道接好后,任何 cron 任务都能把结果推到这个微信。
配置示例(在 cron 任务里加一段投递设置):
delivery:
channel: openclaw-weixin
to: <你的微信账号>

步骤 4:确认它真连着

openclaw status
本机显示:
│ openclaw-weixin │ ON      │ OK     │ configured
configured 表示账号配好了,但不代表长连接活着——这点下面翻车记录会说到。

翻车记录(今天真实发生的)

现象:任务成功,微信收不到
2026-09-07 早上,几个定时任务全部触发,但我的微信一条都没收到。
查投递状态(真实命令与结果):
openclaw cron runs --id <你的任务ID> --limit 1
返回(节选):
{
"status": "ok",
"delivery": {
"intended": {"channel": "openclaw-weixin", "to": "o9cq80-...@im.wechat"},
"resolved": {"ok": true},
"fallbackUsed": true,
"delivered": false
}
}
最迷惑的地方:status: ok(任务跑成功了),resolved.ok: true(投递解析成功了),但 delivered: false(没送到)。
也就是说——OpenClaw 以为它发出去了,微信那边没收到。这种"成功但没到"比直接报错更难排查。

排查线索

心跳失败:openclaw status 里有一行 Last heartbeat failed · openclaw-weixin。心跳是维持长连接的保活机制,它失败 = 连接已经断了。
时间窗:最后一次成功推送是 09-06 06:34,09-07 全天 0 送达。说明连接在某个时间点断了,没自动恢复。
fallbackUsed: true:系统尝试了备用投递路径,也没成。

当前状态(诚实说明)

根因还没完全定位。可能是凌晨网络抖动导致长连接断开后没重连,也可能是账号 session 过期。已经做了两件事:
配置无改动,等今晚新一轮 cron 观察是否自动恢复(长连接有时能自愈)
保留 openclaw channels dead-letters list 作为排查入口(这个命令能列出失败的事件)

避免再踩的 3 条经验

别只看 status: ok。任务成功 ≠ 推送成功。要定期查 delivery.delivered 字段。
心跳失败是预警。看到 Last heartbeat failed 就该警惕,不等用户来问"今天怎么没收到"。
cron 推送失败要告警,不能静默。任务成功但投递失败时,应该单独发一条告警给自己,而不是默默当作完成。

成本账单

项目 金额
openclaw-weixin 频道 ¥0(官方插件)
微信个人号 已有
服务器/API 已有
纯新增成本:0 元。 微信渠道是 OpenClaw 内置的,不像某些方案要买企业号或第三方中转。

效果

微信频道已配置并 enabled
几个定时任务都挂上了微信推送
今天发现推送静默失败的坑,并记录下排查路径
待解决:推送稳定性。这是长连接方案的固有弱点,后面会专门写一篇"怎么给 OpenClaw 推送加健康检查 + 失败告警",把今天这个坑彻底填上。

相关学习资料