前言¶
DeepSeek Harness (DSH) 採用插件化架構。在開發智能體時,對話歷史會隨輪次增長,且難以從中提取持久化的關鍵事實。本插件旨在爲 DSH 提供結構化的長期記憶能力,通過純文本存儲和動態注入機制,使智能體能夠維護關於用戶或項目的長期狀態。
插件介紹¶
deepseek-memory 是 DeepSeek Harness 的精選長期記憶插件。它提供兩級純文本事實存儲、記憶工具及回合後整合功能。存儲內容爲有界的精選事實,而非對話記錄索引,通過每次請求的動態注入來保持上下文的時效性。
核心功能¶
兩級存儲¶
插件支持兩級目錄存儲,分別用於不同維度的記憶:
* 用戶級:存儲於 $DSH_HOME/memory/,記錄關於人的身份信息。
* 項目級:存儲於 <cwd>/.dsh-memory/,記錄項目約定與決策。
記憶工具¶
插件提供以下記憶管理工具:
* memory_add:添加記憶
* memory_update:更新記憶
* memory_delete:刪除記憶
* memory_list:列出記憶
* memory_search:搜索記憶
* memory_status:查看狀態
請求注入¶
通過 systemPrompt 服務,插件會在每次請求中動態注入記憶內容。這一過程發生在請求組裝階段,不會將記憶寫入會話歷史。
回合後整合¶
插件使用受限子代理執行記憶整合。默認爲 gated 模式,僅在特定條件觸發時運行;也可配置爲 always 模式。
安裝與啓用¶
在終端執行以下命令安裝插件:
dsh plugin --profile <name> add deepseek-memory
安裝完成後,必須重啓配置文件以使插件生效。
配置¶
在 cordis.patch.yml 中覆蓋 memory.config 即可調整行爲:
- id: memory
config:
maxEntries: 80
consolidation: always
關鍵配置項說明:
* maxEntries:默認 50,每級存儲的最大條目數。
* consolidation:默認 gated,可選 off、gated、always。控制整合觸發時機。
* injectChars:默認 4000,單次請求注入的最大字符數。
存儲格式¶
存儲文件爲 JSON 格式,版本爲 1。ID 基於文本生成,因此重複添加相同文本視爲無操作。
{
"format": 1,
"tier": "project",
"revision": 3,
"updatedAt": 1790000000000,
"entries": [
{
"id": "m1a2b3c4",
"text": "The build uses tsc, not a bundler.",
"tags": ["build"],
"createdAt": 1789990000000,
"updatedAt": 1790000000000,
"origin": "consolidator"
}
]
}
注意事項¶
- 依賴注入:插件依賴
inject字段註冊systemPrompt服務,缺少該字段會導致服務不可用。 - 編譯產物:倉庫包含編譯後的
lib/目錄,無需構建步驟或 allowlist。 - 整合模式:整合功能默認爲 gated,避免每輪對話都消耗模型資源。
總結¶
該插件通過兩級純文本存儲和動態注入機制,解決了 DSH 中長期記憶的持久化問題。如需使用,請確保安裝後重啓配置,並檢查源碼許可證。