带工具调用的流式回复在切换对话后消失或显示为空白

问题现象: 在一个包含工具调用/长输出的对话里,助手明明已经执行了操作并产生了最终回复,但聊天界面显示为空回复,或者切换到其他对话再切回来后,这条回复直接消失。

复现条件(高概率):

  1. 在当前会话里发送一个需要工具执行的请求 例如:让助手读取网页、抓取内容、查询本地技能,并整理成表格

  2. 助手开始执行工具调用,并产生较长的中间输出

  3. 在助手回复过程中,用户切换到其他对话,或者会话列表/消息列表发生刷新

  4. 再切回原对话

实际结果:

  • 有时会看到一个“空白回复气泡”

  • 有时中间工具过程存在,但最终正文回复不显示

  • 有时刚才还能看到回复,切换对话后再回来,这条回复消失

  • 重新进入会话后,消息列表中似乎没有这条最终回复,像是没有持久化成功,或被前端状态覆盖

预期结果:

  • 助手的最终回复应该稳定显示

  • 即使用户切换对话再回来,已生成的回复也应从服务端/本地缓存正确恢复

  • 工具输出与最终正文应正确合并或按顺序展示,不应出现空消息气泡或消息丢失

额外线索:

  • 问题更容易出现在“工具调用 + 长输出 + 流式回复 + 中途切换会话”组合下

  • 从行为上看,像是: 1)前端流式消息临时状态未持久化 2)工具消息和最终 assistant 消息合并逻辑异常 3)切换会话后重新拉取消息列表时,本地临时消息被覆盖 4)最终 assistant message 已生成但未正确入库/未被前端渲染层识别

建议排查方向:

  • assistant final message 的创建、落库、message id 绑定流程

  • tool message 与 final assistant message 的关联关系

  • 会话切换时的本地状态清理/重建逻辑

  • websocket/stream 中断后的补拉与 reconcile 逻辑

  • 空 content message 是否被错误渲染成正常消息气泡

Please authenticate to join the conversation.

Upvoters
Status

In Review

Board
💡

Feature Request

Date

About 2 hours ago

Author

Obet Sajjad

Subscribe to post

Get notified by email when there are changes.