dsh-session-recall

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 或 agent profile 通常滿足此條件)。

安裝步驟

使用官方提供的安裝命令:

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、標題、日期和匹配片段。

適用場景與注意

適用場景

  • 需要檢索原始會話日誌而非合成摘要的場景。
  • 需要嚴格限定檢索範圍(如僅當前工作目錄)的場景。
  • 需要審計和可追溯性的場景。

注意事項

  1. 權限控制:all_projects 參數用於擴大檢索範圍,只有部署允許時纔有效。
  2. 版本區別:本插件與 dsh-recall-plugin 無關(後者用於消息撤銷/重放),也接替了舊版 dsh-recall。
  3. 依賴服務:必須確保 Harness 的 profile 正確掛載了 tools 和 sessionQuery 服務。
  4. 技術細節:CJK 零命中時會自動回退到子串掃描;索引在首次搜索時自動構建。

總結

dsh-session-recall 專注於原始會話日誌的讀取,不涉及寫入操作。它作爲 DeepSeek Harness 生態中“檢索層”的一部分,爲智能體提供了可審計、確定性的歷史回溯能力。插件源碼與目錄頁見下方鏈接。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜