DSH 插件 dsh-fold:折叠连续工具调用与长输入

前言

DeepSeek Harness (DSH) Web GUI 在处理复杂任务时,同一回合内往往会出现连续的多个工具调用,或者出现超长的用户输入。这会导致聊天流变得冗长,分散对当前运行状态的注意力。dsh-fold 插件通过原生 Slot 和 React 实现,将同一回合内的连续工具调用折叠为单行,并对超长用户输入进行限制,从而提供更紧凑、类似 Codex 风格的交互体验。

插件简介

  • 名称:dsh-fold
  • 维护者:Yancey2023
  • 类别:客户端插件
  • 核心价值:折叠连续工具调用、实时显示运行状态、限制长输入显示、自动加载旧历史。

核心功能

1. 连续工具调用折叠

同一助手回合内的连续 tool-call 节点会被合并为单行显示。折叠后的状态栏会显示:
* 运行中标签:当前正在执行的工具名称。
* 调用计数:该组中已完成的调用数加上正在运行的调用数。
* 展开/折叠:点击箭头可展开查看所有详细卡片。

2. 诊断信息保留

为了保证调试信息的可读性,以下诊断信息不会被折叠:
* model-retry(模型重试)
* turn-error(本轮运行失败)
* turn-max-tokens(达到输出上限)
这些信息始终以官方视图呈现,不参与分组。

3. 用户输入折叠

当用户输入超过 3 行时,输入气泡会被限制显示为 3 行,并在底部显示 Expand 按钮以查看全文。折叠高度精确设置为 72px(3 × 24px),确保跨浏览器一致性。

4. 自动加载旧记录

当用户将对话滚动到顶部且存在更多历史记录时,插件会自动触发 loadOlder 机制。只要用户保持在顶部,历史记录会自动分页加载,无需手动点击按钮。

5. 技术实现

插件采用纯 Slot / React 实现,不使用 DOM 操纵(如 display:none、MutationObserver 或 querySelector),而是复用官方渲染器进行渲染。

安装与依赖

该插件依赖 DSH 0.1.5 或 0.1.6 版本,以及 @deepseek-ai/dsh-attachment 0.1.6-alpha.2。安装命令如下:

node scripts/install-dsh.cjs

典型用法

  • 查看运行状态:在工具调用过程中,折叠栏会实时显示当前正在运行的工具标签和累计调用次数。
  • 展开查看详情:点击折叠栏的箭头,可以展开查看所有被折叠的工具调用卡片和详细输出。
  • 处理长消息:对于超长的用户输入,点击 Expand 按钮即可展开阅读。

注意事项

  • 版本兼容:请确保 DSH 版本为 0.1.5 或 0.1.6。
  • 插件范围:插件仅处理回合内的工具调用折叠,不包含回合级的折叠逻辑(由产品自带控制器处理)。
  • 许可证:目前未找到明确的许可证信息,安装前请自行查阅源码。

参考资源

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜