前言¶
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
安装后需重启服务并刷新页面。
使用方式¶
面板操作¶
- 打开 设置 → 备份与恢复。
- 勾选要包含的组件(如会话、附件、mnemon 等),点击「导出备份包」。
- 恢复时选择备份包,先进行「预检」,确认无误后选择「合并」或「覆盖」模式执行。
斜杠命令¶
在对话中直接输入以下命令:
/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 仓库。