用 dsh-mnemon 給 DeepSeek Harness 裝上本地分層記憶

前言

用 DeepSeek Harness(dsh)跑智能體時,一個很常見的問題是:項目約定、接口位置、編碼偏好,上一輪剛說清楚,新開一個會話又要從頭解釋。短期對話窗口裝不下完整設計文檔,長期事實又沒有固定落點,最後只能靠人工複製粘貼。

DeepSeek Harness 的設計是「一切皆插件」:模型、工具、技能、會話、存儲和界面都可以替換或重組。記憶也不例外。社區目錄裏有一類專門做這件事的插件,dsh-mnemon 就是其中面向「本地優先、分層持久記憶」的方案。

本文按插件目錄頁、GitHub 倉庫 README、快速開始文檔和 package.json 覈對後整理:它是什麼、三層記憶怎麼分工、怎麼安裝,以及第一次該如何驗證。社區插件目錄 deepseek-harness-plugin.com 是獨立站點,與 DeepSeek / 幻方沒有官方從屬關係,文中涉及的安裝命令以目錄頁原文爲準。

這是什麼

dsh-mnemon 是一款 DeepSeek Harness 記憶插件,由 GitHub 組織 omdsh-dev 維護,許可證爲 MIT。截至 2026-08-17,倉庫語言爲 TypeScript,package.json 版本爲 0.2.2,GitHub 星標爲 62。

它把 Mnemon 接到 DSH 裏,提供統一的記憶控制面,但不要求所有知識進入同一種數據庫:

  • 運行時記憶:每輪都需要的偏好、協作規則、項目約定和環境事實
  • 項目檔案:設計、調查、流程、覆盤、交接這類完整敘事
  • 記憶體(Memory Spaces):跨會話的事實、決策、實體與關係,按需召回

目錄頁的定位可以概括成一句話:基於 Mnemon 的本地優先持久記憶,跨 Mnemon 智能體共享長期記憶,運行時記憶和可檢索的項目文檔都留在本機。

需要分清兩件事。dsh-mnemon 是 DSH 側插件;Mnemon 是獨立的本地記憶引擎(CLI + SQLite)。插件默認把 Mnemon Native 當作第三層引擎,也可以改接其他 Provider,但前兩層的存儲和工作區模型保持不變。

三層記憶怎麼分工

官方文檔給了一張很清楚的對照表。三層不是同一內容的三份副本,而是按「要不要每輪出現、要不要完整閱讀、要不要跨任務召回」分開存放。

層級 適合保存 如何進入 Agent 上下文 誰來管理
運行時 偏好、協作規則、項目約定、環境事實 緊湊投影到 USER.md / MEMORY.md,每輪可用 dsh-mnemon Host 確定性管理
檔案 設計、調查、流程、覆盤、交接 先檢索,再按需讀全文 dsh-mnemon Host 確定性管理
記憶體 跨會話事實、決策、實體與關係 從已激活記憶體召回有界證據 Mnemon Native 或三方 Provider

判斷規則可以記成三句:

  1. 每輪都需要的,放運行時。
  2. 需要完整閱讀的,放檔案。
  3. 需要跨任務按需召回的,放記憶體。

優先級也寫死了:當前指令、倉庫文件和即時工具結果,始終高於歷史記憶。普通聊天不應強制召回。

運行時的事實源是 runtime/memories.jsonUSER.mdMEMORY.md 是派生投影。容量按 UTF-8 字節計算:USER.md 上限 4 KiB,MEMORY.md 上限 10 KiB,單條內容最大 8 KiB。檔案單份正文最大 2 MiB,active 總量最大 10 MiB。這些數字來自倉庫的存儲模型文檔,不是估算。

核心功能

本地優先,第三層可替換

默認路徑不依賴雲端記憶服務。運行時和檔案是本地確定性存儲;Mnemon Native 用本地 CLI + SQLite。截至當前 README,第三層還可以接這九種 Provider:

Provider 形態 文檔中的適用方向
Mnemon 本地 CLI + SQLite 精確寫入、實體、類型關係、本地優先共享
OpenViking HTTP + viking:// 資源樹與異步提煉
Honcho HTTP workspace / peers 團隊與 Agent peer
Mem0 平臺或自託管 HTTP 已有用戶 / Agent 記憶
Hindsight HTTP memory bank bank、實體與 Provider 原生圖譜
Holographic 本地結構化事實文件 可審計事實、信任評分、本地實體
RetainDB HTTP project / user 項目與用戶雙作用域畫像
ByteRover 本地 brv CLI 代碼知識樹與 curate 流程
Supermemory HTTP container 文檔攝取與容器級共享

三方 Provider 默認關閉,必須在設置裏顯式啓用。引擎沒有圖譜邊、刪除語義或可枚舉內容時,插件不會僞造這些能力。設置頁管理可複用的 Provider 服務,記憶體頁管理具體實例、激活、作用域和元信息。

跨智能體共享有邊界

Mnemon 原生的 mnemon.db 不是 dsh-mnemon 私有格式。其他同樣接入 Mnemon 的智能體,只要指向同一個 storageRoot 和 Store,就可以讀寫同一份長期事實、實體和關係。

共享範圍只覆蓋 記憶體這一層。運行時記憶和項目檔案不會自動暴露給其他智能體。不能把「共享第三層記憶」理解成「自動共享完整 DSH 上下文」。

存儲範圍有三種:

  • global:默認使用 ~/.mnemon(或 MNEMON_DATA_DIR),適合本機多個工作區共用一套控制面
  • workspace:使用工作區下的 .mnemon,適合項目隔離
  • custom:顯式路徑,語義按全局處理,適合團隊約定或隔離環境

切換範圍不會自動遷移、合併或刪除舊根目錄。遠程 Provider 自己的 workspace、user、bank、project、container 和 URI 仍是各自的命名空間,切換 DSH 工作區不會暗中改寫它們。

寫入受監督,查詢有邊界

工作臺上的操作不是「把整段對話塞進數據庫」。README 把點擊和實際執行分開寫了:

  • 檢索:併發走各 Provider 的原生召回,只讀
  • Agent 查詢:新建獨立頂層任務 Agent,只接收有界證據再組織答案,只讀
  • 沉澱記憶 / 存入記憶:獨立任務 Agent 判斷、選路、查重、提煉,Host 控制寫入;只有通過判斷才落盤
  • 本回合記憶:展開本輪召回、寫入和檔案檢索,點擊可跳到對應頁面

這些後臺任務默認不復用、不擠佔主對話歷史。可以在「設置 → 記憶系統 → 後臺任務 Agent」單獨指定 Provider 與模型。

Web、對話和 Headless 共用一套系統

  • Sidebar WebUI(默認):左側欄「記憶系統」工作臺,一級頁順序是狀態、運行時、檔案、記憶體
  • 對話內:本回合記憶、存入記憶,可跳到對應頁面
  • Headless:沒有工作臺和斜槓命令界面,但保留運行時注入、檔案檢索、記憶體工具、工作區路由和受監督寫入
  • 命令/mnemon statusrecallrelatedrememberforget

DSH 各 profile 的插件清單彼此獨立。Web 裝過,不等於 Headless 也能用。

安裝與啓用

插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前請檢查源代碼倉庫和許可證;只安裝你信任的來源。

快速開始文檔給出的推薦基線是:dsh-mnemon v0.2.0、DSH 0.1.0-rc.6、Mnemon 0.2.3 或更高。當前倉庫版本是 0.2.2。升級前先備份,並在隔離目錄重複驗證。Node 要求 >=20

1. 先裝 Mnemon Native

Mnemon 是默認引擎,也是本地優先的起點。macOS 可以用 Homebrew Cask:

brew install --cask mnemon-dev/tap/mnemon

macOS / Linux 也可以用 Go:

go install github.com/mnemon-dev/mnemon@latest
mnemon --version

Windows 需要官方 v0.2.3 或更高版本的 ZIP(提供 AMD64 與 ARM64)。插件會從 PATHGOBIN / GOPATH%LOCALAPPDATA%\Programs\mnemon 等位置查找 mnemon.exe,不接受 .cmd / .bat 包裝。找不到時再設 MNEMON_CLI_PATH,或在用戶 settings 裏寫絕對路徑,例如:

mnemon:
  cliPath: 'C:\Users\alice\AppData\Local\Programs\mnemon\mnemon.exe'

mnemon status 會打開有效 Store,可能初始化數據或執行上游遷移,不要把它當成完全無副作用的安裝探測。

2. 安裝 DSH 插件

目錄頁給出的安裝命令是:

dsh plugin add github:omdsh-dev/dsh-mnemon

如需可復現安裝,按目錄頁說明固定 commit 哈希:

dsh plugin add github:omdsh-dev/dsh-mnemon#<commit>

倉庫 README 和快速開始則按 profile 安裝。需要完整工作臺時:

dsh plugin --profile web add dsh-mnemon
dsh --profile web

一次性 Headless 任務要單獨裝:

dsh plugin --profile headless add dsh-mnemon
dsh --profile headless "回答前先檢查持久化的項目上下文。"

本地檢出用絕對路徑:

dsh plugin --profile web add "link:/absolute/path/to/dsh-mnemon"

升級和卸載:

dsh plugin --profile web update dsh-mnemon
dsh plugin --profile web remove dsh-mnemon

卸載只移除插件註冊,不會刪除全局、工作區或自定義目錄裏的記憶數據。

第一次怎麼驗證

官方快速開始把「從空白環境走到第一次可驗證召回」寫成了固定步驟。

  1. 打開「設置 → 記憶系統」,確認展示形態(默認 Sidebar)和存儲位置(默認全局 ~/.mnemon)。保存後會初始化新運行圖並切換 Host,一般不用刷新瀏覽器。
  2. 打開左側欄「記憶系統 → 狀態」,確認右上角「已連接」,Mnemon 與 dsh-mnemon 能顯示版本,Runtime、Documents、Memory Spaces 沒有錯誤。
  3. 打開「記憶體 → 概覽 → 創建記憶體」,手動選擇已啓用的 Provider。本地優先起步就選 Mnemon Native,名稱寫清楚主題,說明裏寫「哪些內容屬於這裏、什麼任務應召回」,然後打開讀取激活。
  4. 點右上角「沉澱記憶」,填一條穩定、自包含、未來仍有用、不含祕密 的信息。只有點確認纔會啓動獨立任務 Agent 寫入;取消彈窗不會改狀態。
  5. 打開「記憶體 → 檢索」,先做直接檢索,再對同一問題做 Agent 查詢。結果應能看到記憶體來源、分類、重要性和 ID。

對話裏也可以用命令:

/mnemon status
/mnemon recall <聚焦查詢>
/mnemon remember <內容>

空的 /mnemon 等價於 statusstatus 是確定性讀取,不啓動模型。recall 最多返回 10 條。forget 必須給一個不含空格的精確 ID,屬於破壞性操作,只有用戶明確要求、或內容已確認錯誤 / 過時才應執行。

回到對話後,如果本輪調用了記憶工具,回覆下方會出現「本回合記憶」,展開後可跳到對應頁面。「存入記憶」會先打開可編輯確認彈窗,取消不會寫入。

適用場景與注意事項

比較適合這些情況:

  • 同一項目要跨多個會話保持約定、環境事實和決策,不想每天早上重新解釋一遍配置
  • 本機有多個 Mnemon 智能體,希望共享同一份長期記憶體,但不想把數據送到雲端
  • 既要每輪可見的短記憶,也要可檢索的設計文檔和覆盤,不想全部塞進一個向量庫

使用時注意下面幾條,都來自倉庫文檔,不是額外發揮:

  1. 權限與來源。插件以當前 dsh 進程權限運行。安裝前檢查 GitHub 倉庫 源碼和 MIT 許可證;GitHub 安裝可能在本機執行構建腳本,只允許你信任的包。
  2. 不要存祕密。當前沒有確定性 secret scanner。任何一層都不應保存 key、token、私鑰或原始敏感日誌。
  3. 憑據落盤方式。三方 Provider 憑據以權限 0600 寫在 state/memory-providers.json,不會返回瀏覽器、智能選擇 Agent 或 Mnemon Pack。關閉 Provider 只清理本地目錄元數據,不刪除遠程數據。
  4. 卸載不等於清數據。卸插件不會刪除本地或遠程記憶。切換 global / workspace / custom 也不會自動搬家。
  5. 召回只看已激活記憶體。對未激活記憶體的讀取會被拒絕;寫入成功後,插件會自動激活該目標。
  6. Headless 的生命週期。一次性 runner 在 Agent 進入 idle 後退出,尚未開始的評分後臺審查會取消;任務內已經完成的顯式或模型引導寫入仍會持久化。
  7. 遠程 WebUI。v0.2.2 修了遠程受信頁面激活記憶體失敗的問題,並收緊了 RPC 邊界:遠程界面保留激活能力,但會禁用編輯、刪除、沉澱、備份和 Provider 配置等 loopback 寫操作。

小結

dsh-mnemon 要解決的不是「再做一個聊天記錄庫」,而是給 DSH 補上分層、可監督、默認可離線的記憶控制面:短事實進運行時,完整敘事進檔案,跨會話證據進記憶體。Mnemon 仍是官方優先的本地引擎,第三層可以換成其他 Provider,但不會假裝補齊引擎沒有的能力。

目錄頁與倉庫:

  • 插件目錄:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-mnemon/
  • GitHub:https://github.com/omdsh-dev/dsh-mnemon
  • Mnemon 引擎:https://github.com/mnemon-dev/mnemon
  • DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness
羽毛球分组比赛记分
小程序二维码

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

小夜