在 DeepSeek Harness (DSH) 的默認 Web UI 中,每個助手回覆都會將推理(Think 行)和工具調用渲染爲單獨的可摺疊行。這導致對話流中出現許多嵌套的可摺疊項,視覺上較爲分散。dsh-turn-collapse 插件模仿 Codex 的風格,將可見輸出之間的推理和工具調用分組爲單個摺疊單元,使對話流更加清晰。
插件簡介¶
這是一個由 mctang985211-coder 維護的純客戶端插件,旨在通過將思考鏈和工具調用摺疊在可見文本輸出之間,來簡化 DSH Web UI 中的對話流。它重用 DSH 的設計令牌,確保視覺風格與原生 UI 保持一致。
核心功能¶
- Codex 風格的層級摺疊:將推理和工具調用分組在可見輸出之間。
- 統一折疊條:在每兩個可見輸出之間插入一個摺疊條。
- 默認摺疊:摺疊條默認爲摺疊狀態,點擊三角形即可展開。
- 狀態持久化:摺疊/展開狀態按會話在
localStorage中持久化。 - 設計令牌複用:視覺樣式重用 DSH 設計令牌 (
--dsw-alias-*)。
安裝與啓用¶
該插件通過本地路徑鏈接安裝。請先克隆倉庫,然後運行安裝命令。
git clone https://github.com/mctang985211-coder/dsh-turn-collapse
cd dsh-turn-collapse
dsh plugin --profile web add link:$(pwd)
安裝完成後,必須對瀏覽器進行硬刷新才能使插件生效。
使用方法¶
在啓用插件後,對話流中的界面結構會發生變化。每個可見輸出(文本內容)與下一段可見輸出之間的所有推理(Think 行)和工具調用(ToolRow)會被包裹在一個摺疊條中。
界面示意如下:
[▶ 思考與工具 · 5 項] ← 摺疊條:兩段實際輸出之間的一切(思考 + 工具調用)
文字輸出 1
[▶ 思考與工具 · 3 項]
文字輸出 2
- 展開/摺疊:點擊摺疊條上的三角形圖標,可以展開或摺疊該組內容。
- 內部可用性:在展開狀態下,內部的原生
Think行和ToolRow仍然保持其原有的可摺疊和交互功能。
技術細節¶
- 純客戶端實現:插件不包含任何主機端代碼,無服務器,無 API 表面。
- 渲染處理:通過
MutationObserver監聽對話滾動容器 ([data-conversation-scroll]),並執行 reconcile pass 來處理 React 重渲染。 - 數據來源:流節點類型通過
data-chat-flow-kind識別(如assistant-step、tool-call),推理行通過data-variant="think"定位。
適用範圍與注意¶
- 適用場景:適合希望在 DSH Web UI 中獲得類似 Codex 體驗、希望減少視覺雜亂的智能體開發者。
- 權限與安全:由於是純客戶端插件,運行在當前 dsh 進程的瀏覽器沙箱內,無需擔心後端權限泄露。但安裝前建議檢查源碼與許可證(MIT)。
- 注意事項:插件依賴 DSH 的設計令牌和 DOM 結構,升級 DSH 版本後可能需要重新檢查兼容性。
總結¶
dsh-turn-collapse 通過簡單的摺疊邏輯,解決了 DSH 默認輸出流中可摺疊元素過多的問題。它通過 localStorage 維護狀態,並在 React 重渲染中保持穩定,是優化 Web UI 可讀性的實用工具。