在 DSH(DeepSeek Harness)的開發與使用中,對話流的渲染效率直接影響調試與交互體驗。當思考鏈、工具調用等中間過程混在正文中間時,對話流會變得冗長且難以閱讀。dsh-conversation-folding 插件旨在解決這一問題,通過摺疊機制優化 UI 展示,而不改變底層內容邏輯。
這是一個純 UI 增強插件,由 TheHeartFickle 維護。它將思考過程和工具調用等中間步驟摺疊起來,同時保持用戶輸入和 LLM 輸出使用原生渲染樣式,不改變內容本身。
核心功能¶
-
整輪摺疊(默認)
用戶輸入保持原生樣式。思考/工具調用過程被摺疊爲一個獨立的摺疊欄。尚未生成正文時,摺疊欄下方保留最近一次過程預覽;開始生成正文後,過程自動隱藏,只顯示正文。點擊“展開過程”可以查看完整過程。 -
Tool call 分組摺疊
連續的tool-call步驟會摺疊成組,默認只顯示最新一個,減少對話流中的重複工具調用刷屏。 -
思維鏈增強
Think塊默認展開爲可滾動子框。生成過程中自動跟隨底部,方便實時閱讀。新出現時,只摺疊緊鄰的前一個,保持上下文連續。 -
摺疊的步驟類型可按類型配置
設置 →「對話摺疊」獨立標籤頁:18 個步驟類型分別開關是否摺疊(bash / think / read / write / edit / glob / grep / web / skill / 子代理 / 後臺任務 / goal / 任務清單 / 提問 / ralph / workflow / 上下文注入 / 系統提示詞)。默認不折疊:上下文注入、skill、系統提示詞;其餘類型摺疊。
安裝與啓用¶
前置條件:已安裝 DSH,且 dsh web 可以正常運行。環境要求 Node.js ≥ 20,DSH ≥ 0.1.2-rc.1。
通過 DSH CLI 安裝:
dsh plugin --profile web add @the-heart-fickle/dsh-conversation-folding@latest
安裝後,重啓 DSH 並刷新瀏覽器頁面。
典型用法¶
- 發送一條消息。
- 觀察:思考/工具調用過程被摺疊爲獨立摺疊欄;正文開始輸出後,過程自動隱藏。
- 點擊“展開過程”可查看完整過程。
- 想回到官方渲染時,在設置中把「對話顯示」切換爲 Normal / Compact 即可。
配置¶
全部配置在瀏覽器端「設置」內完成,經 host 設置系統持久化到 ~/.dsh/settings.yaml(dsh-conversation-folding: 命名空間),跨端/重載恢復。
- 對話顯示(設置 → 對話顯示):
Normal/Compact/Fold。僅「Fold」由本插件接管過程摺疊,摺疊行爲只有一種:整輪摺疊,正文永不折疊。 - 對話摺疊(獨立標籤頁):各步驟類型的「是否摺疊」開關。工具調用按 host 工具註冊表的字面註冊名經匹配表精確匹配(如
pwsh→Shell 命令、str_replace_editor→編輯文件、todo_write→任務清單、ask_user_question→提問);未列入匹配表的工具類型始終摺疊。默認不折疊:上下文注入、skill、系統提示詞。瀏覽器 localStorage 不存任何配置。
注意:0.1.x 曾支持 profile cordis.patch.yml 下發 foldMode / auxVisible;自本版本起配置全部移到瀏覽器設置,host 不再持有配置。
適用場景與注意¶
適合需要頻繁查看工具調用細節,但又不希望被大量中間過程刷屏的開發者與用戶。
注意:插件以當前 DSH 進程權限運行,安裝前請檢查源碼與許可證(MIT)。
總結¶
該插件通過摺疊機制提升了長對話的閱讀體驗。更多細節與源碼,可參考: