前言¶
在 DeepSeek Harness(DSH)里長對話很常見:上下文被摺疊、未加載輪次不在當前視口裏,只靠瀏覽器自帶的「頁內查找」往往只能掃到已渲染區域,也搜不到尚未加載的助手或用戶消息。社區插件 dsh-find(倉庫 iamwaller/dsh-find)針對的是另一類需求:在持久化的完整會話日誌裏檢索,在已渲染的正文裏高亮每一處命中,並用回車在命中之間前進或後退;跨越「未加載」邊界時會通過宿主加載對應輪次。
下面介紹它是什麼、如何安裝啓用,以及用法與限制。同類名稱的 dsh-conversation-find 搜的是當前視圖 DOM;本插件只搜持久化會話日誌,二者定位不同。
這是什麼¶
dsh-find 是維護者 iamwaller 發佈的 DSH 插件(npm 包名 dsh-find,當前資料中的版本爲 0.2.1,許可證 MIT)。在社區目錄中歸類爲「記憶」相關能力:在單次 DSH 會話內查找關鍵詞,覆蓋完整會話歷史(含尚未加載的輪次),在轉錄區域高亮所有命中,並支持快捷鍵與列表跳轉。
插件幾乎無額外配置:在 Plugins 頁面裏 Find in conversation 卡片上的 conversation-find 行開關,是唯一設置項。
核心功能¶
資料中已覈實的能力如下。
-
入口與快捷鍵
- 會話標題欄出現搜索圖標。
- Desktop:Ctrl/Cmd+F。
- 純 Web / 瀏覽器:Ctrl/Cmd+Alt+F(避免與瀏覽器自帶查找欄衝突)。 -
檢索範圍與方式
- 輸入查詢後,經宿主sessionQuery.filterEvents掃描持久化會話日誌(資料寫明不使用 SQLite FTS)。
- 在用戶消息與助手消息(user/message、assistant/message)中返回片段;帶約 250 ms 防抖。
- 結果列表展示角色、時間與摘要;最多 100 條,超出時會有「僅顯示前 100 條」提示。 -
高亮與導航
- 當前窗口內已渲染的轉錄正文裏,每一處匹配都會上色;當前命中更深,計數形如3/17。
-Enter下一處,Shift+Enter上一處;若需跨越未加載邊界,會調用session.loadThrough(seq)加載對應輪次。
- 點擊某條結果會加載該輪、跳到該消息內第一處命中並閃爍提示。
-Esc關閉查找並清除高亮繪製。 -
實現要點(便於排障)
- 客戶端註冊會話頭工具區、overlay 與快捷鍵路由find.inConversation。
- 宿主提供POST /api/dsh-find/search,按文本、surface: current與消息類型過濾事件。
- 頁內高亮優先使用 CSS Custom Highlight API(::highlight(dshfind-hit)/::highlight(dshfind-current)),不直接改動 React 持有的 DOM;Chromium 105+ 支持該繪製,否則回退爲滾動並閃爍消息。
安裝與啓用¶
安裝命令以 README 原文爲準:
dsh plugin --profile <profile> add dsh-find
也可在 DSH Desktop / Web 中打開 Plugins → Add plugin,輸入 dsh-find,選擇 Enable now,然後重啓或重新加載。
啓用後打開 Plugins,確認 Find in conversation 卡片裏 conversation-find 行爲開啓。關閉該行會移除標題欄圖標、查找欄與快捷鍵,並註銷宿主路由。
環境與權限說明: package.json 要求 Node >=20、DSH ^0.2.2-rc.1。插件在當前 DSH 進程權限下運行;安裝前建議閱讀倉庫源碼與 MIT 許可證,確認符合你的使用環境。DSH 生態強調「一切皆插件」;社區目錄站點爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
典型用法¶
- 在會話中點擊標題欄搜索圖標,或按上述快捷鍵。
- 輸入要查找的字符串;稍候結果列表出現。
- 在正文中查看全局高亮,用
Enter/Shift+Enter在命中間移動。 - 需要直接定位到某輪對話時,在結果列表中點擊對應項。
- 結束時按
Esc關閉並清除高亮。
適用場景與注意¶
適合: 需要在同一會話裏回溯較早輪次、覈對模型或自己說過的話、在長上下文中定位某配置名或接口名等——且希望檢索依據是完整日誌而非僅當前已加載片段的開發者。
限制(資料原文):
- 每次查詢都會重放會話日誌;結果上限 100 條。
- 跳轉要求目標輪次可通過
loadThrough加載,且消息出現在當前聊天窗口;否則可能提示輪次已加載但無法在界面定位消息。 - 高亮僅覆蓋已渲染消息;摺疊進 process/reasoning 分組的節點不參與高亮。
- 依賴宿主
sessionQuery服務;不可用時搜索會報告無法進行全會話搜索(501)。 - 無「僅當前視圖」模式,也無獨立配置文件。
結尾¶
dsh-find 把「會話內查找」建立在持久化日誌之上:未加載歷史仍可被搜到,命中在正文逐處高亮,回車可逐處跳轉。如需查看分類與簡介,可打開社區目錄頁 iamwaller/dsh-find;源碼與完整說明見 GitHub 倉庫。