前言¶
在 DeepSeek Harness(DSH)裏跑長對話時,助手輸出、工具卡片和已加載的歷史頁會堆在同一條 transcript 裏。要在整段內容裏定位某個錯誤碼、函數名或 API 標識,靠肉眼滾動效率很低;把內容複製到外部編輯器再搜,又會打斷當前會話節奏。下面介紹社區客戶端插件 Chat Find(bulzz1233/dsh-chat-find):在 DSH 桌面 UI 的對話區域提供類似瀏覽器或 IDE 的查找條,只搜已渲染的聊天節點,不碰輸入框草稿和查找條自身。
這是什麼¶
Chat Find for DeepSeek Harness 由維護者 bulzz1233 發佈,分類爲客戶端插件。它在對話視圖頂部或快捷鍵喚起查找條,對當前 DOM 裏已渲染的用戶消息、助手文本、工具卡片以及分頁加載進 transcript 的歷史內容做字面量搜索,並支持大小寫、全詞匹配、匹配計數與快捷鍵跳轉。插件以 MIT 許可證開源,當前 GitHub 星標爲 0;在插件目錄頁與倉庫 README 中的簡介一致:Browser/IDE-style in-conversation find bar,含 match case、whole word、history,以及面向流式輸出的 streaming-aware 行爲。
核心功能¶
以下能力均來自倉庫 README,安裝後可在對話內直接使用。
打開與關閉
Ctrl+F/Cmd+F,或對話標題欄上的查找按鈕,打開查找條。- 任意焦點下按
Esc關閉(包括查找輸入框或 composer 有焦點時)。
搜索範圍與選項
- 搜索對象:所有已渲染的聊天節點;composer 草稿、隱藏節點、輸入框、contenteditable 草稿以及插件自己的查找條會被排除,避免「幽靈匹配」。
- Match case(
Aa) 與 whole word(ab) 開關,便於搜錯誤碼、函數名、API 標識。 - 查詢爲字面文本,不是正則表達式;全詞模式使用 JavaScript/Unicode 詞邊界,不是按自然語言分詞。
導航與歷史
- 實時顯示
n / total;Enter/Shift+Enter在首尾處循環切換上一處/下一處匹配。 F3/Shift+F3、Ctrl+G/Ctrl+Shift+G與下一處/上一處按鈕行爲相同。- 搜索歷史:
ArrowUp/ArrowDown瀏覽,最新在前、自動去重;越過最新條目時會恢復正在輸入的草稿。
反饋與流式場景
- 零結果時計數與邊框變紅,查找條輕微抖動一次;連續按
Enter會再次抖動。系統開啓prefers-reduced-motion時不播放動效。 - Streaming-aware:通過防抖的
MutationObserver在回覆流式輸出或舊頁加載時重新搜索;當前匹配按{ text node, offset }錨定,歷史前插或 token 追加不會把光標跳到別的匹配;重搜不會改變滾動位置。
實現要點(便於排查問題)
- 從活動的
[data-conversation-scroll]視圖採集conversation.chat.flow子樹文本;塊邊界保留,匹配可跨行內<span>(例如語法高亮代碼),但不跨無關塊。 - 高亮使用
CSS.highlights與Range,不插入<mark>,避免改動 React 持有的 DOM。 - UI 使用
--dsw-alias-*主題 token,文案支持英文與中文。
環境與限制
- 需要帶 Chromium 引擎的 DeepSeek Harness Desktop,且支持 CSS Custom Highlight API(Chromium 105+)。
- README 寫明在 DeepSeek Harness
0.2.1-rc.5上做過測試。 - 僅已渲染文本可搜;虛擬化或未掛載的摺疊節點無法匹配。
安裝與啓用¶
官方 README 的安裝分兩步:先把倉庫放到本機穩定目錄,再在當前 DSH profile 中以 local bundle 方式安裝。資料中的示例爲 clone 到本地;你也可以用其它方式取得相同目錄結構,關鍵是安裝時使用絕對路徑。
取得插件目錄後,在 DSH 會話中讓 agent 安裝本地 bundle,例如:
Install this local plugin bundle: /absolute/path/to/dsh-chat-find
agent 會通過 plugin_manager 的 install_bundle 傳入該絕對目錄;bundle 會鏈接進 profile,之後若在目錄內更新源碼,客戶端重載後可生效。若插件未立刻出現,重載一次 DSH 窗口即可。
插件 bundle 名在 package.json 中爲 @local/dsh-chat-find,版本 1.0.0;客戶端側爲 web 平臺、immediately: true,並注入 @deepseek-ai/dsh-client-locale 與 @deepseek-ai/dsh-client-ui-conversation。
安全說明:客戶端插件在當前 DSH 進程權限下運行。安裝前請自行閱讀 client.js 等源碼並確認 MIT 許可證(見倉庫 LICENSE)是否符合你的要求。
典型用法¶
安裝並重載客戶端後,在任意對話中打開查找條,輸入要搜的字面字符串,用快捷鍵或按鈕在匹配間跳轉。常用操作如下(與 README Usage 表一致)。
| 操作 | 快捷鍵 |
|---|---|
| 打開查找條 | Ctrl+F / Cmd+F,或標題欄查找圖標 |
| 關閉 | Esc |
| 下一處 | Enter、F3、Ctrl+G |
| 上一處 | Shift+Enter、Shift+F3、Ctrl+Shift+G |
| 上一條/下一條搜索詞 | ArrowUp / ArrowDown |
| 切換大小寫 | Aa 按鈕 |
| 切換全詞 | ab 按鈕 |
當前匹配以品牌色高亮,其餘匹配爲半透明品牌色高亮。適合在長 transcript 裏快速定位某次 tool 輸出裏的字段名、日誌片段或文檔裏反覆出現的標識符;不適合依賴正則或搜索尚未加載進 DOM 的歷史頁。
適用場景與注意¶
適合:經常在 DSH 單會話內核對長回答、工具返回和已加載歷史;需要大小寫或全詞約束的標識符搜索;助手仍在流式輸出時需要查找條自動跟上 DOM 變化。
注意:
- 未渲染內容搜不到,需要先滾動或加載到對應頁。
- 社區插件目錄(SkillHub 等)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本文介紹的是社區維護的客戶端擴展,不是官方應用商店條目。
- 星標、測試版本等信息以倉庫與目錄頁當時展示爲準;升級 DSH 或 Chromium 內核後,若 Highlight API 行爲變化,需自行迴歸測試。
結尾¶
dsh-chat-find 把瀏覽器/IDE 熟悉的查找體驗搬進 DSH 對話視圖,在不動 composer 草稿的前提下搜已渲染 transcript,並對流式輸出做了錨定重搜。若要查看元數據或 issue,可打開 GitHub 倉庫;若要瀏覽插件條目,可訪問 SkillHub 目錄頁。
- 目錄頁:https://www.skillhub.cn/plugins/bulzz1233/dsh-chat-find
- GitHub:https://github.com/bulzz1233/dsh-chat-find