前言¶
DSH 的插件生態允許在宿主內掛載更多能力。長對話、跨會話任務中,模型經常會缺少之前確認過的上下文:任務狀態、用戶偏好、項目約定、已經走過的流程等,導致重複提問或重複探索。
dsh-layered-memory 解決的是這類記憶缺失問題。它是一個 DeepSeek Harness 記憶插件,會在後臺把對話沉澱爲分層記憶,並在模型下一步執行前,把相關記憶注入上下文。下面介紹它的能力、安裝方式、驗證步驟和注意事項。
這是什麼¶
dsh-layered-memory 是面向 DeepSeek Harness 的 L0~L3 分層蒸餾記憶插件,由 JunNanLYS 維護,許可證爲 MIT。
它的核心路徑是:
1、捕獲對話,形成 L0。
2、抽取原子記憶,形成 L1。
3、整合場景塊,形成 L2。
4、蒸餾核心畫像或團隊方法論,形成 L3。
5、在模型每一步前自動召回相關記憶,並注入上下文。
簡單來說,它把“對話裏出現過的信息”變成可複用、可召回、可注入的記憶資產。
核心能力¶
後臺分層蒸餾¶
插件會在後臺自動完成以下流程:
- L0:捕獲原始對話。
- L1:抽取原子記憶。
- L2:整合場景塊。
- L3:蒸餾核心畫像、團隊方法論等更穩定的記憶內容。
這個過程不需要用戶每一步手動整理記憶。
自動召回注入¶
在模型每一步前,插件會把相關記憶注入上下文。
在界面中,這類注入會以“上下文注入 · memory”消息行呈現,方便確認記憶是否生效。
注入過程有長度預算與時間預算。超限會截斷,超時會跳過,目標是避免拖慢對話。
三個記憶工具¶
插件提供以下三個記憶工具:
memory_searchconversation_searchmemory_read_scene
它們可用於主動查找記憶、對話內容或場景塊。
會話級記憶檔位¶
插件支持會話級記憶檔位,包括:
- 日常
- 工作
- 智能
- 關閉
同時支持只寫不讀開關,用於控制當前會話是否只沉澱記憶而不注入記憶。
去重與重置¶
插件支持同會話去重:已經注入過的記憶不會重複注入。
當上下文被 /compact 壓縮或清空時,會自動重置,使相關記憶有機會重新進入上下文。
時效加權¶
召回排序支持時效加權,配置項爲 recall.decayHalfLifeDays。
該值可調,設爲 0 表示關閉時效加權。
成本記錄¶
蒸餾過程中發生的 LLM 調用 token 成本會寫入 SQLite 明細表。
在設置頁的“成本”Tab 中可查看相關記錄。成本記賬失敗時只告警,不會阻塞蒸餾。
數據目錄¶
記憶數據寫入:
~/.dsh/memory/
其中包含以下目錄和文件:
conversations/records/scenes/memory.db
安裝與啓用¶
先確認環境滿足 Node 版本要求:
Node >= 22.16
安裝目標是 DSH 的 web Profile。按文檔要求,只執行指定命令,不要修改其他 Profile。
方式一:使用 npx 安裝¶
適合不預裝 dsh CLI 的情況:
npx -y @deepseek-ai/dsh plugin --profile web add dsh-layered-memory
這條命令會通過 npm 執行官方 CLI,並將插件添加到 web Profile。
方式二:使用已安裝的 dsh CLI¶
如果你已經安裝了 dsh CLI,可以直接執行:
dsh plugin --profile web add dsh-layered-memory
如果當前 dsh 是 pnpm 轉發器,並且本機未安裝 pnpm,先安裝 pnpm:
npm i -g pnpm
dsh plugin --profile web add dsh-layered-memory
方式三:使用倉庫或本地路徑¶
適合調試或本地開發:
dsh plugin --profile web add https://github.com/JunNanLYS/dsh-layered-memory
或者:
dsh plugin --profile web add /path/to/dsh-layered-memory
從源碼安裝¶
如果要從源碼構建並安裝:
git clone https://github.com/JunNanLYS/dsh-layered-memory
cd dsh-layered-memory
npm install
npm run build
dsh plugin --profile web add .
安裝後驗證¶
安裝完成後,先檢查數據目錄:
~/.dsh/memory/
應出現以下內容:
conversations/
records/
scenes/
memory.db
同時檢查 DSH 界面:
- 設置頁出現“記憶”頁面。
- 輸入欄出現檔位 pill。
確認完成後,需要手動重啓 DSH Web Host。不要替用戶關閉或重啓正在運行的 DSH。
典型用法¶
安裝並重啓後,可以按下面方式使用。
1、開啓會話,正常和模型對話。
2、插件在後臺完成 L0 捕獲、L1 原子記憶、L2 場景整合、L3 畫像蒸餾。
3、模型下一步執行前,插件會把相關記憶注入上下文,並在界面中顯示“上下文注入 · memory”消息行。
4、如果模型需要主動查記憶,可以調用:
memory_search
conversation_search
memory_read_scene
5、在輸入欄或設置中切換會話級記憶檔位:
日常
工作
智能
關閉
6、如果只想沉澱記憶,不希望當前會話被記憶內容影響,可以開啓只寫不讀開關。
7、如果希望更偏向較新的記憶,可以調整:
recall.decayHalfLifeDays
設爲 0 時關閉時效加權。
8、如果上下文被 /compact 壓縮或清空,插件會自動重置注入狀態,後續可重新召回相關記憶。
卸載¶
如需卸載:
dsh plugin --profile web remove dsh-layered-memory
然後重啓 DSH Web Host。
卸載後,數據仍保留在:
~/.dsh/memory/
如果確認不再需要,可以手動刪除整個目錄。
適用場景¶
dsh-layered-memory 比較適合以下情況:
- 使用 DSH
webProfile 的開發者或用戶。 - 希望在長對話中保留關鍵上下文。
- 希望跨會話複用之前確認過的信息。
- 希望減少重複提問、重複解釋和重複探索。
- 需要查看蒸餾 LLM 調用的 token 成本。
- 需要在不同會話中切換記憶策略,例如日常、工作、智能或關閉。
注意事項¶
1、環境要求:需要 Node >= 22.16。
2、安裝目標:只面向 DSH 的 web Profile 安裝,不要順手修改其他 Profile。
3、權限影響:插件運行在 DSH 宿主環境中,會使用當前 dsh 進程可訪問的會話、模型調用和文件系統權限。安裝前建議檢查源碼、依賴和 MIT 許可證。
4、數據位置:記憶數據寫入 ~/.dsh/memory/,其中可能包含對話沉澱出的記憶內容。敏感項目下要注意目錄權限和清理策略。
5、重啓要求:安裝或卸載後需要手動重啓 DSH Web Host,不要替用戶關閉或重啓正在運行的 DSH。
6、卸載清理:卸載插件不會自動清理 ~/.dsh/memory/ 下的數據。如果不需要,手動刪除整個目錄即可。