DeepSeek Harness (DSH) 採用插件化架構。在多輪對話或長時間運行中,智能體面臨上下文丟失、記憶碎片化的問題。dsh-memory 是一個爲 DSH 設計的持久化原子事實記憶插件,旨在讓智能體能夠跨會話記住用戶偏好、項目知識,並提供可控的檢索路徑。
插件定位¶
該插件基於 Cordis 開發,實現了記憶系統的 P0-P2 設計規範。它不依賴外部向量庫或圖數據庫,通過本地 JSON 文檔實現數據的持久化與存儲。
核心功能¶
原子事實模型¶
所有記憶最終被解析爲 主體 - 謂語 - 賓語 - 限定詞 的最小化自包含斷言。語義記憶、情節記憶和程序記憶均統一爲這一契約,並通過穩定的 semantic_key 進行去重。
memory 服務與顯式工具¶
插件提供了一個 memory 服務(ctx.memory),並提供了一系列顯式工具供模型調用:
* recall:檢索記憶。
* remember:存儲記憶。支持可選的 procedure 參數,用於存儲程序記憶(結構化步驟)。
* forget / forget_all:刪除特定或全部記憶。
* link:建立記憶之間的關聯。
* consolidate:後臺合併,處理 TTL 過期和相同鍵的去重。
* extractAndRemember:後臺提取並存儲記憶。
* read_user_profile:返回聚合的實體卡片,包含核心摘要和分主題分組。
user.md 往返¶
支持 user.md 視圖的渲染與同步。插件可從實體卡片生成 user.md 文件,並監聽外部編輯,將其作爲 user_edit 事件寫入原子事實(信譽度 1.0,優先級最高)。
快速通道捕獲¶
通過 session/event 監聽器,利用零 LLM 規則捕獲信號。僅當配置的觸發短語(如“記住…”、“我的偏好是…”)或包含事實性信號(數字、日期、專有名詞)的消息觸發時,纔會將內容放入後臺隊列。
隱私衛士¶
內置 PII 檢測與分級機制:
* PII 標記內容在存儲時被脫敏(如 <<phone>>),不進入原始內存。
* confidential 內容在召回時被遮罩並標記 [confidential]。
* secret 內容僅在滿足特定配置(secretRequiresExplicitAuth: false 且在檢索過濾列表中)時才返回。
動態上下文注入¶
召回的事實通過 DSH 的 system-prompt/assemble 上下文通道注入,作爲數據而非指令展示,確保會話日誌可重建。
後臺合併¶
定時器觸發 TTL 過期清理和相同鍵的去重合並。
典型用法¶
模型通過調用上述工具與系統交互。
-
檢索記憶
模型調用memory_recall獲取相關上下文。 -
存儲偏好
模型調用memory_remember保存用戶偏好。若需存儲操作步驟(程序記憶),可傳入procedure參數。
{
"subject": "用戶",
"predicate": "偏好編程語言",
"object": "Rust",
"qualifiers": ["最近的項目"]
}
- 獲取實體卡片
模型調用read_user_profile獲取聚合後的用戶信息概覽。
配置說明¶
所有設置在 src/config.ts 中定義(使用 Schemastery 的 z.object)。
默認配置(profile: personal)¶
| 配置項 | 默認值 | 說明 |
|---|---|---|
dataFile |
'' |
默認爲內存存儲。需設置爲具體路徑以持久化數據。 |
userMdFile |
'' |
默認禁用。需設置爲具體路徑以啓用 user.md 渲染與同步。 |
profile |
personal |
配置文件名。 |
injectContext |
true |
是否動態注入上下文。 |
captureEnabled |
true |
是否啓用捕獲。 |
llmExtractionEnabled |
false |
LLM 提取功能默認關閉,依賴規則驅動。 |
提取配置¶
extraction.triggers 配置觸發列表,用於快速通道捕獲。
注意事項¶
- 存儲形式:數據以明文 JSON/Markdown 存儲在文件中,無加密集成,無操作系統鑰匙串集成。請確保存儲目錄的文件系統權限安全。
- 檢索能力:無外部向量庫、SQLite 或圖數據庫。語義檢索目前是基於 BM25 的近似實現。
- LLM 提取:LLM 提取默認關閉。若需更豐富的提取能力,需在配置中啓用
llmExtractionEnabled並配置 Provider/Model。 - 依賴:需滿足 Node.js 版本要求(
^22.19.0 || >=24.0.0)及對應的 DSH 生態依賴。
總結¶
dsh-memory 爲 DSH 智能體提供了一個輕量級、可審計的記憶層。它通過原子事實模型保證了記憶的穩定性,並通過 user.md 往返機制提供了人工介入的可能性。對於需要長期記憶的項目,建議配置 dataFile 路徑以啓用持久化。