在 DeepSeek Harness (DSH) 的實際使用中,一輪對話往往會產生工具調用、中間 assistant 消息、重試記錄等過程節點。這些節點堆疊在最終回覆之前,會顯著拉長對話長度,干擾對最終結論的閱讀。直接閱讀 DSH 源碼修改 UI 邏輯又缺乏靈活性,且難以維護。我們需要一種在不侵入 DSH 核心代碼的前提下,將這些過程節點摺疊爲摘要的方案。
下面介紹 @ycp424c/dsh-auto-fold-turn。這是一款 DSH Web 外部 client 插件,由 ycp424c 維護,採用 MIT 許可證。它的核心作用是:在產生最終回覆後,自動把該輪位於最終回覆之前的工具調用、中間 assistant、重試等過程節點摺疊爲一行摘要。
核心功能¶
- 自動摺疊摘要:自動摺疊一輪對話中最終回覆之前的工具調用、中間 assistant、重試等過程節點爲摘要。
- 佈局位置:摘要行位於用戶 prompt 之後、過程節點之前。默認摘要行位於該輪 agent 回答的頂部。
- 交互控制:用戶可隨時展開/收起。
- 狀態持久化:顯式展開狀態按
sessionId + turn持久化到 localStorage,跨刷新保留,直到用戶再次摺疊。 - 實現方式:不修改、不 patch DSH 源碼,所有行爲通過 DSH 正式的 Conversation Node 擴展接口與一個薄 DOM 適配層實現。
- 獨立控制:每個 Turn 獨立摺疊/展開,一個 Turn 的操作不影響其他 Turn。
行爲與策略¶
- 默認摺疊:所有已加載、存在最終回覆的 Turn 默認摺疊,包括歷史 Turn(歷史 replace / prepend 與實時 append 走同一規則)。
- 保留內容:摺疊後保留用戶消息、摘要行、最終回覆、最終回覆之後的終態提示(error / max-token 等)與 DSH 原生 turn-tail 操作。
- Fail-open 策略:插件採用統一 fail-open 策略。當沒有 closing assistant、無法唯一識別最終 assistant、snapshot 目標與 DOM 行無法完整對應、localStorage 不可用/損壞/寫入失敗、插件卸載時,不隱藏內容,確保原生聊天內容完整恢復。
安裝與啓用¶
該插件通過 DSH 插件系統進行管理。可通過社區目錄鏈接進行安裝。
https://www.skillhub.cn/plugins/ycp424c/dsh-auto-fold-turn
典型用法¶
用戶在 DSH 界面中發起一輪包含工具調用的對話,對話結束後,位於最終回覆之前的工具調用、中間 assistant 消息等會自動摺疊爲一行摘要(例如 ▶ 過程 · N 項)。用戶點擊該行即可展開查看詳細過程。
適用場景與注意¶
該插件適合需要長鏈路調試或查看最終輸出的開發者。
- 權限與依賴:插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
- API 依賴:插件依賴的三個標記(
data-chat-anchor-key、data-chat-flow-kind、data-conversation-scroll)當前被 DSH 自身使用,但不視爲穩定公共 API。 - 卸載恢復:禁用或卸載插件後,原生聊天內容完整恢復。
結語¶
經過上面的步驟,即可在 DSH 中獲得整潔的對話視圖,只保留最終回覆,過程節點摺疊爲摘要。該插件通過 Conversation Node 擴展接口與 DOM 適配層實現了非侵入式的摺疊功能。
- GitHub 倉庫:https://github.com/ycp424c/dsh-auto-fold-turn
- 目錄頁面:https://www.skillhub.cn/plugins/ycp424c/dsh-auto-fold-turn