dsh-plugin-config-backup:爲 DeepSeek Harness 配置做定時快照

前言

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

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

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

小夜