前言¶
用 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 目錄頁。