DeepSeek Harness 备份与恢复插件 (dsh-backup)

前言

DeepSeek Harness 的理念是“一切皆插件”。在开发智能体或进行深度对话时,工作区配置、完整的对话历史、附件以及 dsh-mnemon 记忆数据往往分散存储。一旦换机、重装或系统升级,恢复这些状态需要手动操作或依赖不同插件,容易遗漏。having5548/dsh-backup 解决了这个问题,它将上述数据打包为一个 ZIP 文件,提供一键备份与恢复的能力。

核心能力

该插件提供以下功能:
* 全量打包:包含工作区注册表、完整对话(字节级保真,不解包不改写)、附件、设置和 mnemon 记忆数据。
* 双向兼容:支持旧版本会话自动迁移,未来新版 harness 的会话也能装入当前备份。
* 导入模式:提供合并(补缺不覆盖)和覆盖(全量替换)两种模式,支持导入前预检。
* 自动备份:支持定时自动备份与轮换。
* 救援通道:每份备份附带零依赖的 rescue.mjs,即使 DSH 无法启动,也可通过 Node.js 进行恢复。
* 凭据脱敏:导出时自动脱敏 settings.yaml 中的密钥,明文不会出现在备份包中。
* 会话体检:支持对会话文件进行扫描和校验。
* AI 恢复助理:提供可选的 AI 辅助恢复功能(默认关闭)。

安装与启用

使用以下命令安装插件:

dsh plugin --profile web add @having5548/dsh-backup

安装后需重启服务并刷新页面。

使用方式

面板操作

  1. 打开 设置 → 备份与恢复。
  2. 勾选要包含的组件(如会话、附件、mnemon 等),点击「导出备份包」。
  3. 恢复时选择备份包,先进行「预检」,确认无误后选择「合并」或「覆盖」模式执行。

斜杠命令

在对话中直接输入以下命令:

/backup                    # 立即备份
/backup auto 12            # 每 12 小时自动备份
/backup restore latest --dry-run   # 预览恢复
/backup restore latest     # 正式恢复
/backup list | verify all | doctor | help

救援通道

备份目录中包含 rescue.mjs,它不依赖 DSH,仅使用 Node.js 内置模块。使用方法:

node rescue.mjs list                              # 列出备份
node rescue.mjs verify dsh-backup-xxx.zip         # 校验文件
node rescue.mjs restore latest --dry-run          # 预览恢复
node rescue.mjs restore latest --force            # 强制覆盖恢复

注意事项

  • 凭据安全:默认情况下,settings.yaml 中的 apiKey、token 等密钥会被脱敏为占位符,明文不会导出。覆盖导入时,这些占位符会自动回填为本机现值。
  • 重启要求:导入数据后,必须重启服务并刷新页面,会话列表才会刷新。
  • 换机路径:备份的工作区记录保存的是绝对路径,换机后需手动调整路径,否则工作区列表可能显示异常。
  • Mnemon 范围:mnemon 默认使用 global 范围,若使用 workspaces 范围,恢复后需保持工作区目录路径不变。
  • 备份格式:备份格式为 DshBackup v1。

总结

该插件通过 ZIP 打包和字节级复制,解决了 DSH 开发环境的迁移与备份问题。更多细节可参考 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye