前言¶
DeepSeek Harness (DSH) 的核心設計是輕量與插件化。在處理 Agent 記憶時,現有方案大多選擇“每輪自動注入”,導致記憶內容在每輪對話中重複發送,造成不必要的 Token 浪費。dsh-memory-lite 針對這一痛點,將記憶處理爲分層 Markdown,僅在查詢時返回命中片段。
這個插件通過“零常駐”和“零依賴”設計,將一次查詢的記憶讀取量控制在約 700 字符左右,相比全量讀取節省約 92%。它既是 DSH 插件,也提供獨立 CLI。
核心設計:三條不變量¶
- 零常駐:記憶不進系統提示。插件版唯一的常駐是一個工具 schema(約 50-100 token),記憶內容僅在查詢時生成。
- 零依賴:僅使用 Node.js 內置模塊,不引入數據庫、服務端或後臺進程。
- 可溯源:每條記憶都附帶
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 場景。
工作流與命令¶
使用插件前,需要完成數據的採集、提煉與構建。
- 採集素材
掃描會話日誌,生成.staging目錄下的素材文件。
node src/mem.mjs collect
- 構建記憶庫
將素材提煉爲SUMMARY.md、INDEX.md和topics/*.md。
node src/build.mjs
- 查詢記憶
根據關鍵詞檢索,只返回命中片段。
node src/mem.mjs query "powershell bom" --n 5
- 溯源覈對
驗證提取的記憶是否準確對應原始素材。
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 命令來管理記憶,確保每次交互只傳遞必要的信息。