dsh-session-nav:DeepSeek Harness Web GUI 會話內導航條

前言

DSH 的 Web GUI 適合承載較長的多輪會話,但會話越長,回看某一輪問題的成本越高:用戶消息、模型回覆、運行上下文不斷累積,想確認前面某次提問或對應回覆,往往只能反覆滾動。

下面介紹 kiligzzz/dsh-session-nav。它是 DSH Web GUI 的一個會話內導航插件:每根鍵對應一條用戶消息,懸停可預覽該輪用戶消息與模型回覆,點擊可跳轉到對應位置。

這是什麼

dsh-session-navkiligzzz 維護的插件,許可證爲 MIT,用於 DeepSeek Harness Web GUI 的單個會話。

它基於 DSH 官方雙面插件機制(host + browser half),不侵入 DSH 源碼。插件把一輪對話壓縮成導航鍵:用戶消息佔鍵,模型回覆不單獨佔鍵,而是併入對應輪次的懸停預覽。這樣長會話裏的用戶問題可以集中顯示,減少來回滾動查找。

核心功能

  • 爲單個會話提供多輪對話導航。
  • 每根鍵錨定一條用戶消息;模型回覆不單獨佔鍵,併入對應輪次的預覽。
  • 懸停顯示用戶消息單行省略,以及模型回覆最多 3 行。
  • 當前查看內容對應的鍵隨滾動即時聯動高亮。
  • 點擊目標消息時:目標消息已在加載窗口內,則平滑滾動直達;目標消息在窗口外時,自動調用官方分頁接口加載歷史,並定位到視口頂部。
  • 導航鍵數據來自 host 端按需讀取的完整會話日誌,長會話可一屏看到全部用戶問題。
  • 與即時快照合併時按消息 UUID 去重。
  • 支持深淺色主題自適應。

安裝與啓用

環境要求:Node.js >= 18。

從 GitHub 安裝時執行:

dsh plugin --profile web add github:kiligzzz/dsh-session-nav

新裝插件後需要重啓 dsh web 實例,再刷新頁面。

本地開發時可以用 link 方式:

dsh plugin --profile web add link:<本目錄>

這種方式下,修改 lib/client.js 後刷新頁面即生效;修改 host 端 index.js 需要重載插件。

典型用法

啓用後,在 DSH Web GUI 的單個會話裏即可看到導航鍵。每根鍵代表一條用戶消息,按會話中的用戶消息生成。

懸停某根鍵時,可以看到該輪用戶消息的單行摘要,以及對應模型回覆最多 3 行內容。點擊任意鍵後,頁面會跳轉到對應消息;如果歷史尚未加載,插件會通過官方分頁接口加載更早內容,直到目標消息定位到視口頂部。

本地調試時,可以使用資料中給出的診斷入口:

window.__dssnNavDebug__

它會暴露 entryCountfullCountstats,便於通過 CDP 檢查。

本地開發常用命令:

pnpm install
pnpm test
pnpm lint
pnpm format

適用場景與注意

適合在 DSH Web GUI 中處理較長多輪會話、需要快速回看用戶問題和對應模型回覆的場景,例如調試智能體運行軌跡、覈對多輪上下文、定位某次提問後的回覆。

注意事項:

  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  • 插件聲明依賴包括 @deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slotsreactreact-domcordis
  • 新裝插件後需要重啓 dsh web 實例;只改 lib/client.js 時刷新頁面即可,改 index.js 需要重載插件。
  • 倉庫聲明許可證爲 MIT,環境要求 Node.js >= 18。

結尾

dsh-session-nav 解決的是單個會話內“找到某輪對話”的問題:把用戶消息映射成導航鍵,把模型回覆併入預覽,並把歷史加載和定位串起來。

倉庫地址:

https://github.com/kiligzzz/dsh-session-nav
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜