Repository navigation
[Bug][Desktop] 特定旧会话只能输出 Reasoning,Text 正文通道持续缺失 #11604
1. 环境信息(Environment)
异常会话 ID: Available upon request(如开发者需要,可私下提供)。 2. 问题描述(Description)一个已经持续使用较长时间的旧会话突然出现异常:Assistant 不再正常通过 Text 通道输出回复正文,而是将生成的内容全部或几乎全部输出到 Reasoning(思考)区域。 目前确认:
因此,这似乎不是全局模型配置问题,而是与特定会话状态或处理流程有关。 3. 故障时间线(Timeline)根据原始会话日志:
这表明问题是在已有会话运行过程中出现的,并且偶尔会短暂恢复。 4. 原始日志分析(Session Log Evidence)检查了原始会话文件及独立保存的故障现场备份:
在 Turn 558–563 中发现:
这意味着问题不只是 UI 将正常正文错误地显示在 Reasoning 区域。至少在 DSH 保存的流式事件和最终消息数据中,Text 区块本身就不存在。 不过,目前无法确认是 DeepSeek 服务端没有返回 Text,还是 DSH 的 DeepSeek Adapter 在接收、解析或保存流式响应时丢失了 Text。 5. 已完成的排查(Investigation)5.1 请求配置检查了故障发生前后的
没有发现相关配置变化。 5.2 会话压缩(Compaction)第四次完整压缩发生在 Turn 523,但压缩后 Turn 524–536 仍然能够正常输出 Text。 因此,目前没有证据证明这次压缩直接导致故障。 5.3 Inbox 消息处理检查了故障时间段内的 消息插入和移除操作总体规律一致,暂时没有发现明显的队列异常。 5.4 Delivery Accepted检查了 79 条
这些事件不包含原始模型响应或 Text/Reasoning 流式内容。 5.5 故障时间段内的事件类型检查范围: 没有发现独立记录的 5.6 DSH 诊断包另外检查了 DSH 导出的诊断 JSON。 诊断包没有包含当前故障时刻的 DeepSeek 原始响应体或完整 Provider 流式响应,因此无法直接判断问题发生在服务端还是客户端。 其中发现的一些旧错误发生在当前故障之前,目前没有证据证明它们与本次问题直接相关。 6. 当前判断(Current Assessment)目前主要有两种可能: 可能 A: DeepSeek 服务端或 API 返回的响应流本身缺少正常 Text 内容。 可能 B: DSH 的 DeepSeek Adapter 在流式接收、解析、分块合并或消息保存过程中,没有正确处理 Text 区块。 目前已经确认的是:DSH 保存的异常响应流和最终消息中都缺少 Text,但尚不能确定真正原因。 考虑到相同 Provider、Model 和配置在新会话中工作正常,而旧会话出现异常,希望开发者特别关注:
7. 希望开发者协助确认的问题(Questions)
8. 数据保护情况(Data Preservation)目前已经保留:
故障现场备份已经通过 SHA-256 校验,确认与原始文件一致。 目前没有执行任何破坏性操作,包括删除会话历史、重置会话、重建会话、修改原始会话文件或清理历史记录。 希望能够在不丢失、不修改现有会话历史的前提下,进一步定位并解决这个问题。 如果开发者需要,我可以在确认隐私保护方式后提供相关诊断材料。 |
Replies: 4 comments
更新(2026-11-01):已找到有效的恢复方法,原会话成功重新输出 Text经过进一步排查,目前已通过 DSH 内置的 1. 新确认的故障证据进一步核查发现,Turn 534 的最后一步(534.3)就已出现 reasoning-only 输出。Turn 536 仍有正常 Text,但之后异常开始频繁出现。 例如:
这些差异已通过 Session 中持久化的消息与 stream 结构确认,并非单纯的 UI 显示问题。 2. 找到另一个独立的 UI 折叠问题DSH 的 Work details 设为 Standard 等折叠模式时,如果某个已完成 Turn 的最后一步没有正常 Text,之前步骤中已经生成的正文也可能被一起折叠隐藏。 将设置改为:
能够重新显示这些已有的正文内容。 但这只能解决显示问题,无法修复真正没有 3. 通过 Branch 验证恢复方向从故障前最后一个完整正常的 Turn 533 创建新分支后,新会话连续两次成功生成正常正文,包括一次需要理解历史上下文的回答。 这提示后续对话历史或模型实际接收的上下文状态可能参与了故障,但不能据此确定根因。 4. 原会话通过
|
补充:Adapter 与原始 SSE 排查对当前安装版本的 DeepSeek Adapter 进行了静态源码检查,未发现合法标准 但 Session 中保存的 stream 并不等同于 Provider 原始 SSE。此前准备过 metadata-only SSE Observer,最终没有执行真实响应采集,因此仍无法确定上游是否实际发送了 Text。 此外,重启 DSH 并未解决原故障会话的持续 reasoning-only 问题。最终有效的恢复步骤是后续手动执行的 |
后续更新:
|
更新(2026-11-02): |
更新(2026-11-02):
/compact后故障复发;切换 V4 Pro 后持续恢复正常继续补充原故障会话的后续观察。本次发现了一个比此前
/compact更持久的恢复方向:在保留原 Session 和历史记录的情况下,将模型从deepseek-flash切换至deepseek-v4-pro。目前原会话已在 Pro 下连续运行二十多个后续 Turn,在此前容易出现异常的对话场景中,暂未观察到 reasoning-only 或短句重复循环复发。
1.
/compact并未彻底解决故障此前更新中,原会话在第 5 次 Compaction 后,于 Turn 565 成功恢复了正常 Text 输出。
但后续使用证明,这只是暂时恢复。
在继续使用
deepseek-flash的过程中,原会话再次出现:Turn
completed,但最终只有 reasoning、没有非空 Text;短句反复生成,例如「好。」「写。」「做。」一类自我指令;
长时间重复推理,需要用户主动终止;
偶尔自行恢复正常,随后再次复发。
其中两个比较明显的案例:
Turn | 状态 | 观察结果 -- | -- | -- 737 | aborted | 约 79,498 个 reasoning 字符,严重短周期重复 751 | aborted | 约 8,710 个 reasoning 字符,出现类似交错式循环以上是 reasoning 字符数量,不是 Token 用量。
因此,需要修正此前的恢复结论:
/compact可以暂时恢复正常输出,但目前不能视为可靠的长期修复。2. 保留原 Session,直接…