在 DeepSeek Harness (DSH) 的插件化生態中,構建具備長期記憶能力的智能體是常見需求。傳統記憶方案往往依賴靜態日誌,檢索效率低,或者依賴外部雲服務,存在隱私風險。dsh-living-memory 旨在解決這些問題,提供一個完全本地化、具備自我維護能力的記憶存儲與檢索方案。
插件介紹¶
dsh-living-memory 是一個爲 DeepSeek Harness 設計的“活體”記憶插件,由 dearbld 維護。它將智能體在對話中的信息、學到的教訓以及做出的決策捕獲到本地的 SQLite 知識庫中,並定期進行主動維護:去重、合併、關聯成知識圖譜,以及模擬海馬體的“遺忘-重用”機制。
核心功能¶
- 完全本地化與單文件存儲:數據完全存儲在本地,單一 SQLite 文件。默認情況下,沒有任何遙測數據離開設備。可選的向量通道在未配置前處於關閉狀態。
- 自維護夜間巡檢:插件會定期運行夜間巡檢,自動處理存儲庫。它執行去重與合併(處理高相似度條目)、時間衰減(未使用的條目權重降低)、衝突檢測(新舊記憶衝突時標記而非靜默覆蓋)以及知識圖譜的構建。
- 混合召回機制:支持 7 種信號的混合檢索,使用 Reciprocal Rank Fusion (RRF) 算法融合排序。這包括全文檢索(SQLite FTS5 + jieba 分詞)、衰減因子、相關性權重、共現統計、知識圖譜 PPR 算法以及跳數增強。
- 中文優先處理:採用專門的中文分詞配置,確保中文語料檢索的準確性。
- Web GUI 遙測面板:集成在 DSH 的 Web GUI 中,提供數據快照和審計追蹤。
- 數據與代碼分離:守衛規則和字典配置爲 JSON 數據文件而非代碼邏輯。這意味着調整防禦策略或自定義術語無需修改源碼,且發佈的包中不會包含特定的站點特定黑名單。
安裝與啓用¶
使用官方安裝命令即可完成註冊。該命令會根據指定的 profile(默認爲 web)調用對應的包管理器。
dsh plugin --profile web add dsh-living-memory
安裝完成後,重啓 DSH,插件會自動註冊以下工具:
memory:提供search(搜索)、timeline(時間線)、stats(統計)、read_episodic(讀取片段)、read_evolution(讀取演變)功能。memory_write:提供帶類型寫入功能(fact/decision/todo/lesson),支持可選的關係邊。
插件通過 cordis.patch.yml 自動掛載讀寫角色,默認配置爲零配置。若需限制寫入權限,可調整該文件。
數據位置與配置¶
數據文件默認存儲在用戶主目錄下的 DSH 配置路徑中:
~/.dsh/dsh-living-memory/
該目錄包含數據庫文件、每日快照以及配置文件(如 guard-rules.json 和 dict-extra.json)。
向量通道(可選)¶
插件支持向量通道用於增強檢索,但默認關閉。如需啓用,需在 DSH 的憑證管理器中配置 EMBEDDING_BAILIAN_KEY。此時插件會通過 DSH 的憑證管道讀取該密鑰,而不會在本地存儲該密鑰。
守衛規則與字典¶
根據設計理念,守衛規則和字典是數據文件,而非代碼。
* 守衛規則:分三層,第一層優先級最高。包含拒絕(硬攔截)、敏感(不自動提取)、警告(軟攔截)三類規則組。
* 字典:用於實體識別和知識圖譜類型標註。支持自定義 JSON 文件覆蓋默認配置。
典型用法¶
在智能體的工作流中,推薦遵循以下步驟:
- 先搜索再行動:在執行任務前調用
memory search <topic>,檢查是否有相關的過往決策或事實。 - 寫入關鍵信息:通過
memory_write記錄決策、教訓或待辦事項,並指定類型。 - 查看時間線:使用
memory timeline查看按時間倒序排列的記憶概覽,幫助智能體定位上下文。 - 依賴夜間巡檢:讓插件在夜間自動執行去重、合併和衰減操作,保持知識庫的整潔和準確。
注意事項¶
- 插件以當前 DSH 進程的權限運行,請確保安裝前檢查源碼與許可證(MIT)。
npm publish前會自動運行scripts/preflight.cjs進行發佈前的合規掃描。- 插件不強制依賴任何外部服務,即便向量通道不可用,剩餘的 6 種本地信號也能保證基本功能運行。