Skip to content

fix(agent): 流式最终输出脱离过程区并降低布局压力【已审核 PR】 - #1736

Merged
ErlichLiu merged 2 commits into
proma-ai:mainfrom
Andreaseszhang:fix/agent-streaming-output-202608181405
Aug 19, 2026
Merged

fix(agent): 流式最终输出脱离过程区并降低布局压力【已审核 PR】#1736
ErlichLiu merged 2 commits into
proma-ai:mainfrom
Andreaseszhang:fix/agent-streaming-output-202608181405

Conversation

@Andreaseszhang

Copy link
Copy Markdown
Contributor

概述

本 PR 优化 Agent 流式输出的展示方式:当 Agent 开始生成最终文本时,文本会立即脱离受限的执行过程区域,使用正常的 Markdown 消息布局持续渲染。同时将执行过程区域的最大高度从 320px 提升到 500px,并减少仅最终文本 token 更新时无效的滚动布局测量。

改动

  • apps/electron/src/renderer/components/agent/ProcessBlockGroup.tsx — 移除必须等待工具结果完成后才外置尾部文本的限制,让流式尾部 text 立即进入普通消息布局。
  • apps/electron/src/renderer/components/agent/ProcessBlockGroup.tsx — 将执行过程区域最大高度调整为 500px,保留内部滚动和原有折叠行为。
  • apps/electron/src/renderer/components/agent/ProcessBlockGroup.tsx — 根据 content block 对象引用稳定化过程块数组,使外置最终文本的 token 更新不会重复触发过程区的 useLayoutEffect、尺寸读取和滚动跟随。
  • apps/electron/src/renderer/components/agent/SDKMessageRenderer.tsx — 移除不再需要的工具结果完成状态依赖,简化流式 render item 构建。
  • apps/electron/package.json — 将 @proma/electron patch 版本从 0.17.42 升至 0.17.43

测试方法

  1. bun run --filter='@proma/electron' typecheck
  2. bun run --filter='@proma/electron' build:renderer
  3. git diff --check
  4. 已通过独立只读审查,检查了流式文本外置、500px 内部滚动、状态回收、renderer 主线程布局和 GPU/compositor 风险。

审核结论

  • 未发现阻止合并的功能性或跨平台问题。
  • 未发现明确的 GPU/compositor 回归;稳定引用优化降低了最终文本流式更新对过程区布局 effect 的压力。
  • 建议后续用长 Markdown、多工具调用和“文本输出后继续调用工具”的场景做一次实际 Chromium Performance trace。

备注

新增的临时 ProcessBlockGroup.test.ts 测试文件已按需求删除,本 PR 不包含该测试文件。当前 PR 仅包含 3 个已跟踪源码/版本文件。

Made with Proma · GitHub

@ErlichLiu
ErlichLiu force-pushed the fix/agent-streaming-output-202608181405 branch from 9e4f975 to ac05137 Compare August 19, 2026 08:48
@ErlichLiu
ErlichLiu merged commit 60116ca into proma-ai:main Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants