前言¶
DeepSeek Harness (DSH) 生態中有約 65 個記憶插件,多爲單層存儲。當需要區分用戶、環境和項目的上下文,並控制每層的內存佔用時,這些插件難以直接滿足需求。dsh-tiered-memory 插件引入了分層存儲與預算管理機制,移植自 Hermes Agent 的記憶紀律,是 DSH 生態中首個實現該概念的插件。
核心功能¶
該插件通過以下能力實現分層管理:
- mem_set: 寫入穩定事實。參數包含 tier(層級)、key、content。同 key 會進行 upsert。若目標層已滿,將拒絕寫入。
- mem_get: 按鍵值精確讀取。
- mem_query: 語義查詢,自動路由到對應層(用戶特徵詞 -> user,環境詞 -> env,項目詞 -> project)。僅在檔案存在時返回,未命中返回
[],不編造。 - tier_summary: 查看各層用量及驅逐候選(冷條目、舊條目)。
- mem_delete: 顯式刪除。淘汰權交給模型,不自動刪除。
架構與邏輯¶
插件將記憶分爲三層:user、env、project。每層獨立管理字符預算。內容採用聲明式事實,單條上限默認爲 400。
當某層寫入滿額時,mem_set 會返回 tier full — delete or merge first,阻止寫入。驅逐候選通過 tier_summary 列出,需通過 mem_delete 顯式執行。
安裝與啓用¶
在 DSH 環境中,通過以下命令安裝插件:
dsh plugin --profile web add "github:leetom314/dsh-tiered-memory#main"
驗證與測試¶
插件提供了完整的測試驗證流程:
- 單測:使用 node --test,tiers.js 行覆蓋率達到 98.5%。
- 真實 e2e:通過 verify.sh 腳本進行隔離測試,動態生成 overlay 文件,不污染真實記憶。驗證包括三層寫入、跨層查詢路由正確性以及預算拒絕閉環。
注意事項¶
- 本插件移植自 Hermes Agent 的記憶紀律。
- 首次使用前建議檢查源碼與許可證(MIT)。
- 插件以當前 DSH 進程權限運行。