DeepSeek Harness (DSH) 生態中的插件通常負責特定能力。對於需要回溯歷史對話的開發者來說,官方 sessionQuery 服務提供了基礎接口,但缺乏一個面向模型的原生檢索工具,且默認配置通常不開啓持久化全文檢索。dsh-session-recall 補齊了這一環節,它通過 ctx.sessionQuery 接口,爲模型提供了一個確定性、帶顯式作用域控制的跨會話全文檢索工具。
是什麼¶
這是一個 Memory 類別的插件,由 kittimzhe 維護。它的核心價值在於讓智能體能夠直接搜索過去的會話記錄,而不是依賴外部記憶框架或合成摘要。
核心能力¶
該插件具備以下能力:
- 跨會話全文檢索:支持對歷史會話記錄進行文本搜索。
- 面向模型的
recall工具:直接暴露給模型調用的接口。 - 持久化 FTS5 索引:索引存儲在本地文件中,不會因進程重啓而丟失。
- CJK 零命中子串回退:針對中文分詞限制的優化,查詢短詞時自動回退到子串掃描。
- 默認基於 CWD 的作用域檢索:默認只搜索當前工作目錄(cwd)啓動的會話。
- 類型化的
recall結果:返回包含穩定字段的 JSON 結構,包含會話 ID、標題、日期和匹配片段。
安裝與啓用¶
前置條件¶
- Node.js 20 或 22。
- DeepSeek Harness 的 profile 需要掛載
tools和sessionQuery服務(默認的web或agentprofile 通常滿足此條件)。
安裝步驟¶
使用官方提供的安裝命令:
dsh plugin --profile web add dsh-session-recall
安裝完成後,索引文件將存儲在 <DSH_HOME>/session-recall/index.db。首次搜索時會自動構建索引。
典型用法¶
在會話中,可以通過自然語言觸發,也可以通過代碼顯式調用。
自然語言觸發¶
智能體聽到提示詞時會自動使用該工具:
recall: which font did we pick for the resume last week?
工具調用示例¶
recall({ query }) // 搜索當前項目會話,返回最佳匹配事件
recall({ query, all_projects: true }) // 搜索所有會話(需要部署權限)
recall({ query, session_id }) // 搜索指定會話的事件
返回結果會渲染爲原生搜索卡片,包含 session id、標題、日期和匹配片段。
適用場景與注意¶
適用場景¶
- 需要檢索原始會話日誌而非合成摘要的場景。
- 需要嚴格限定檢索範圍(如僅當前工作目錄)的場景。
- 需要審計和可追溯性的場景。
注意事項¶
- 權限控制:
all_projects參數用於擴大檢索範圍,只有部署允許時纔有效。 - 版本區別:本插件與
dsh-recall-plugin無關(後者用於消息撤銷/重放),也接替了舊版dsh-recall。 - 依賴服務:必須確保 Harness 的 profile 正確掛載了
tools和sessionQuery服務。 - 技術細節:CJK 零命中時會自動回退到子串掃描;索引在首次搜索時自動構建。
總結¶
dsh-session-recall 專注於原始會話日誌的讀取,不涉及寫入操作。它作爲 DeepSeek Harness 生態中“檢索層”的一部分,爲智能體提供了可審計、確定性的歷史回溯能力。插件源碼與目錄頁見下方鏈接。