前言¶
在 DSH 的長會話中,上下文會隨多輪對話不斷累積。經過壓縮或摘要後,模型窗口裏留下的可能只是概括,而原始措辭、具體設置和臨時討論並不方便再次定位。dsh-recall 把“搜索聊天記錄”做成一個可被 agent 調用的召回工具,用於在需要時找回會話中的原文片段。
這是什麼¶
dsh-recall 是 Relistencode 維護的 DSH 插件,用於在 DeepSeek Harness 中檢索會話歷史原文。它提供 literal、fuzzy 和 semantic 三層檢索,資料稱其完全本地離線,無外部模型 API。
資料中給出的版本爲 0.2.2,許可證爲 MIT,運行環境要求 Node >=22。它面向 DSH web profile 安裝,並可在 agent 需要時調用 recall 工具。
核心功能¶
三層混合檢索¶
dsh-recall 將 literal、fuzzy 和 semantic 三種檢索結果合併。literal 與 fuzzy 負責直接關鍵詞和近似表述;semantic 層只在覆蓋 ≥90% 的 literal/fuzzy 命中時參與,否則靜默降級。
當某一層不可用時,機制會退化到下一層,而不是直接報錯。這樣 recall 工具能繼續返回可用結果。
漸進披露¶
默認情況下,dsh-recall 返回輕量粗召回。需要更完整內容時,可以進一步讀取原文窗口。
這使得插件可以先提供足夠判斷的摘要或片段,再按需展開原文,避免一開始就載入過多上下文。
事件聚合¶
同一主題的多次提及會被合併爲事件。資料稱這可以將散落的多處提及整理成更完整的一組內容,並可通過進一步讀取獲得完整事件文本。
對反覆出現的設置、決定或需求,這比逐條碎片更接近一次完整討論。
主動召回¶
agent 可以在需要時自行調用 recall 工具。典型場景包括壓縮之後、當前上下文缺少早期細節,或用戶明確要求找回此前討論。
默認範圍是當前會話。workspace 和 all 範圍僅在用戶顯式請求時使用。
壓縮錨點與歷史覆蓋¶
在 compaction/summary 時,dsh-recall 會注入輕量錨點。索引會覆蓋已被壓縮的歷史,因此摘要之後仍可以檢索原始文本。
資料還列出增量索引和後臺 warm-up,用於在後臺完成索引準備。
本地離線與可選模型¶
dsh-recall 的資料稱其完全本地離線,無外部模型 API。
如果可選依賴 dsh-recall-models 無法解析,資料稱會使用倉庫內模型。
安裝與啓用¶
安裝¶
執行以下命令安裝指定版本:
dsh plugin --profile web add dsh-recall@0.2.2
安裝完成後,重啓 dsh web。
資料還提到,也可以從 dsh-extension-hub 的 Add-ons 塊安裝、禁用或卸載 dsh-recall。
從源碼安裝¶
如果使用源碼安裝,命令爲:
dsh plugin --profile web add git+https://github.com/Relistencode/dsh-recall.git
這種方式適合離線環境。
可選配置¶
如果禁用語義層,只保留 literal 和 fuzzy,可以配置:
- id: recall
name: dsh-recall
config:
semantic: false
如果希望降低後臺 warm-up 的 CPU 佔用,可以配置:
- id: recall
name: dsh-recall
config:
warmup: gentle
以上配置項來自已覈實資料;實際使用以插件當前版本文檔爲準。
典型用法¶
安裝並重啓 DSH web 後,可以在對話中讓 agent 查找早期上下文。用戶也可以顯式提出召回請求,例如要求確認此前是否討論過某個配置、某個決定或某個需求。
召回默認從當前會話開始。若需要擴大到 workspace 或 all 範圍,應由用戶明確請求。
如果輕量粗召回不夠完整,可以進一步讀取原文窗口;如果同一主題分散在多處,可以先查看聚合後的事件,再讀取完整事件文本。
適用場景與注意¶
dsh-recall 更適合歷史較長、經過壓縮,或同一主題多次出現的會話。它按需提供原始記錄,而不是一次性把大量歷史塞入上下文。
需要注意:dsh-recall 作爲 DSH 插件,會以當前 dsh 進程權限運行。安裝前應檢查源碼、依賴和 MIT 許可證,並確認其本地離線行爲符合你的使用環境。
鏈接¶
- 目錄頁:https://www.skillhub.cn/plugins/Relistencode/dsh-recall
- GitHub:https://github.com/Relistencode/dsh-recall