前言¶
在用 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)