前言¶
用 DeepSeek Harness(DSH)做智能体开发时,配置集中在 $DSH_HOME(默认 ~/.dsh):settings.yaml、cordis.patch.yml、技能目录、storages、凭据文件等。改错一项、误删目录,或换机器重装,往往要手工对照回忆或从聊天记录里找片段。常见做法是手动 cp、自己写 cron,或把整棵目录丢进云盘——前者容易忘,后者容易把 profiles/、sessions/ 等大目录一并同步,体积和隐私都不划算。
下面介绍社区插件 dsh-plugin-config-backup(维护者 suveng,分类:工作流):装进 DSH profile 后由 Host 进程加载,在 Web 侧边栏提供「备份」面板,按周期把清单内的配置复制成普通目录快照,并在完成时发桌面通知与页面 toast。备份是纯文件复制,不依赖额外守护进程或系统 cron。
这是什么¶
dsh-plugin-config-backup 是 cordis 插件包(当前版本 0.1.0,许可证 MIT)。它针对 DSH 配置根目录做定时与手动快照,支持导出/导入 .tar.gz、面板一键恢复,以及对话里通过 Agent 工具触发。GitHub 仓库:suveng/dsh-plugin-config-backup;社区目录页:skillhub.cn 插件条目。
核心功能¶
能力均来自仓库 README,摘要如下。
| 能力 | 说明 |
|---|---|
| 侧边栏面板 | 左侧「备份」入口:状态卡片(是否定时、下次/上次备份、备份目录)与备份记录列表 |
| 立即备份 | 面板右上角「立即备份」,执行期间按钮显示「正在备份…」 |
| 定时备份 | 默认每 6 小时一份;在设置页改周期后无需重启 |
| 首启备份 | 已开定时但尚无快照时,Host 启动约 1 分钟后先补一份 |
| 保留策略 | 默认保留最近 14 份,超出删最旧;keepCount 为 0 表示不清理 |
| 完成通知 | macOS 用 osascript、Linux 用 notify-send;页面打开时另有 toast |
| 导出/导入 | 记录行「导出」→ dsh-backup-<id>.tar.gz;右上角「选择文件」导入,同包不重复 |
| 还原 | 记录行「恢复」,确认后覆盖当前配置;覆盖前自动写一份 pre-restore 保护备份 |
| Agent 工具 | config_backup_run / list / export / import / restore |
| 排除规则 | node_modules、.git、.cache、.pnpm-store 不复制;备份目录本身也不进快照 |
备份范围:默认包含 AGENTS.md、settings.yaml、cordis.patch.yml、cordis.yml、.env、.credentials.yaml 及 skills/、storages/、presets/、commands/、agents/、mcp/、prompts/、templates/ 等;不含 profiles/、sessions/、attachments/、_backup/。可通过设置页 include / exclude 增减路径。
安装与启用¶
安装前确认 DSH 能启动 Web:dsh web,记下控制台里的 http://127.0.0.1:<port>。
1、把插件装进 web profile(路径换成你本机 clone 或下载后的目录):
dsh plugin --profile web add /Users/you/github/dsh-plugin-config-backup
也可在 Web 插件页使用「从本地目录安装」。
2、dsh plugin add 只安装包,不会自动写入 profile 清单。若未在 Web 里打开 bundle,需手动改 ~/.dsh/profiles/web/:
- 在
package.json的dsh.profile.bundles中加入"dsh-plugin-config-backup"; - 在
cordis.patch.yml末尾追加:
- insert:
- id: config-backup
name: dsh-plugin-config-backup
config:
enabled: true
intervalHours: 6
keepCount: 14
notifyDesktop: true
3、重启 dsh web(或 DSH 桌面端),左侧栏应出现「备份」图标。
4、打开面板点「立即备份」验证:~/.dsh/backups/<YYYYMMDD-HHmmss>/ 应出现,并收到桌面通知(Windows 不弹系统通知,面板与 toast 仍可用)。
设置项¶
Web:设置 → 插件 → 备份。
| 字段 | 默认 | 说明 |
|---|---|---|
enabled |
true |
是否开启定时备份 |
intervalHours |
6 |
周期(小时),最小 0.1 |
keepCount |
14 |
保留份数,0 不清理 |
targetDir |
空 | 备份目录,空则 $DSH_HOME/backups |
notifyDesktop |
true |
是否桌面通知 |
include |
[] |
额外路径 |
exclude |
[] |
跳过路径 |
exportDir |
空 | 导出包默认目录,空则系统临时目录 |
典型用法¶
面板还原:备份记录 → 某条「恢复」→ 确认。只覆盖清单内条目;~/.dsh 下清单外的文件不会被删。快照内超出清单的项会出现在返回值的 foreign 字段。
换机:旧机面板「导出」得到 dsh-backup-<id>.tar.gz;新机装好 DSH 与本插件后,面板「选择文件」导入,再对该条点「恢复」并重启 dsh。包内含 .env、.credentials.yaml,勿传到公开链接;profiles/ 不在包内,新机需自行 dsh plugin add 装依赖。
对话备份:直接说「备份一下配置」,或让模型调用 config_backup_run。列出快照用 config_backup_list;还原需 config_backup_restore 且 confirm: true。
无面板时手动恢复(README 示例):
ls -lt ~/.dsh/backups | head
mv ~/.dsh ~/.dsh.broken
cp -R ~/.dsh.broken/backups/<id> ~/.dsh
cp -R ~/.dsh.broken/profiles ~/.dsh/profiles
还原后重启 dsh。
全局技能(可选):将插件内 skills/dsh-config-backup/SKILL.md 复制到 ~/.dsh/skills/dsh-config-backup/,便于各工作区会话识别备份/恢复类请求,也可 /dsh-config-backup 手动调用。
适用场景与注意¶
适合:长期改 DSH 配置、需要在误操作前留可回滚快照、或多机迁移清单内配置(不含 profile 二进制依赖)的开发者。
务必注意:
- 插件以当前 dsh 进程权限 读写
$DSH_HOME与备份目录;安装前应阅读源码与 MIT 许可证,自行评估是否纳入工作流。 .env、.credentials.yaml会进入快照与导出包;默认备份目录~/.dsh/backups权限取决于 umask,多机同步建议自行加密。- 社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件为社区维护(GitHub 星标以目录页为准)。
结尾¶
dsh-plugin-config-backup 把 DSH 配置备份收进 Host 内:定时快照、侧边栏历史、导出/导入与带 pre-restore 的还原,必要时用 Agent 工具在对话里完成同一套操作。进一步了解与安装说明见 GitHub README 与 SkillHub 目录页。