前言¶
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-*),支持明暗主題自動跟隨。