在 DSH(DeepSeek Harness)的開發與調試過程中,會話記錄往往會變得非常冗長。想要在長對話中定位某一條具體的消息——例如某次工具調用的參數細節,或者某條系統注入的提示——通常需要手動滾動查找。dsh-session-explorer 旨在解決這一痛點,爲 Web 端提供會話消息級的全文檢索能力,支持預覽上下文並直接跳轉回原始會話。
插件簡介¶
dsh-session-explorer 是一個由 Zn-Dk 維護的 DSH Web 插件。它支持對用戶消息、助手回覆、引導信息以及工具調用(包括工具名、參數和錯誤摘要)進行全文檢索。通過插件自帶的索引引擎,它可以跨多個會話去重結果,並提供只讀的上下文預覽,幫助開發者快速定位目標信息。
安裝¶
通過官方命令安裝該插件:
dsh plugin --profile web add dsh-session-explorer
安裝完成後,重啓 dsh web。在側邊欄工具區域會出現 “Session Explorer” 的入口。插件首次使用時會自動創建索引,數據存儲在 ~/.dsh/storages/session-explorer.sqlite。
核心功能¶
消息級全文檢索¶
插件支持對以下四種消息類型進行檢索,並設置了不同的權重:
* 高權重:用戶消息、助手回覆、系統注入文本。
* 低權重:工具名稱、工具參數、工具錯誤摘要。
檢索基於 FTS5 三元組索引,支持任意子串匹配(中文無需分詞)。當查詢字符數少於 3 個時,會自動回退到 LIKE 匹配模式。
跨會話去重¶
fork(分支)或 continuation(繼續)會話共享父級歷史記錄。爲了避免搜索結果重複,插件按 (seq, kind, text) 對結果進行分組,並保留標題非空且索引時間最新的會話條目。
只讀預覽與跳轉¶
點擊搜索結果卡片,會展示命中消息及其周圍的上下文窗口。視圖會自動滾動,將焦點消息置於中央。在預覽界面中,點擊任意消息可直接跳轉到原始會話中對應的位置。
會話總覽與篩選¶
除了單條消息搜索,插件還提供會話級別的總覽視圖。以卡片形式展示所有會話,包含元數據、首條/末條消息摘要。支持按主/子代理過濾、文本搜索和排序。點擊卡片會打開一個內聯的消息摘要詳情面板,而非簡單的錨點跳轉。
索引管理與狀態¶
- 重建模式:支持增量重建(基於內容指紋,O(1) 跳過已變更會話)和全量重建(重置數據庫並逐個會話重建)。重建對話框會運行健康檢查(完整性 + 表可讀性)。
- 索引狀態:自動分類索引狀態爲 “已索引”、”過時” 或 “失敗”(如源日誌損壞)。打開面板時會觸發輕度同步(處理實時會話和未索引會話),關閉面板時增量同步,啓動時進行一致性校對。
典型用法¶
- 打開 DSH Web,在側邊欄找到 “Session Explorer” 並點擊。
- 在搜索框輸入關鍵詞,例如某個工具的名稱或特定的錯誤摘要。
- 查看搜索結果列表,系統已自動處理 fork 會話的重複內容。
- 點擊結果卡片,在預覽面板中確認上下文。
- 點擊預覽中的具體消息,直接跳轉到真實會話的對話流中。
已知限制¶
- 工具結果體全文檢索:工具調用結果的完整正文全文檢索功能推遲到 V2 版本,當前僅支持工具名、參數和錯誤摘要的檢索。
- 會話刪除:DSH 引擎未提供會話刪除的 API,插件索引的清理僅限於插件自身的數據庫。
- 時間線畫布 Bug:時間線畫布存在嚴重的渲染問題,自 0.2.0 版本起入口已隱藏,待修復後將恢復顯示。
總結¶
dsh-session-explorer 通過在本地維護 SQLite 索引,爲 DSH 提供了高效的會話消息檢索能力,特別適合需要頻繁查閱歷史日誌的開發者。更多細節可參考項目目錄或 GitHub 倉庫。