前言¶
在 DSH Web 界面里跟智能体跑长会话时,模型往往会连续发起多次工具调用,中间还可能穿插 Think 节点。默认渲染通常是「一行一个调用」,屏幕很快被占满,很难一眼看出这一段动作是不是还在跑、有没有失败。若你主要用浏览器看会话、又不想改模型或工具本身,就需要一种只动客户端展示层的方案。
下面介绍社区插件 dsh-tool-graphic-chain(维护者 NormanFxxkingRockwell,分类:客户端)。它把思考与连续工具调用按发生顺序串成一条可折叠的横向胶囊链,只有模型输出正文时才截断当前链,其余节点类型保持原样。
这是什么¶
dsh-tool-graphic-chain 是 DSH Web GUI 插件:把会话里的 Think 与连续 tool-call 压成从左往右的胶囊工具链,模型中途说话才截断。
插件只接管 assistant-step 与 tool-call 两个节点的渲染,不注册新工具、不改模型、不改数据;user、turn-tail、compaction 等节点照旧。许可证为 MIT,当前 npm 包版本为 0.2.0(资料中的版本对应说明:0.2.x 适配 DSH 0.2.1;0.1.x 适配 DSH 0.1.x)。
核心功能¶
一条链 = 一段连续动作¶
思考(Think)与会话里连续发生的工具调用按发生顺序串成同一条链,不再一行一个占满屏幕。README 中的效果示意如下:
› 读清楚三处插入点才动手 · 3 次调用
[Think] → [Grep] → [Grep] → [Read] → [Read]
模型说话就截断¶
当中间输出正文(例如说明性段落)时,当前链收尾,正文以正常 Markdown 显示,之后继续开新链。
状态与布局¶
- 运行中呼吸灯、成功绿点、失败红点(胶囊边框同步变红)、中断黄点。
- 紧凑横排:每行 7 颗胶囊自动换行,胶囊之间用
→连接;链头一行可点击折叠/展开整条链。 - 点击胶囊可弹出该次调用的入参/结果。
顺带处理空 flowItem 间距¶
DSH 会为每个会话节点渲染 flowItem 外壳;被合并进链的 tool-call 节点内容为空时,外壳仍占 16px 的 flex 间距,长会话底部可能堆出大片空白。插件用 :has() 只隐藏「内容确实为空」的外壳,正常消息节点不受影响。
安装与启用¶
在已配置好的 DSH profile 下执行官方安装命令:
dsh plugin --profile <你的profile名> add dsh-tool-graphic-chain
装好后重启 dsh web 即可生效,浏览器需要刷新一次。
典型界面行为¶
安装并刷新后,在 Web 会话中观察连续 Think / 工具调用段:应看到横向胶囊链替代原先逐行展开的 tool-call 列表;模型插入正文后链断开,下一段动作从新链开始。需要核对单次调用细节时,点击对应胶囊查看入参与结果。
开发侧可用仓库内的验证脚本检查链组装、箭头、状态灯、截断分组与空外壳隐藏等行为:
npm install
npm run verify
适用场景与注意¶
适合经常在 DSH Web 里查看长工具调用序列的开发者:希望用一条链概括「这一段在干什么」,而不是在列表里逐条滚动。
插件以当前 DSH 进程及 Web 客户端注入方式运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认与本地 DSH 版本匹配(0.2.x 插件对应 DSH 0.2.1 相关变更)。社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件属于其中的纯客户端可视化增强。
结尾¶
dsh-tool-graphic-chain 用横向胶囊链压缩 Think 与连续工具调用的展示,模型正文输出时自然截断,并保留状态灯与点击查看详情,不改会话数据本身。目录与源码:
- 目录页:https://www.skillhub.cn/plugins/NormanFxxkingRockwell/dsh-tool-graphic-chain
- GitHub:https://github.com/NormanFxxkingRockwell/dsh-tool-graphic-chain