dsh-memory-lite:按需檢索的分層記憶庫

前言

DeepSeek Harness (DSH) 的核心設計是輕量與插件化。在處理 Agent 記憶時,現有方案大多選擇“每輪自動注入”,導致記憶內容在每輪對話中重複發送,造成不必要的 Token 浪費。dsh-memory-lite 針對這一痛點,將記憶處理爲分層 Markdown,僅在查詢時返回命中片段。

這個插件通過“零常駐”和“零依賴”設計,將一次查詢的記憶讀取量控制在約 700 字符左右,相比全量讀取節省約 92%。它既是 DSH 插件,也提供獨立 CLI。

核心設計:三條不變量

  1. 零常駐:記憶不進系統提示。插件版唯一的常駐是一個工具 schema(約 50-100 token),記憶內容僅在查詢時生成。
  2. 零依賴:僅使用 Node.js 內置模塊,不引入數據庫、服務端或後臺進程。
  3. 可溯源:每條記憶都附帶 source 標記,通過 verify 命令可覈對回原始會話。

安裝與啓用

通過以下命令將插件安裝到指定 Profile:

dsh plugin --profile web add github:MiHjy12138/dsh-memory-lite

安裝完成後需要重啓後端(DSH 裝配規則:新增 bundle 不會熱加載)。

使用方式

本項目提供兩種用法,兩者共享 src/lib.mjs 實現。

方式 A:作爲 DSH 插件

安裝後,Agent 的工具表中會出現 mem_query。Agent 可直接調用該工具檢索記憶。記憶庫默認位於工作區的 memory/ 目錄下。

方式 B:作爲 CLI 工具

不依賴 DSH 環境,直接使用 Node 運行。適用於手動檢索或非 DSH 場景。

工作流與命令

使用插件前,需要完成數據的採集、提煉與構建。

  1. 採集素材
    掃描會話日誌,生成 .staging 目錄下的素材文件。
   node src/mem.mjs collect
  1. 構建記憶庫
    將素材提煉爲 SUMMARY.md、INDEX.md 和 topics/*.md。
   node src/build.mjs
  1. 查詢記憶
    根據關鍵詞檢索,只返回命中片段。
   node src/mem.mjs query "powershell bom" --n 5
  1. 溯源覈對
    驗證提取的記憶是否準確對應原始素材。
   node src/verify.mjs examples/extracts-example.json --staging examples/staging

功能特點

  • 分層 Markdown:包含頂層 SUMMARY.md(一句話提煉)、索引 INDEX.md 和按主題分區的 topics/*.md。
  • Token 優化:實測查詢一次記憶從 11,819 字符降至 738 字符,節省約 92%。
  • 零依賴:純 Node.js 實現,跨平臺。
  • 摘要稅低:常駐摘要僅佔全文的 0.9%。

適用場景

適合對 Token 成本敏感、需要人工或 Agent 精確控制檢索內容的場景。不適合需要語義召回、知識圖譜或跨機器同步的場景。

總結

dsh-memory-lite 通過分層存儲和按需檢索,解決了 Agent 記憶檢索時的 Token 浪費問題。它不提供自動注入,而是通過顯式的 mem_query 工具或 CLI 命令來管理記憶,確保每次交互只傳遞必要的信息。

GitHub 倉庫
DSH 插件目錄

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

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

小夜