前言¶
DeepSeek Harness (DSH) 採用了「一切皆插件」的理念,但其默認配置中缺少記憶子系統。官方建議通過第三方 MCP 配置實現記憶功能,但這通常需要手動注入,且不具備遺忘策略或跨會話持久化能力。你的 Agent 往往在每次新會話中都會重置。
dsh-auto-memory 旨在填補這一空白。它提供類似 Claude Code 的持久化記憶能力,以純文件形式存儲,無需任何外部服務或嵌入模型。
是什麼¶
這是一個類型化記憶文件插件,由 AskTheWay 維護。它通過自動注入類似 MEMORY.md 的索引文件到系統提示詞中,讓 Agent 能夠跨會話保留信息。
核心價值:零服務器、零嵌入、零配置的文件級記憶系統。
統計:106 stars,MIT 許可證。
核心功能¶
- 自動注入:記憶索引自動注入到每次請求的系統提示詞中(位置 4000)。當記憶爲空時,注入內容爲 0 字節。
- 類型化記憶:支持
user、feedback、project、reference四種類型。 - 作用域隔離:提供工作區(Workspace)和用戶(User)兩層作用域,防止跨項目信息泄露。
- 數據安全:支持跨進程鎖和孤兒鎖自愈,防止併發寫入崩潰或因 Ctrl+C 導致的數據損壞。
- 無外部依賴:僅使用純 Markdown 文件存儲,不依賴數據庫或 Embedding 服務。
- 更新-替換語義:合併更新事實,而非堆積重複信息。
- 固定探針保留:在內存預算受限時,固定探針的保留率 ≥80%。
安裝與啓用¶
安裝前請確保環境滿足要求:@deepseek-ai/dsh >= 0.1.5-rc.2,Node.js 版本爲 ^22.19 || >=24。
使用官方安裝命令添加插件:
dsh plugin --profile demo add dsh-auto-memory
添加後,在配置文件中啓用並調整參數。重啓對應 Profile 的 DSH 進程即可生效。
典型用法¶
在對話中記憶信息¶
在對話中直接告知 Agent 需要記住的信息。Agent 會調用工具寫入記憶,並在後續對話中引用。
示例指令:
“記住:我是一個正在準備面試的 Python 後端工程師。”
隨後詢問:
“你知道我什麼?”
Agent 將會調用 memory_read 工具,並基於記憶索引回答。
使用演示腳本¶
項目內置了演示腳本,無需 API Key 即可觀察記憶寫入、索引構建、注入和回憶的全過程:
node scripts/demo.mjs
配置¶
插件支持通過 cordis.patch.yml 覆蓋默認配置。以下爲部分關鍵配置項:
- id: auto-memory
config:
maxBytes: 4096 # 索引注入的字節預算(默認 4096)
memoryDir: D:/memories # 記憶文件存儲目錄(默認 $DSH_HOME/memory)
enableUserScope: true # 是否啓用用戶層作用域
staleAfterDays: 0 # 超過 N 天未讀的記憶是否軟隱藏(0 爲不隱藏)
autoSummarize: false # 是否在會話結束時自動合併記憶
autoSummarizeMaxMemories: 5 # 自動合併時的最大條目數
autoSummarizeMaxTokens: 2048 # 合併輸出的 Token 上限
工作原理¶
- 寫入:Agent 調用
memory_write工具。名稱規範化爲[a-z0-9-],保留名會被拒絕。寫入過程使用原子文件鎖,並在鎖內重建全量索引。 - 注入:系統提示詞組裝時,動態插入記憶索引(位置 4000)。每次請求都會重新評估注入內容,並根據字節預算進行截斷。若記憶爲空,則不注入。
- 審計:不使用自定義會話事件,所有流經標準
tool/call/tool/result接口。
適用場景與注意¶
適用場景:需要長期維護項目上下文、個人偏好記憶、以及需要跨會話保持連貫性的開發工作流。
注意事項:
- 版本要求:必須配合
@deepseek-ai/dsh >= 0.1.5-rc.2使用,並建議使用官方桌面客戶端 0.2.0-rc.2 進行驗證。 - 截斷策略:當前的記憶截斷基於索引順序(位置性),而非相關性排序。在記憶數量很大且接近預算上限時,保留率會下降,但通過固定探針機制可保證關鍵信息 ≥80% 的保留率。
- 文件名衝突:保留名被嚴格阻止。例如,文件名
memory會在不區分大小寫的文件系統上與MEMORY.md衝突,插件會拒絕該寫入操作。 - 特殊字符處理:記憶內容中的
{{會被轉義,防止模型解析錯誤導致崩潰。 - 會話限制:不允許自定義會話事件,否則可能導致 DSH 會話拒絕恢復。
總結¶
dsh-auto-memory 將記憶能力原生集成到 DeepSeek Harness 的提示詞管線中,通過文件系統實現了輕量級、類型化且安全的持久化存儲。它解決了 Agent “健忘” 的設計缺陷,適合追求工程化、可審計記憶管理的開發者使用。