问题一:Bot 回复被拆成多条碎片消息
现象
微信 Bot(WeChat)收到一条消息后,回复被拆成多条独立消息发送:
用户: 你好
Bot: 你好
Bot: !有什么可以帮你的?
Bot: 你好
Bot: !请问有什么具体的编码任务我可以帮你处理?
根因
internal/bot/render.go 中 maybeFlush() 硬编码 500ms 间隔:
func (s *renderSink) maybeFlush() {
if time.Since(s.lastFlush) > 500*time.Millisecond {
s.flush()
}
}
模型流式输出时,event.Text 事件之间间隔超过 500ms 就会触发 flush,导致回复被拆成多条消息。
建议修复
- 将 flush 间隔改为可配置(如
flush_interval_ms)
- 或者延迟 flush 到
event.TurnDone,一次性发送完整回复
- QQ Bot 也有同样的问题
问题二:CLI Bot 会话不持久化,「打开对应会话」按钮无效
现象
Desktop GUI 的 Bot 设置里"打开对应会话"按钮始终置灰(sessionId 为空)。因为 CLI Bot (reasonix bot start) 的会话仅存于内存,不会生成 .jsonl 会话文件,sessionMappings 无法更新。
建议
- CLI Bot 支持持久化会话到磁盘(
.jsonl)
- 自动更新
session_mappings 的 session_id
- 这样 Desktop 就能打开对应的聊天记录
环境
- Reasonix Desktop: v1.7.0
- Reasonix CLI: 1.7.0-rc.1 (自编译)
- Bot 渠道: WeChat iLink
- 模型: deepseek-v4-pro / deepseek-v4-flash
问题一:Bot 回复被拆成多条碎片消息
现象
微信 Bot(WeChat)收到一条消息后,回复被拆成多条独立消息发送:
根因
internal/bot/render.go中maybeFlush()硬编码 500ms 间隔:模型流式输出时,
event.Text事件之间间隔超过 500ms 就会触发 flush,导致回复被拆成多条消息。建议修复
flush_interval_ms)event.TurnDone,一次性发送完整回复问题二:CLI Bot 会话不持久化,「打开对应会话」按钮无效
现象
Desktop GUI 的 Bot 设置里"打开对应会话"按钮始终置灰(
sessionId为空)。因为 CLI Bot (reasonix bot start) 的会话仅存于内存,不会生成.jsonl会话文件,sessionMappings无法更新。建议
.jsonl)session_mappings的session_id环境