dsh-auto-memory:DeepSeek Harness 的 Claude Code 風格自動記憶插件

前言

DeepSeek Harness (DSH) 採用了「一切皆插件」的理念,但其默認配置中缺少記憶子系統。官方建議通過第三方 MCP 配置實現記憶功能,但這通常需要手動注入,且不具備遺忘策略或跨會話持久化能力。你的 Agent 往往在每次新會話中都會重置。

dsh-auto-memory 旨在填補這一空白。它提供類似 Claude Code 的持久化記憶能力,以純文件形式存儲,無需任何外部服務或嵌入模型。

是什麼

這是一個類型化記憶文件插件,由 AskTheWay 維護。它通過自動注入類似 MEMORY.md 的索引文件到系統提示詞中,讓 Agent 能夠跨會話保留信息。

核心價值:零服務器、零嵌入、零配置的文件級記憶系統。

統計:106 stars,MIT 許可證。

核心功能

  1. 自動注入:記憶索引自動注入到每次請求的系統提示詞中(位置 4000)。當記憶爲空時,注入內容爲 0 字節。
  2. 類型化記憶:支持 user、feedback、project、reference 四種類型。
  3. 作用域隔離:提供工作區(Workspace)和用戶(User)兩層作用域,防止跨項目信息泄露。
  4. 數據安全:支持跨進程鎖和孤兒鎖自愈,防止併發寫入崩潰或因 Ctrl+C 導致的數據損壞。
  5. 無外部依賴:僅使用純 Markdown 文件存儲,不依賴數據庫或 Embedding 服務。
  6. 更新-替換語義:合併更新事實,而非堆積重複信息。
  7. 固定探針保留:在內存預算受限時,固定探針的保留率 ≥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 接口。

適用場景與注意

適用場景:需要長期維護項目上下文、個人偏好記憶、以及需要跨會話保持連貫性的開發工作流。

注意事項:

  1. 版本要求:必須配合 @deepseek-ai/dsh >= 0.1.5-rc.2 使用,並建議使用官方桌面客戶端 0.2.0-rc.2 進行驗證。
  2. 截斷策略:當前的記憶截斷基於索引順序(位置性),而非相關性排序。在記憶數量很大且接近預算上限時,保留率會下降,但通過固定探針機制可保證關鍵信息 ≥80% 的保留率。
  3. 文件名衝突:保留名被嚴格阻止。例如,文件名 memory 會在不區分大小寫的文件系統上與 MEMORY.md 衝突,插件會拒絕該寫入操作。
  4. 特殊字符處理:記憶內容中的 {{ 會被轉義,防止模型解析錯誤導致崩潰。
  5. 會話限制:不允許自定義會話事件,否則可能導致 DSH 會話拒絕恢復。

總結

dsh-auto-memory 將記憶能力原生集成到 DeepSeek Harness 的提示詞管線中,通過文件系統實現了輕量級、類型化且安全的持久化存儲。它解決了 Agent “健忘” 的設計缺陷,適合追求工程化、可審計記憶管理的開發者使用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜