前言¶
在 DSH(DeepSeek Harness)裏做智能體開發,會話一多,想找「某次工具返回裏寫過的一句配置」「某段思維鏈裏的假設」並不輕鬆:內置界面往往只能按會話翻頁,關鍵詞命中在輪次中部時也很難直接落到對應段落。FlashAnchor 是社區插件 dsh-flash-anchor(目錄歸類爲「記憶」),在 Host 側建本地索引,用全文檢索覆蓋多類語料,點擊結果通過 Scroll Router 滾到產生命中的塊並高亮,而不是停在會話頂部。索引與查詢均在本機完成,插件不發起外部網絡請求。維護與產品方向由 BR-PC 負責;實現見 GitHub 倉庫。當前公開版本爲 v1.6.1(MIT 許可證)。
這是什麼¶
FlashAnchor 是運行於 DSH Desktop / DSH Web 的 bundle 插件,包名 flash-anchor。它讀取各會話中的正文、思維鏈、工具調用與結果、輸入/輸出文件等可檢索內容,在單一搜索框內查詢;結果攜帶塊級地址,跳轉時展開摺疊卡片並把命中塊滾到視口中心。DSH 生態主張「一切皆插件」;SkillHub 目錄頁 爲社區收錄,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
搜索範圍與類型¶
插件支持六類目標:思維鏈(reasoning)、正文(modelText)、工具調用/結果(tools)、輸出文件(outputFiles)、輸入正文(userText)、輸入文件(inputFiles)。範圍可選全部會話或指定一個會話;若會話不存在會明確提示,而非僞裝成無匹配。結果頁可按類型、會話、時間或相關度篩選;查詢詞本身可匹配文件名,無需單獨後綴篩選。同一搜索請求再次打開時優先讀取物化視圖快照(僅保存結果 ID 與每會話 seq),篩選條件變化時頁面用請求籤名門控,避免在 chips 下混入另一套篩選結果。
定位(Scroll Router)¶
每條命中攜帶塊地址字段,包括 turn、step、messageId、toolCallId、blockIndex、seatIndex、blockKind、fileIndex、chunk 等。定位流程先解析 Chat 節點 key(例如 14:assistant-step<turn>:<step>、9:tool-call<id>、13:input-message<id>),再在節點內按塊文本匹配,展開摺疊的思考或工具卡片,最後將該塊滾到視口中心並僅高亮該塊。虛擬列表未掛載時會等待 Chat 視圖就緒,並結合軌跡欄輪次、loadThrough 與轉錄區滾動做多重兜底。若無法精確定位,會報「未定位到」,不會用同輪鄰居消息頂替有獨立地址的命中。
性能與隱私¶
索引未變時複用語料緩存,README 給出的實測參考爲:命中較少的查詢 p50 約 6–8 ms;單字符等寬匹配在 24 會話 / 12 900 文檔規模下約 200 ms。索引按會話分片寫入 $DSH_HOME/flash-anchor/index/(gzip),只重寫變化會話。搜索進行中後臺索引讓路;支持 1–8 線程 Worker 池,OOM/超時/崩潰時可降級爲內聯掃描並指數退避恢復。
全部索引、查詢與跳轉在本機 Host 完成,無 API Key、無插件側外網請求。落盤目錄爲 $DSH_HOME/flash-anchor/(含 state.json、索引分片、errors.log 等);爲讓歷史會話可搜,索引中保存會話文本的可檢索副本,僅駐留本機。關閉「自動索引」或執行「清空」可移除本地索引;插件不修改 Host 側的會話源數據(只讀)。
安裝與啓用¶
推薦從 GitHub Release 安裝 tgz,不要憑倉庫名自行拼接 CLI 安裝串。
- 打開 Releases,下載最新的
flash-anchor-x.y.z.tgz(當前資料中爲 v1.6.1)。 - 在 DSH 中安裝該包:
- 桌面端:設置 → 插件 → 安裝本地插件 / 插件管理器,選擇下載的 tgz;或
- 命令行/Agent:調用插件管理器install_bundle,目標填file:<tgz 絕對路徑>。 - 確認當前 profile 的 bundle 列表中出現
flash-anchor且已啓用。 - 重啓 DSH Desktop(Host 半在啓動時加載;Client 半可熱替換,必要時 Ctrl+R)。
經過上面的步驟,左側欄底部應出現 閃電錨點 入口。插件在 當前 DSH 進程權限 下運行,安裝前宜自行查看源碼與 MIT 許可證。
典型用法¶
| 操作 | 說明 |
|---|---|
| 打開 | 左側欄底部「閃電錨點」 |
| 搜索 | 輸入關鍵詞後 Enter;結果按會話分組,顯示命中輪次與時間 |
| 篩選 | 設置中配置範圍(全部/指定會話)、目標類型、排序;結果頁頂部 chips 對應當前頁面的篩選 |
| 歷史 | 歷史條目保存當時那次搜索的結果與耗時;索引變化後會提示緩存可能過期,可一鍵更新 |
| 定位 | 點擊結果 → 打開會話 → 展開摺疊 → 滾動並高亮命中塊;失敗有明確提示 |
結果頁 chips 含義(來自 README):緩存 表示來自物化視圖;原搜索 Nms 爲當初搜索耗時;建面/匹配 爲當初分段耗時;實時搜索則顯示本次耗時。
適用場景與注意¶
適合會話量大、需要跨輪次檢索工具輸出、配置片段或長文產物的 DSH 用戶。搜索爲子串匹配(大小寫不敏感),不做分詞與同義詞;中文短詞效果取決於原文表述。單文檔最多索引 256 段(約 1 MB),超出不可搜;默認結果上限 400 條(可預加載到 2000)。首次清空索引後建面需讀全部會話日誌(README 舉例:24 會話約 1.4 s);冷啓動定位通常需 2–8 s 等待視圖掛載。定位依賴 Chat DOM 契約(如 data-chat-turn、data-chat-node-key 等),DSH 大改版後可能降級爲「只到該輪」;診斷可查看 $DSH_HOME/flash-anchor/errors.log 中 [client:jump] 行。
結尾¶
FlashAnchor 把跨會話檢索與塊級跳轉收進一個本機搜索框,減輕「記得談過、找不到段落」的成本。安裝包與版本說明見 GitHub;目錄介紹見 SkillHub:BR-PC/dsh-flash-anchor。