OpenClaw WeChat 插件 Bug 反馈
环境信息
- OpenClaw 版本:2026.5.20
- WeChat 插件版本:2.4.4(@tencent-weixin/openclaw-weixin)
- 操作系统:WSL2 (Ubuntu 26.04 on Windows)
- 会话类型:openclaw-weixin direct
Bug 描述
WeChat 频道在多步任务执行过程中,中间助手回复消息无法送达微信,仅最终回复可送达。
具体表现:当我通过微信发一条需要多步工具调用的复杂指令时(如"查手机参数并生成报告"),助手在执行任务期间的中间回复(工具调用状态、进度更新等)全部丢失,微信端完全收不到。只有任务全部结束后的一条最终回复才能收到。
复现步骤
- 通过微信发送指令:
"去新浪财经网上抓取十条热点新闻总结内容后把摘要发给我"
- 观察微信端:
- 助手说"好的,我上新浪财经抓新闻" → 微信未收到
- 助手说"首页没有抓到新闻列表,换个方式" → 微信未收到
- 助手发送最终摘要(含10条新闻) → 微信收到1条
- 统计各消息的送达情况:10条中间消息全部丢失,只有最终1条到达
消息送达记录(实测)
| 消息时间 |
消息内容简述 |
收到情况 |
| 14:20 |
Gateway 运行正常,发条测试确认下 |
否 |
| 14:20 |
收到了,但你的上一条微信我这边没看到 |
否 |
| 14:21 |
收到,微信现在正常了!我来查一下国内主流手机厂商的最新旗舰机型 |
否 |
| 14:21 |
数据收集完了,现在写文件 |
否 |
| 14:21 |
搞定了!已放到你桌面:2026旗舰手机对比分析.md |
否 |
| 14:30 |
日志分析结果很清晰…… |
是 |
| 14:35 |
日志分析完了,关键发现…… |
否 |
| 14:44 |
确认了——你说得对,14:30 是你关网页的时间…… |
否 |
| 14:44 |
日志确认了…… |
是 |
| 14:53 |
好消息!说明微信投递是正常的…… |
是 |
| 14:59 |
我这边收到你的微信消息了。thinking block——当前会话显示 Think: off |
是 |
| 15:01 |
收到。之前关掉 thinking 是为了排查问题…… |
是 |
| 15:09 |
我通过微信收到你的消息了,thinking block 应该已经开着。开始执行任务 |
否 |
| 15:09 |
现在生成一个真正的横向对比表 |
否 |
| 15:09 |
搞定了…… |
是 |
**统计结果:15条消息,9条未送达(60%),6条送达(40%)**规律:任务执行过程中工具运行时的消息 100% 丢失,只有最终回复才能到达。
已排除的因素
- ✅ thinking block:关闭和开启状态下均出现此问题,已排除
- ✅ 消息长度:中间消息有的仅几十字,最长900字,均未送达;最终回复(909字)反而送达
- ✅ 网页端开关:网页端关闭(webchat disconnected)期间,消息依然有部分送达;网页端开着时中间消息同样丢失
- ✅ 工具调用次数:SSH 安装任务(12次工具调用,中间10条全丢)和新闻任务(3次工具调用,中间2条全丢)均符合同一规律
- ✅ 微信长连接:双向消息投递在最终回复阶段正常
根因分析(推测)
根据源码分析(openclaw-weixin 2.4.4),微信插件使用 BatchSession 机制缓冲消息:
- 文件位置:
dist/src/streaming/batch-session.js
- 行为:BatchSession 在
finalize() 时才将所有 thinking + toolCall + text 一次性发送
- 问题:工具执行期间的消息被缓冲,只有当任务结束时才 flush 到微信
这导致中间进度消息无法实时送达微信,用户在任务执行期间看到的是完全沉默,直到最终结果突然出现。
复现项目
可复现项目:
openclaw/wechat(官方微信插件)
- 任何需要多步工具调用的复杂指令
相关文件
- 微信插件源码:
~/.openclaw/npm/node_modules/@tencent-weixin/openclaw-weixin/dist/src/streaming/batch-session.js
- 插件版本:2.4.4
- 日志文件:
/tmp/openclaw/openclaw-2026-05-26.log
期望行为
中间助手回复(工具执行状态、进度更新等)应在生成时实时推送到微信,而不是等到任务全部结束后才批量发送。用户希望在长时间任务执行期间能够看到实时进度,而非完全沉默直到结束。
OpenClaw WeChat 插件 Bug 反馈
环境信息
Bug 描述
WeChat 频道在多步任务执行过程中,中间助手回复消息无法送达微信,仅最终回复可送达。
具体表现:当我通过微信发一条需要多步工具调用的复杂指令时(如"查手机参数并生成报告"),助手在执行任务期间的中间回复(工具调用状态、进度更新等)全部丢失,微信端完全收不到。只有任务全部结束后的一条最终回复才能收到。
复现步骤
"去新浪财经网上抓取十条热点新闻总结内容后把摘要发给我"消息送达记录(实测)
2026旗舰手机对比分析.mdThink: off**统计结果:15条消息,9条未送达(60%),6条送达(40%)**规律:任务执行过程中工具运行时的消息 100% 丢失,只有最终回复才能到达。
已排除的因素
根因分析(推测)
根据源码分析(openclaw-weixin 2.4.4),微信插件使用
BatchSession机制缓冲消息:dist/src/streaming/batch-session.jsfinalize()时才将所有 thinking + toolCall + text 一次性发送这导致中间进度消息无法实时送达微信,用户在任务执行期间看到的是完全沉默,直到最终结果突然出现。
复现项目
可复现项目:
openclaw/wechat(官方微信插件)相关文件
~/.openclaw/npm/node_modules/@tencent-weixin/openclaw-weixin/dist/src/streaming/batch-session.js/tmp/openclaw/openclaw-2026-05-26.log期望行为
中间助手回复(工具执行状态、进度更新等)应在生成时实时推送到微信,而不是等到任务全部结束后才批量发送。用户希望在长时间任务执行期间能够看到实时进度,而非完全沉默直到结束。