dsh-better-tool-ui:DeepSeek Harness 工具调用与 Thinking 渲染插件

前言

DeepSeek Harness(DSH)默认的工具调用卡片展示较为通用,面对复杂的工具链(如 MCP 调用、子 Agent 执行、流式参数生成)时,信息密度低且视觉割裂。本插件旨在将这些输出统一渲染为紧凑的时间线,左侧贯通色轨,右侧提供类似 GitHub PR 的代码变更视图,提升调试与交互体验。

插件简介

dsh-better-tool-ui 是一个客户端插件,由 GeekRicardo 维护。它接管了 DSH 内置工具、MCP 工具以及子调用的渲染逻辑,将原本分散的卡片聚合为紧凑的时间线视图。插件支持 28 种内置工具,兼容 MCP 协议,并优化了流式输出与旧版 DSH 的体验。

核心功能

  1. 内置工具渲染
    接管 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 同款标注。

  2. MCP 工具支持
    支持 MCP 工具行的渲染,包括自动注册、参数/结果分段展示和错误处理。
    - 参数展示为 key/value 网格,结果按内容分流(JSON 轻着色,图片/音频/资源占位为 chip)。
    - 调用失败时展示统一的红色错误块。

  3. 子调用处理
    针对 subagent/workflow 内部的工具,支持名称归一化(如 Task -> subagent)和补位认领。
    - 不会重复渲染树结构,仅通过样式缩进对齐。
    - 适配驱动侧名字(如 claude-in-dsh 驱动时的 Bash / Read),确保渲染一致性。

  4. 特殊工具与样式
    - Goal 系列:create_goal、get_goal、update_goal 渲染为 callout 色块。
    - Thinking 行为:渲染为紫色轨(#8c93f8)。
    - 间距与交互:连续工具行/step 之间 2px 等距贴合;Bash 展开自动停留至少 2 秒,避免亚秒级命令闪烁。

  5. 流式预览
    支持流式工具行预览,兼容旧版 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-*),支持明暗主题自动跟随。
羽毛球分组比赛记分
小程序二维码

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

小夜