前言¶
DeepSeek Harness(DSH)默认的工具调用卡片展示较为通用,面对复杂的工具链(如 MCP 调用、子 Agent 执行、流式参数生成)时,信息密度低且视觉割裂。本插件旨在将这些输出统一渲染为紧凑的时间线,左侧贯通色轨,右侧提供类似 GitHub PR 的代码变更视图,提升调试与交互体验。
插件简介¶
dsh-better-tool-ui 是一个客户端插件,由 GeekRicardo 维护。它接管了 DSH 内置工具、MCP 工具以及子调用的渲染逻辑,将原本分散的卡片聚合为紧凑的时间线视图。插件支持 28 种内置工具,兼容 MCP 协议,并优化了流式输出与旧版 DSH 的体验。
核心功能¶
-
内置工具渲染
接管tool.call.toolview槽位,覆盖 28 个 key(包括 bash/pwsh、read、write/edit、grep/glob、web_search/web_fetch、todo_write、job_output、subagent/send_message、skill、workflow、ask_user_question 等)。
渲染风格采用 GitHub PR 风格的代码变更视图和紧凑时间线:
- bash/pwsh:深色终端块,展示命令全文与退出码。
- read:行号代码块。
- write/edit:文件名头 + 徽标 + diff 视图(红绿底色)。
- job_output:终端块 + 彩色状态条。
- ask_user_question:分页问题面板,选项按 DSH composer 同款标注。 -
MCP 工具支持
支持 MCP 工具行的渲染,包括自动注册、参数/结果分段展示和错误处理。
- 参数展示为 key/value 网格,结果按内容分流(JSON 轻着色,图片/音频/资源占位为 chip)。
- 调用失败时展示统一的红色错误块。 -
子调用处理
针对 subagent/workflow 内部的工具,支持名称归一化(如 Task -> subagent)和补位认领。
- 不会重复渲染树结构,仅通过样式缩进对齐。
- 适配驱动侧名字(如claude-in-dsh驱动时的Bash/Read),确保渲染一致性。 -
特殊工具与样式
- Goal 系列:create_goal、get_goal、update_goal渲染为 callout 色块。
- Thinking 行为:渲染为紫色轨(#8c93f8)。
- 间距与交互:连续工具行/step 之间 2px 等距贴合;Bash 展开自动停留至少 2 秒,避免亚秒级命令闪烁。 -
流式预览
支持流式工具行预览,兼容旧版 DSH 的conversation.input.dock。在参数流式生成期间,消息流中会显示“生成中…”行,正式卡片落地后自动让位。
安装与启用¶
使用官方安装脚本安装:
curl -fsSL https://raw.githubusercontent.com/GeekRicardo/dsh-better-tool-ui/main/install.sh | bash
安装完成后,需重启 DSH Web 并硬刷新(Cmd/Ctrl+Shift+R)才能生效。
开发与维护¶
修改代码后,在插件目录执行以下命令更新:
cd ~/.dsh/profiles/web && pnpm up dsh-better-tool-ui
注意事项¶
- 版本变更:早期版本名为
dsh-hebbian-rows,v2 起更名为dsh-better-tool-ui。 - 兼容性:兼容旧版 DSH(0.1.0-rc.5 及更早),流式行从
conversation.input.dock出场;新版 DSH 使用conversation.chat.streamingCall。 - 环境要求:需 Node >= 20。
- 能力范围:仅 web 端,无 host 能力。
- 主题适配:颜色使用 DSH 主题 token(
--dsw-alias-*),支持明暗主题自动跟随。