前言¶
在 DeepSeek Harness (DSH) 的 Web 端交互中,隨着對話輪次增加,原生界面容易失去結構化信息,開發者難以快速回顧上下文或定位特定段落。本文介紹 huangfuren/dsh-conversation,它通過一個浮動面板將對話重組爲樹形大綱,提供導航、統計與快速定位功能。
插件簡介¶
huangfuren/dsh-conversation 是一個純 UI 插件,不接觸提示詞、消息內容或工具結果,僅讀取宿主提供的會話快照進行渲染。它主要解決 Web 端會話結構不清晰、難以快速定位與回顧的問題,提供類似於文檔大綱的閱讀體驗。
安裝與啓用¶
插件支持通過不可變 tag 安裝,確保版本一致性。命令如下:
dsh plugin --profile web add github:huangfuren/dsh-conversation#v1.3.1
若需跟蹤開發分支或本地調試,可使用以下命令:
dsh plugin --profile web add github:huangfuren/dsh-conversation
dsh plugin --profile web add file:/absolute/path/to/dsh-conversation
核心功能¶
-
浮動面板與會話大綱
面板默認常駐於頁面右上角。它以“用戶提問”爲根節點,根節點包含序號、提問時間及該輪工具數與正文字數統計;助手回覆中的 Markdown 標題按層級掛載到最近的提問下。面板支持拖拽把手,位置會持久化保存。 -
跳轉與閱讀記憶
- 單擊任意行,面板會自動滾動到正文對應位置並高亮節點。
- 雙擊任意行,跳轉到“本節末尾”(下一個同級或更高級節點,若已到底部則滾動到底部)。
- 插件會記錄每個會話的閱讀位置,切換會話後再次打開面板時,自動定位至上次閱讀節點。
-
面板寬度與鍵盤導航
- 面板提供三檔寬度:緊湊 320px、加寬 480px、全屏 720px。可通過標題欄按鈕循環切換。
- 在面板聚焦時,使用
Alt+↑/Alt+↓可在節點間快速上下導航。
-
右側密度刻度條
右側顯示對話密度圖,每個 tick 代表一輪提問,長度按該輪正文量歸一化。Hover 時顯示該輪摘要,點擊可直接跳轉。該功能可作爲“對話密度圖”查看。 -
搜索與導出
- 搜索:支持在搜索框輸入關鍵詞,支持切換搜索範圍(全部 / 僅問題 / 僅標題),命中片段會高亮顯示。
- 導出:支持將大綱導出爲 Markdown 格式,可複製到剪貼板或下載爲
.md文件(文件名固定爲dsh-conversation-outline.md)。
-
狀態持久化
所有用戶偏好(收藏、展開層級、面板寬度、刻度條開關、閱讀位置)均通過localStorage(鍵前綴dsh-conversation:)進行持久化。
典型用法¶
- 調整面板寬度:在面板標題欄點擊或使用
Alt+↑ / Alt+↓快捷鍵。 - 跳轉定位:單擊大綱節點跳轉,雙擊跳至節點末尾。
- 切換搜索範圍:點擊搜索框左側的按鈕,在“全部”、“問題”、“標題”之間循環切換。
- 展開/收起層級:使用標題欄中的層級滑塊,控制顯示到第幾級 Markdown 標題。
兼容性與注意事項¶
- 版本要求:插件已在 DSH 0.1.5-rc.2 +
webprofile 上驗證,並適配 DSH 0.2.x(>=0.2.0-rc.1 <1.0.0)。更早的 DSH 版本與其他 profile 未認證。 - 降級機制:插件遇到不認識的宿主 API 時,會降級爲“面板不出現”而非拋錯,以避免影響宿主穩定性。
- DOM 依賴:點擊定位功能依賴宿主的 DOM 契約(
data-chat-anchor-key或data-chat-flow-kind)。若宿主未來變更這些屬性,定位功能可能失效。 - 佈局衝突:面板使用固定定位,與其他右上角懸浮插件共存時可能會發生視覺重疊。
總結¶
dsh-conversation 爲 DSH Web 端提供了一套輕量級、純 UI 的會話導航方案。它不侵入數據層,通過清晰的層級結構與快捷的跳轉能力,幫助開發者更高效地管理長對話。項目詳情與源碼可參考 GitHub 倉庫。