前言¶
在用 DeepSeek Harness(DSH)配合 dsh-mnemon 做長期記憶時,數據落在本機 SQLite 和一批 Markdown 裏。換機器、重裝 profile 或本地盤故障時,若沒有可驗證的異地副本,記憶空間、項目檔案和運行時記憶很難完整遷回。只靠手動拷貝目錄,又容易在數據庫仍在寫入時拷到不一致文件。
下面介紹維護者 summerscar 發佈的記憶類插件 @summerscar/dsh-mnemon-sync:在記憶系統裏增加「同步備份」能力,把選定組件打包到 S3 兼容存儲或 WebDAV,支持定時備份和按組件選擇性恢復。
這是什麼¶
dsh-mnemon-sync 面向已使用或未使用 dsh-mnemon 的 DSH 用戶,解決記憶數據的離線歸檔與回滾問題。安裝後,若已啓用 dsh-mnemon,記憶界面會多一個「同步備份」標籤頁;未裝 dsh-mnemon 時插件仍可加載,只是不顯示該標籤頁。
包名:@summerscar/dsh-mnemon-sync,在 npm 上處於 Published 狀態。許可爲 SATA 2.1;npm 上 0.1.11 及更早版本仍爲 MIT。更多插件說明見 summerscar 的 dsh-plugins 站點。
核心功能¶
文檔將可備份內容拆成三個組件,默認全選,也可任意組合:
| 組件 | 內容 |
|---|---|
| 記憶空間 | <MNEMON_DATA_DIR>/data/ 下各空間的 mnemon.db 與空間清單 |
| 項目檔案 | <MNEMON_DATA_DIR>/documents/ 下的 index.json 與全部 Markdown |
| 運行時記憶 | <MNEMON_DATA_DIR>/runtime/ 下的 memories.json 與兩份投影 |
未設置環境變量 MNEMON_DATA_DIR 時,數據目錄爲 ~/.mnemon。
備份目標二選一:
- S3 兼容存儲:手寫 AWS Signature V4,適用於 Cloudflare R2、MinIO、Backblaze B2、阿里雲 OSS 等。
- WebDAV:Basic 認證,自動創建遠端目錄。
自動備份頻率可在界面選擇:關閉、每小時、每 3/6/12 小時、每天、每 3/7 天。備份文件名形如 mnemon-sync-<設備名>-2026-11-09T01-20-27.875Z.zip,設備名來自 dsh-mnemon 的 state/machine.json,便於多臺機器寫入同一遠端目錄時區分來源。
一致性方面:數據庫通過 node:sqlite 的在線 backup() 生成副本;每個文件記錄 SHA-256,上傳前與恢復前各校驗一次;恢復默認僅預覽,確認後才寫盤。憑據保存在 DSH profile 之外的 0600 權限文件中,不會打進歸檔包。插件無除 Node 以外的運行時依賴。
安裝與啓用¶
將 web 換成你實際使用的 profile 名稱,安裝後需重啓該 profile:
dsh plugin --profile web add @summerscar/dsh-mnemon-sync
若希望在 DSH 內瀏覽插件列表,可先啓用實驗性的 Custom Plugin Market,在 Plugins → Discover → Add index source 中填入索引地址:
https://raw.githubusercontent.com/summerscar/dsh-plugins/main/index.json
安裝前 DSH 會要求確認。索引源也用於後續列表更新。
Desktop 版:在桌面應用自帶的插件界面安裝即可。desktop profile 由 Electron 應用獨佔管理,命令行執行 dsh plugin --profile desktop 會被 DSH 拒絕,這是 Harness 自身的限制,與本插件無關。
典型用法¶
- 執行上述安裝命令並重啓 DSH。
- 打開記憶系統,進入「同步備份」。
- 勾選需要備份的組件,選擇 S3 或 WebDAV,並設置自動備份間隔。
- 在備份列表中查看遠端已有歸檔,按需預覽並選擇要恢復的組件。
界面配置持久化在:
<MNEMON_DATA_DIR>/state/mnemon-sync.json
權限爲 0600,不寫入 DSH 主配置,也不會進入備份 zip。
S3 / Cloudflare R2 示例字段:
| 字段 | 示例 |
|---|---|
| Endpoint | https://<account-id>.r2.cloudflarestorage.com |
| Bucket | my-mnemon-backup |
| Region | auto |
| Access Key ID | 你的 R2 Access Key |
| Secret Access Key | 你的 R2 Secret |
| 強制 path-style | R2、MinIO 通常需要勾選 |
WebDAV 示例字段:
| 字段 | 示例 |
|---|---|
| 地址 | http://192.168.100.134:5005 |
| 用戶名 | 你的 WebDAV 賬號 |
| 密碼 | 你的 WebDAV 密碼 |
| 遠端目錄 | config-backup/mnemon-sync |
頁面對密鑰只顯示掩碼;提交時若仍爲掩碼則表示不修改原值,更換密鑰需直接填寫新值。
若安裝後看不到標籤頁,可按文檔排查:重啓 DSH;確認 dsh-mnemon 已安裝且版本不低於 0.5.40;確認 dsh.profile.bundles 包含 @summerscar/dsh-mnemon-sync;必要時強刷瀏覽器緩存(Ctrl+Shift+R)。
適用場景與注意¶
適合已經在用或計劃用 dsh-mnemon、且希望把記憶數據同步到自有對象存儲或 NAS WebDAV 的開發者。定時備份適合多機共用同一遠端目錄、需要可驗證快照的場景;選擇性恢復適合只回滾某一類組件(例如只還原項目檔案)的情況。
DSH 生態以「一切皆插件」爲方向,社區目錄(例如 SkillHub 上的插件頁)與 DeepSeek / 幻方無官方從屬關係,安裝來源以維護者公佈的 npm 包與文檔爲準。
請注意:插件以當前 DSH 進程的權限運行,會讀寫本機記憶目錄並訪問你配置的遠端存儲。安裝前應閱讀源碼與許可證(SATA 2.1),並自行評估憑據與備份策略。保留份數按插件運行記錄保留最新 N 個,超出後刪除最舊記錄對應的對象,文檔說明該邏輯不會主動 LIST 整個遠端目錄來對齊。
小結¶
@summerscar/dsh-mnemon-sync 在 dsh-mnemon 本地記憶之上補上異地備份與按組件恢復,用 SHA-256 與 SQLite 在線備份降低拷貝不一致的風險。安裝命令固定爲 dsh plugin --profile <name> add @summerscar/dsh-mnemon-sync,配置與操作集中在記憶系統的「同步備份」頁。
- 目錄頁:https://www.skillhub.cn/plugins/summerscar/dsh-mnemon-sync
- 文檔與源碼(monorepo):https://github.com/summerscar/dsh-plugins(插件路徑
plugins/dsh-mnemon-sync)