Skip to content

[Bug]: 流式输出的助手文本被重复渲染多次(模型实际只输出一次) #2778

Description

@QZQ-go

Summary

在长 agent 会话(多轮工具调用 + 流式文本输出)中,UI 里同一条助手文本段落会重复显示多次(实测同一句完整句子渲染了约 8 遍),看起来像模型陷入了重复输出循环。

排查本地会话日志后确认:模型实际只输出了这句话一次,重复发生在桌面端渲染层。

期望行为:流式 chunk 到达时应更新(replace)同一条消息的累积文本,而不是重复追加渲染。

Area

Desktop app

Reproduction or evidence

现象

一次包含大量工具调用的 agent 任务中,模型在某个 round 输出一句话后,聊天界面里这句话完整重复出现了约 8 次,中间还穿插正常的命令卡片,视觉上像是模型在复读。

证据 A:持久化会话记录

sessions/<sessionId>/turns/turn-XXXX.json 中该 turn 共 17 个 model round,目标句「看来只有 part3 入队成功,补上 part1/2。」仅在 round 13 的 textItems 中出现 1 次;其余 round 文本各不相同、逻辑连贯("走 DLink 中转…" → "KatFile 三卷全部有效…" → "part1/2 还在排队…"),无循环。

证据 B:原始流式事件

~/.bitfun/runtime-events/<sessionId>.jsonl 共 38 个 TextChunk 事件。该句被拆成 6 个 chunk 依次到达:
"看来" / "只有 part3 入" / "队成功" / "," / "补" / "上 part1/2。"
每个 chunk 仅出现一次,整个事件流中该句相关文本无任何重复。

结论

模型侧输出正常,重复发生在客户端渲染层。怀疑方向:流式更新时按 chunk 把累积全文重复 append(而非 replace 同一条消息),或事件重放/断线重连时同一条消息被重复渲染。

本地排查用 sessionId:613dcec9-7526-47b9-8890-11c9ce6d59ae

Environment, if relevant

BitFun version/commit: 桌面版 0.2.19 (com.bitfun.desktop)
OS: macOS
Browser/device: BitFun 桌面客户端
Model/provider: GLM-5.3(agent 会话,3 turn / 52 次工具调用,开启自动批准)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions