前言¶
DeepSeek Harness(DSH)默認按會話工作:關掉這一輪,下一輪通常不會自動帶上你的偏好、項目約定和上次做過的決定。官方倉庫把核心理念寫成「一切皆插件」(Everything is a Plugin),長期記憶並不內置在覈心裏,而是交給記憶類插件去補。
社區目錄 DeepSeek Harness 插件庫 把這類插件單獨歸在「記憶」分類。需要說明的是:這個目錄是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不能當成官方應用商店。目錄裏的 dsh-mneme 走的是另一條路——記憶不只進數據庫,還會寫成你能打開、能改的 Markdown。本文按目錄詳情頁、GitHub 倉庫 README / package.json,以及 DeepSeek Harness 官方倉庫交叉覈對後整理。
這是什麼¶
dsh-mneme 是面向 DeepSeek Harness 的跨會話記憶插件,由 modusensus 維護,許可證爲 MIT,主要語言是 JavaScript。npm 包名是 @modusensus/dsh-mneme。倉庫內插件目錄 dsh-mneme/package.json 當前版本爲 0.4.0。2026-08-17 查詢 GitHub API 時倉庫爲 22 星;社區目錄頁仍顯示 8 星,更像收錄時的快照。
名稱來自希臘記憶女神 Mnemosyne(Μνήμη)。目錄頁的定位是:SQLite 與可編輯 Markdown 雙寫、autoDream 夢境鞏固、本地離線語義檢索。倉庫 README 把目標收成三句話:
- 可讀:SQLite 主庫 + 人類可編輯的 Markdown 鏡像,雙向同步
- 可結構:實體 / 屬性 / 時間軸三表,把文本片段抽成結構化知識(v0.3.0,默認關閉抽取)
- 可演化:autoDream 後臺鞏固,另有可選的 Sleep Mode 深度維護(v0.4.0,默認關閉)
它要解決的問題很具體:Agent 下次開會還記得你的偏好;你能打開文件覈對「它到底記住了什麼」;檢索儘量在本地完成,而不是把記憶交出去。
核心功能¶
SQLite 主庫 + Markdown 鏡像¶
插件把記憶放在本機目錄 ~/.dsh/memory/:
- 主存儲是 SQLite:
~/.dsh/memory/memory.db,用 Node 內置的node:sqlite,不額外拉原生模塊 - Markdown 鏡像按類型拆文件:
preferences.md、projects.md、decisions.md、history.md、summary.md - 記憶類型是 4+1:
preference(偏好)、project(項目)、decision(決策)、history(歷史),外加summary(總覽)
人工改 Markdown 優先於機器回寫。倉庫用 last-rendered digest 做基線,再做三方合併,避免你正在改文件時被自動渲染覆蓋。機器寫入後會重渲染鏡像。v0.3.6 之後鏡像同步用 generation / applied_generation 記「還沒渲染完的債」:崩潰發生在提交之後、渲染之前,重啓也能接着收斂,而不是靜默跳過。
七個模型工具¶
安裝後,Agent 拿到這 7 個工具(來自插件 README):
| 工具 | 作用 |
|---|---|
memory_save |
記一條記憶,按標題去重合並 |
memory_search |
全文搜索(中文子串友好,可開向量語義搜索) |
memory_list |
按類型分頁列出;include_archived=true 可看已歸檔 |
memory_update |
改已有記憶 |
memory_delete |
刪除 |
memory_forget |
抑制注入(降權,不刪,可恢復) |
memory_archive |
歸檔或恢復;歸檔後不出現在列表 / 搜索 / 注入 / 整理裏 |
新會話開局會自動注入記憶摘要:優先 summary,再補少量高重要性條目。會話在 turn/end 時用 LLM 提煉本次的偏好、決策和教訓併入庫;插件會過濾自己注入過的上下文,避免把舊摘要再蒸餾一遍。
Web 界面裏可以打開官方設置面板 →「記憶庫設置」→「記憶」標籤,按類型瀏覽、做全文搜索。同一設置頁還可以寫用戶畫像和行爲規則,每輪注入系統提示,優先級高於記憶庫;也可以註冊斜槓命令(/名稱),命令存在 SQLite 裏,啓動時註冊到 DSH 命令表。
autoDream:後臺鞏固¶
記憶條數超過 10,或總字符超過 5000 時,autoDream 會異步觸發(不阻塞寫入)。LLM 輸出一張決策清單,服務端校驗後再逐條應用:
keep:保留merge:合併主題相近的條目,留下信息更完整的那條archive:歸檔過時或冗餘條目,可恢復,不物理刪除conflict:處理矛盾信息;也可打開conflictFreezeEnabled,改成凍結、等你確認,而不是自動裁決(默認關閉)update:直接修正過時或錯誤的單條記憶(有 24 小時保護期、每次最多 2 條等約束)
非法輸出(未知 id、非法 action、跨類型合併、importance 越界)會整單拒絕,避免把記憶庫寫壞。每次運行寫入 dream_runs 審計表,帶輸入快照 digest、決策清單和 receipt,可以離線回放。
v0.4.0 另加了 Sleep Mode(sleepModeEnabled 默認 false):空閒達到 sleepIdleMinutes 後做四階段維護——衝突消解、按訪問時間歸檔降級、用 LLM 提煉 type=pattern 規律、給孤立實體補關係。用戶一活動就中止當前週期,並與 autoDream 走同一條串行隊列,避免兩套整理疊在一起。
離線語義搜索與記憶基因¶
v0.2 起提供可選的語義檢索,默認 embedProvider 仍是 openai(兼容早期行爲)。改成 local 後走 ONNX 離線模型 Xenova/bge-small-zh-v1.5;也可以用 Ollama。失敗會逐級降級,最後退回關鍵詞搜索。Rerank 默認關閉(rerankEnabled: false),打開後才加載 Xenova/bge-reranker-base。
搜索可以走混合召回(向量 + 關鍵詞)。在設置頁打開向量搜索後,記憶面板會出現「語義」切換;密鑰只存在本機 memory.db 的 user_settings 表。
v0.3.0 的「記憶基因」把文本抽成三張表:entities、entity_attrs(帶 valid_until 時間軸,改屬性不覆蓋歷史)、entity_relations。entityExtractionEnabled 默認 false,關掉時行爲與 v0.2.x 一致。打開後可用前綴搜索,例如:
entity:React:按實體召回attr:programming_language=Rust:按屬性值過濾attr:deadline:按屬性名過濾
安裝與啓用¶
目錄詳情頁給出的安裝命令是:
dsh plugin add github:modusensus/dsh-mneme
需要可復現安裝時,按目錄頁說明固定 commit。2026-08-17 倉庫 main 最新提交爲 49b54dfa06b38f475f2984b6cb4b423dcfa821a1,可以寫成:
dsh plugin add github:modusensus/dsh-mneme#49b54dfa06b38f475f2984b6cb4b423dcfa821a1
GitHub 插件 README 推薦的是 npm 包 + web profile(聲明瞭 dsh.bundle,安裝後自動激活)。package.json 裏 requiresRestart 爲 true,裝完需要重啓:
dsh plugin --profile web add @modusensus/dsh-mneme
dsh web
從源碼安裝:
git clone https://github.com/modusensus/dsh-mneme.git
cd dsh-mneme
dsh plugin --profile web add .
dsh web
前置條件來自插件 README:已安裝 DeepSeek Harness,並且 Node 24+(需要 node:sqlite)。
目錄頁和 GitHub 都提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證。
典型用法¶
讓 Agent 自己記,下次會話再讀¶
裝好並重啓後,不必先手寫配置。默認 autoInject 和 autoSummarize 都是 true:你在對話裏說出穩定偏好或項目約定,Agent 可以調用 memory_save;會話結束會再提煉一輪入庫。下一輪開局會先看到摘要,而不是從零開始。
需要自己查或改時,用 memory_search / memory_list / memory_update。不想讓某條再注入、但還不想刪,用 memory_forget;確定過時了再用 memory_archive。
直接改 Markdown¶
記憶文件在 ~/.dsh/memory/。打開對應的 .md,改完保存即可。插件按「人工編輯優先」合併回 SQLite。這是它和「只進黑盒向量庫」的記憶插件最明顯的差別:目錄頁把它概括成「記憶主權歸還於你」。
改閾值(可選)¶
默認即可用。要改整理閾值或注入條數,在 ~/.dsh/profiles/web/cordis.patch.yml 按插件 id 覆蓋。下面這段來自插件 README:
- id: dsh-mneme
name: '@modusensus/dsh-mneme'
config:
memoryDir: ~/.dsh/memory
autoInject: true
autoSummarize: true
maxInjectedItems: 5
importanceThreshold: 3
autoDream: true
dreamThresholdCount: 10
dreamThresholdChars: 5000
dreamDelayMs: 2000
完全離線語義檢索時,把 embedProvider 設爲 local。實體抽取、Sleep Mode、Rerank 都是顯式開關,默認偏保守,不會在你沒打開時改掉現有行爲。
適用場景與注意事項¶
適合這些情況:
- 同一套 DSH Agent 要跨很多天用,需要記住偏好、項目背景和已做決定
- 你希望記憶落在本機文件裏,能打開 Markdown 審查、修正,而不是隻存在不可讀的向量庫
- 檢索儘量離線(本地 ONNX / Ollama),或至少密鑰只放在本機 SQLite
- 需要後臺去重、合併、歸檔,而不是無限堆積原始片段
使用前注意下面幾條,都來自目錄頁或倉庫文檔:
- 權限與供應鏈。 插件以當前 dsh 進程權限運行,安裝時可能執行代碼。先看 GitHub 源碼和 MIT 許可證,再決定是否安裝;生產環境用固定 commit。
- 運行時要求。 需要 Node 24+;README 安裝路徑針對 web profile,裝完要
dsh web重啓。 - 新能力默認關閉。 實體抽取、Sleep Mode、Rerank 都是 opt-in。autoDream 默認開啓,記憶變多後會調 LLM 做整理,會消耗模型和時間。
- 本機 API 默認不鑑權。 文檔寫明 DSH 默認只監聽
127.0.0.1,插件 API 默認開放以便 Web 面板即用。若把服務暴露到局域網,應配置apiToken,寫操作和密鑰接口走Authorization: Bearer。 - 記憶內容在你的磁盤上。 路徑是
~/.dsh/memory/。向量 API Key 也在同一 SQLite 裏。備份、權限和是否納入同步盤,需要按敏感數據來處理。 - 同類插件很多。 目錄「記憶」分類裏還有 graph-memory、mnemon、dsh-memory-evolve 等。社區博文把 dsh-mneme 標成「可檢查、可編輯的記憶」這一路,並不是官方唯一推薦。按你是否要手改 Markdown 來選即可。
小結¶
dsh-mneme 給 DeepSeek Harness 補的是一層本地、可打開的長期記憶:SQLite 負責機器讀寫,Markdown 負責人審和手改,autoDream 在後臺做鞏固。語義檢索和實體抽取是可開關的增強,不是裝上就會改掉默認行爲。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-mneme/
GitHub:https://github.com/modusensus/dsh-mneme