Skip to content

[bot] 回复碎片化 + CLI Bot 会话不持久化 #4293

@biaowuqiong

Description

@biaowuqiong

问题一:Bot 回复被拆成多条碎片消息

现象

微信 Bot(WeChat)收到一条消息后,回复被拆成多条独立消息发送:

用户: 你好

Bot: 你好
Bot: !有什么可以帮你的?
Bot: 你好
Bot: !请问有什么具体的编码任务我可以帮你处理?

根因

internal/bot/render.gomaybeFlush() 硬编码 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_mappingssession_id
  • 这样 Desktop 就能打开对应的聊天记录

环境

  • Reasonix Desktop: v1.7.0
  • Reasonix CLI: 1.7.0-rc.1 (自编译)
  • Bot 渠道: WeChat iLink
  • 模型: deepseek-v4-pro / deepseek-v4-flash

Metadata

Metadata

Assignees

No one assigned

    Labels

    agentCore agent loop (internal/agent, internal/control)desktopWails desktop app (desktop/**)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions