在 DeepSeek Harness (DSH) 的实际使用中,一轮对话往往会产生工具调用、中间 assistant 消息、重试记录等过程节点。这些节点堆叠在最终回复之前,会显著拉长对话长度,干扰对最终结论的阅读。直接阅读 DSH 源码修改 UI 逻辑又缺乏灵活性,且难以维护。我们需要一种在不侵入 DSH 核心代码的前提下,将这些过程节点折叠为摘要的方案。
下面介绍 @ycp424c/dsh-auto-fold-turn。这是一款 DSH Web 外部 client 插件,由 ycp424c 维护,采用 MIT 许可证。它的核心作用是:在产生最终回复后,自动把该轮位于最终回复之前的工具调用、中间 assistant、重试等过程节点折叠为一行摘要。
核心功能¶
- 自动折叠摘要:自动折叠一轮对话中最终回复之前的工具调用、中间 assistant、重试等过程节点为摘要。
- 布局位置:摘要行位于用户 prompt 之后、过程节点之前。默认摘要行位于该轮 agent 回答的顶部。
- 交互控制:用户可随时展开/收起。
- 状态持久化:显式展开状态按
sessionId + turn持久化到 localStorage,跨刷新保留,直到用户再次折叠。 - 实现方式:不修改、不 patch DSH 源码,所有行为通过 DSH 正式的 Conversation Node 扩展接口与一个薄 DOM 适配层实现。
- 独立控制:每个 Turn 独立折叠/展开,一个 Turn 的操作不影响其他 Turn。
行为与策略¶
- 默认折叠:所有已加载、存在最终回复的 Turn 默认折叠,包括历史 Turn(历史 replace / prepend 与实时 append 走同一规则)。
- 保留内容:折叠后保留用户消息、摘要行、最终回复、最终回复之后的终态提示(error / max-token 等)与 DSH 原生 turn-tail 操作。
- Fail-open 策略:插件采用统一 fail-open 策略。当没有 closing assistant、无法唯一识别最终 assistant、snapshot 目标与 DOM 行无法完整对应、localStorage 不可用/损坏/写入失败、插件卸载时,不隐藏内容,确保原生聊天内容完整恢复。
安装与启用¶
该插件通过 DSH 插件系统进行管理。可通过社区目录链接进行安装。
https://www.skillhub.cn/plugins/ycp424c/dsh-auto-fold-turn
典型用法¶
用户在 DSH 界面中发起一轮包含工具调用的对话,对话结束后,位于最终回复之前的工具调用、中间 assistant 消息等会自动折叠为一行摘要(例如 ▶ 过程 · N 项)。用户点击该行即可展开查看详细过程。
适用场景与注意¶
该插件适合需要长链路调试或查看最终输出的开发者。
- 权限与依赖:插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- API 依赖:插件依赖的三个标记(
data-chat-anchor-key、data-chat-flow-kind、data-conversation-scroll)当前被 DSH 自身使用,但不视为稳定公共 API。 - 卸载恢复:禁用或卸载插件后,原生聊天内容完整恢复。
结语¶
经过上面的步骤,即可在 DSH 中获得整洁的对话视图,只保留最终回复,过程节点折叠为摘要。该插件通过 Conversation Node 扩展接口与 DOM 适配层实现了非侵入式的折叠功能。
- GitHub 仓库:https://github.com/ycp424c/dsh-auto-fold-turn
- 目录页面:https://www.skillhub.cn/plugins/ycp424c/dsh-auto-fold-turn