DeepSeek Harness 備份與恢復:一鍵打包本地插件

前言

DSH 理念是「一切皆插件」。在開發智能體時,開發者常依賴本地插件來擴展功能,這些插件往往包含自定義的依賴和鏈接配置。在更換電腦或重裝系統時,僅僅複製設置文件往往無法恢復完整的開發環境,因爲本地插件及其依賴關係容易丟失。

這個插件解決了上述痛點。它提供了一套完整的備份與恢復機制,能夠將設置、憑據、技能、預設以及本地插件打包成 ZIP 文件。在需要時,可以將環境還原回原來的目錄結構。

功能與特性

插件的主要功能圍繞「發現」、「打包」和「還原」展開:

  1. 發現本地插件:插件不僅讀取 profile 的 package.json 依賴,還會掃描 node_modules 軟鏈接/junction,以及 dsh.profile.bundles 指向本地的 bundle,生成完整清單。
  2. 勾選打包:發現插件後會列出清單,支持複選框勾選和「全選」操作,界面會實時顯示發現數量、可打包數量和已勾選數量。
  3. 插件是一等公民:每個本地插件連同其生產運行依賴都會被打包進歸檔中,manifest 會記錄完整的鏈接拓撲。
  4. 還原回原位置:還原時優先恢復到備份記錄中的原始絕對目錄;若原目錄不存在,則自動落點到 $DSH_HOME/plugins/<插件名>,並同步改寫 profile 的聲明與鏈接。
  5. 補齊聲明:對只存在於 node_modules 但未聲明的插件,還原時會自動補寫 link: 依賴,防止下次安裝時被刪除。
  6. 逐項校驗:還原完成後,會對目錄、入口文件和 profile 鏈接進行校驗,結果直接反饋在設置頁面。
  7. 恢復可逆:任何一次恢復操作前,都會自動打一份快照,因此恢復過程本身是可撤銷的。
  8. 不覆蓋更新的內容:系統基於文件系統時間判斷,如果目標文件比歸檔新且內容不同,則跳過並保留原文件。
  9. 大備份可靠下載:採用 4MB 分塊下載機制,避免因單次響應體過大導致的下載失敗。
  10. 備份記錄列表:所有備份文件會列在設置頁,支持直接恢復或刪除。

安裝與啓用

通過命令行安裝:

dsh plugin --profile desktop add github:hello-heyongping/dsh-helloai-bak

安裝完成後,進入 設置 頁面即可看到「備份與恢復」選項。

使用方法

備份

  1. 打開 設置 → 備份與恢復;
  2. 在「本地插件」清單中勾選需要打包的插件(默認會勾選可打包項);
  3. 點擊 「備份全部配置」,生成 ZIP 文件並下載;
  4. 備份文件默認保存在 $DSH_HOME/backups 目錄,同時出現在下方的「備份記錄」中。

恢復

  1. 在「備份記錄」中找到對應的備份點,點擊 「恢復」;或者在換電腦時點擊 「從 ZIP 恢復」 手動選擇文件;
  2. 恢復前系統會自動打快照,確保可逆;
  3. 恢復完成後,界面會逐項列出每個插件的結果(如已恢復、已保留、未備份、失敗等)。

注意事項

  • 敏感信息:備份文件包含 .credentials.yaml 等敏感憑據,請僅在可信渠道保存和傳輸。
  • 覆蓋規則:恢復是整體覆蓋,但會優先保留比備份更新的文件。若需強制覆蓋,界面會提供相應按鈕。
  • 無作用域選擇:恢復操作沒有作用域選擇,設置、憑據、技能、預設和插件會一起恢復。若只想恢復部分內容,需在恢復後手工回退。
  • 目錄位置:備份目錄固定在 $DSH_HOME/backups,暫不可配置。
  • ZIP 限制:採用經典 ZIP 格式,條目上限爲 65535。
  • 懸空鏈接:如果 node_modules 中的鏈接指向的目錄已被刪除,無法打包,只能在清單中報告。

總結

該插件通過將本地插件視爲一等公民,解決了 DSH 環境遷移時的配置丟失問題。配合快照機制和不覆蓋更新策略,提供了可靠且安全的備份體驗。

GitHub 倉庫 | 插件目錄

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

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

小夜