前言¶
DeepSeek Harness (DSH) 默認情況下,智能體在會話結束後會丟失所有上下文。dsh-memory(項目名 Cairn)作爲插件,爲 DSH 提供了跨會話的持久化存儲和上下文注入能力。它通過持久化 KV 後端存儲事實、偏好和約定,確保信息在重啓後依然存在。
核心功能¶
持久化與作用域¶
插件將記憶存儲在持久化 KV 後端中,支持審計日誌。記憶分爲三層作用域:
* global:跨項目記憶。
* project:按倉庫自動檢測的特定項目記憶。
* user:跨項目的用戶配置文件記憶。
檢索與注入¶
- BM25 相關性搜索:使用依賴-free 的 Okapi BM25 算法,支持 CJK 分詞(拉丁詞元 + CJK 單字/二字詞組)。檢索質量經過 CI 驗證(成功@5 = 100%,MRR = 0.902)。
- 摘要優先注入:系統提示僅保留靜態指令,數據通過
<memory-digest>和<recalled-memory>標籤注入。默認僅注入摘要,保持提示詞字節穩定。 - 步驟級自動召回:每步對話後,系統會根據用戶文本進行 BM25 搜索,匹配時追加
<recalled-memory>標籤,不觸碰系統提示前綴,保持 KV 緩存穩定。
身份層¶
支持身份層(可選),智能體通過 identity_update 工具在對話中自動生成和更新兩個自文檔:
* SOUL.md:智能體的角色文檔。
* USER.md:智能體對用戶的理解。
這兩個文檔版本化存儲,默認不衰減,且優先級低於部署角色。
自動化與治理¶
- 自動學習:通過投影累加器監聽對話,捕捉“記住意圖”、修正和驗證失敗後的成功,積攢足夠的候選後觸發 LLM 提取。
- 安全掃描:在寫入和加載時掃描 API Key、Token、提示注入模式,攔截保存並標記爲
[BLOCKED: ...]。 - 去重管道:兩階段去重(停用詞過濾的 Jaccard 預過濾 + 可選 LLM 判定),防止重複積累。
- 雙層生命週期:重要記憶可被固定(pin)。過期項目級記憶會被移除,過期全局/用戶級記憶會被軟衰減(隱藏但不刪除,仍可搜索)。
管理與配置¶
- 前端 UI:提供“Memory”設置面板,包含健康儀表盤、待審覈隊列、管理界面(支持搜索、篩選、歸檔、刪除)。
- 人工審覈:開啓
confirmBeforeWrite後,提取和工具寫入會變爲待審覈隊列,需手動接受或拒絕。 - 時間窗口瀏覽:
memory_list支持按時間範圍(epoch-ms)篩選記憶。
安裝與啓用¶
插件作爲 peer dependency 依賴 dsh 核心服務,以單包結構提供功能。
npm install -g @deepseek-ai/dsh
安裝完成後,插件通過其自帶的 cordis.patch.yml 配置激活爲 DSH 的一個配置層。
典型用法¶
插件提供了以下工具和功能:
- 記憶工具:
memory_search,memory_add,memory_replace,memory_remove,memory_list,memory_get,memory_pin,memory_unpin,memory_forget。 - 身份工具:
identity_update(用於更新智能體的 SOUL 和 USER 文檔)。
在實際使用中,智能體會在對話中自動嘗試提取關鍵信息,並通過 BM25 算法在後續步驟中召回相關記憶。
適用場景與注意¶
該插件適合需要長期維護上下文、跨會話保持一致性的複雜任務開發。由於插件以當前 DSH 進程的權限運行,使用前需檢查源碼與許可證(當前資料未明確列出 License)。
結尾¶
dsh-memory 通過持久化存儲、BM25 檢索和自動化提取,解決了智能體“健忘”的問題,是構建長期運行智能體的基礎組件。
- 項目主頁: https://github.com/chenhw7/dsh-memory
- 生態目錄: https://www.skillhub.cn/plugins/chenhw7/dsh-memory