DSH-Sync-Backup:为 DSH 记忆层做加密备份与双通道同步

前言

DeepSeek Harness(DSH)把人格、长期记忆、技能、待办和会话都落在本机 ~/.dsh 里。官方配置备份插件 dsh-config-manager 管的是配置 JSON,并不覆盖上述「记忆层」目录。换电脑、重装或磁盘故障时,如果只备份了 profile 配置,Agent 侧积累的内容仍可能从零开始。

下面介绍社区插件 DSH-Sync-Backup(维护者 YAN3RA,目录分类:记忆)。它按白名单收集记忆层路径,打成 tar 后用 AES-256-GCM 加密,在本地留存,并可同步到 WebDAV 与 GitHub 私有仓库 两条彼此独立的通道;上传成功以回读 SHA256 校验为准,而非仅看 HTTP 2xx。插件声明 零第三方 npm 运行时依赖(仅使用 Node 内置模块,peer 由 harness 提供)。

README 标明插件仍在破坏式迭代中,安装前请自行审阅源码与许可证,并留意当前 DSH 进程权限下的数据访问范围。

这是什么

DSH-Sync-Backup 是 DSH 的定时备份插件:把 DSH 记忆层(记忆、技能、待办、会话、存储等)打包为加密归档,默认以本地副本为主,在显式开启目标与开关后才向远端上传。

装上之后通常会多出:

  • 设置分区 「备份与同步」(概览 / 产物文件 / 通道配置 / 环境和维护);
  • AI 工具 sync_backup_run(立即执行)与 sync_backup_status(查看状态);
  • 一段提示词小节,说明工具边界。

三个「外传」相关闸门在出厂 patch 中默认偏保守:dryRun: true、webdavEnabled: false、githubEnabled: false。须主动填写目标、打开通道开关并关闭 dryRun,备份才会真正出网。

与官方配置备份的分工

范围 dsh-config-manager DSH-Sync-Backup
顶层配置 JSON 等 覆盖 可选条目 sync-config
memory/、技能、待办、会话、storages/ 等 不覆盖 白名单收集并加密打包

记忆层典型路径包括:全局人格 AGENTS.md、长期记忆 memory/、技能 skills/、待办 task-board/、定时任务 storages/schedule.json、会话 sessions/ 等(具体以插件条目勾选为准)。

核心功能

加密与密钥

归档在落盘或上传前经 AES-256-GCM 处理;密钥采用信封加密(DEK 以密文形式存在,由本机 KEK 与恢复码派生的 KEK 分别包裹)。恢复码为 base32,不落盘、无法事后重算;首次生成或迁移时需自行保存,设置页可导出(二次确认,明文限时显示)。

双通道异地副本

两个通道使用同一份载荷、同一归档 id,互不影响;一个通道失败不会中止另一个。

  • WebDAV:Basic 认证,适用于坚果云、自建等;
  • GitHub:Contents API 写入私有仓库,每次涉及归档本体、manifest、latest.tar.gz 稳定副本与 index.json 索引。

非本机 HTTP 默认拒绝(仅 loopback 放行 http);内网私服需显式设置 webdavAllowInsecureHttp。

定时与调度

内置自排期(schedulerEnabled 默认开):

  • 本地打包周期 intervalHours(schema 默认 12 小时);
  • 远端同步周期 remoteIntervalHours(默认 0,即本地打包后立即同步);
  • 启动补跑、失败退避等见 README。

注意:定时任务默认只做本地打包。自动上传须同时满足 uploadOnSchedule: true 且 dryRun: false。

可选恢复自检

  • 打包后内存内自检(restoreCheck,默认关);
  • 维护页「运行恢复前自检」:解到系统临时目录校验后删除,不写回 $DSH_HOME。

插件不提供一键写回 $DSH_HOME 的恢复;灾难恢复需凭恢复码解密后手动解包。

保留与清理

本地产物受 localKeepDays(默认 7 天)与 keepLast(默认 7 份)约束;远端按通道 keepLast 裁剪。清理与备份串行并共用运行锁,备份进行中会返回 busy。

安装与启用

插件包内含 cordis.patch.yml(dsh.bundle.patch 声明),安装后 host 端自动注册,无需在 profile 里手动 insert 同一 loader id(重复 insert 可能导致 duplicate loader entry 无法启动)。

安装 spec 只接受:npm 包名、Git 地址、tarball URL / 本地 .tgz、本地绝对路径;不要用 GitHub 网页 tree 链接,也不要用 github:用户/仓库 简写(可能被解析为 SSH 导致 EPERM)。

插件页(桌面 / 网页)

侧栏 → 插件 → 添加插件 → 粘贴以下之一 → 安装 → 完全退出并重启 DSH:

dsh-sync-backup
https://github.com/YAN3RA/DSH-Sync-Backup/archive/refs/tags/V1.5-261011.tar.gz
git+https://github.com/YAN3RA/DSH-Sync-Backup.git

公司网络或代理环境优先使用 tarball 行(纯 HTTPS,不依赖本机 git)。

命令行

dsh plugin --profile desktop add dsh-sync-backup
dsh plugin --profile desktop add https://github.com/YAN3RA/DSH-Sync-Backup/archive/refs/tags/V1.5-261011.tar.gz
dsh plugin --profile desktop add git+https://github.com/YAN3RA/DSH-Sync-Backup.git

桌面版执行 CLI 前须先完全退出桌面应用。卸载示例:

dsh plugin --profile desktop remove dsh-sync-backup

插件异常导致无法启动时,可在 cordis.patch.yml 顶层覆盖:

- id: dsh-sync-backup
  disabled: true

典型用法

换机或重装:先本地加密,再开通道上传

  1. 安装并重启 DSH,打开 设置 → 备份与同步 → 通道配置,填写 WebDAV 或 GitHub 目标(或两者);
  2. 用插件脚本写入凭据(勿把口令写进配置文件):
node tools/set-webdav-password.mjs --verify
node tools/set-github-token.mjs --verify
  1. 关闭 dryRun,执行一次上传备份,例如通过 AI 工具:sync_backup_run(upload: true)。

本地加密归档位于 $DSH_HOME/dsh-sync-backup/artifacts/;各通道上传后会回读校验 SHA256。

不改 YAML 的日常配置

用户在本机覆盖写入 $DSH_HOME/dsh-sync-backup/config.json(设置页保存即生效,无需重启)。出厂默认来自 cordis.patch.yml,修改后需重启。删除 config.json 可整体回到出厂覆盖层,无需重装插件。

在 patch 中调整默认示例:

- id: dsh-sync-backup
  config:
    intervalHours: 6

按需缩小备份集合

「环境和维护」页可逐项勾选备份条目(含风险等级与本机体积)。默认集合包含 persona、memory、skills、task-board、sync-config、storages、sessions 等;profiles(插件与依赖树,体积可达 GB 级)默认不选。

适用场景与注意

适合谁

  • 需要记忆层兜底、换机不想从零重建上下文的人;
  • 希望本地加密副本 + WebDAV / GitHub 双份异地校验的人;
  • 希望定时本地打包、按需再开上传的人。

使用前请确认

  • 插件以当前 DSH 进程权限读写 $DSH_HOME;安装前请阅读 GitHub 仓库 源码与 LICENSE;
  • README 标注 「测试中」,功能仍在破坏式迭代,生产环境请谨慎;
  • 半失败连续达到 partialAlertAfter(默认 3)会进入 needsAttention,需在概览页健康条关注;
  • 社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

DSH-Sync-Backup 补的是官方配置备份未覆盖的记忆层:加密归档、本地保留、可选 WebDAV 与 GitHub 双通道,并在默认配置下尽量做到「未显式配置则不外传」。版本号采用 V<主>.<次>-<YYMMDD> 形式;资料中 tarball 示例对应 V1.5-261011(npm package.json 为 1.5.0)。

  • 目录页:https://www.skillhub.cn/plugins/YAN3RA/DSH-Sync-Backup
  • GitHub:https://github.com/YAN3RA/DSH-Sync-Backup
羽毛球分组比赛记分
小程序二维码

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

Xiaoye