前言¶
在 DeepSeek Harness(DSH)里長期開發時,工作區列表、各工作區的會話記錄,以及 schedule 定時任務往往都落在本機。換電腦、重裝系統或在家與公司兩臺機器之間切換時,如果沒有統一的「狀態出口」,只能手工拷貝目錄或指望網盤誤同步到錯誤路徑。
DSH 的 DeepSeek 賬號登錄主要承擔身份、餘額與推理鑑權;官方並未向第三方開放可存可取的用戶數據雲空間(Files API 亦不能用於拉取這類數據)。因此「登錄即自動同步」在客戶端側無法實現。社區插件 dsh-workspace-sync(維護者 ColdRainLab,分類:記憶)的做法是:把需要延續的工作狀態同步到你自己指定、且可被網盤客戶端同步的文件夾,新機器安裝同一插件並指向同一目錄,拉取後即可接上原來的工作區與會話。
下面按定位、功能、安裝、用法、數據佈局與限制說明該插件。
這是什麼¶
dsh-workspace-sync 是 DSH 桌面端插件(engines.dsh 要求 >=0.2.1-rc.2 <0.3.0),當前包版本 0.1.2,許可證 MIT。
一句話:把工作區元數據、會話日誌(session.v4.jsonl.zstd)與自動化任務同步到用戶自管的「雲端目錄」(首版爲文件夾後端,可指向 OneDrive、堅果雲等同步盤路徑),支持雙向同步或僅上傳/僅恢復。
- 目錄頁:https://www.skillhub.cn/plugins/ColdRainLab/dsh-workspace-sync
- 源碼與說明:https://github.com/ColdRainLab/dsh-workspace-sync
核心功能¶
同步範圍與模式¶
- 雙向同步:本地上傳 → 與遠端合併 → 從遠端拉取;也可只做「上傳到雲端」或「從雲端恢復」。
- 同步內容:工作區(路徑、標題、會話分組)、會話日誌、schedule 任務行(含運行記錄)。
- 自動同步:啓動約 15 秒後跑一次,並可按間隔每 N 分鐘重複(可在面板關閉或改間隔)。
本地豁免(不同步)¶
與 dsh-workspace-vault 配合時,下列內容不上傳,雲端已有也不會寫回本地:
- 隱藏空間:路徑在
<DSH_HOME>/hidden-space下的工作區。 - 加密工作區:
workspace-vault/state.json中hiddenWorkspaceIds、encryptedWorkspaceIds記錄的工作區。
判定依賴本機 ~/.dsh/workspace-vault/state.json(缺失、損壞或字段類型錯誤時按「無排除」處理,只記告警,不中斷同步)。hidden-space 路徑前綴規則不依賴該狀態文件。
衝突與後端¶
- 同一會話在兩臺機器都有修改時,較新者勝;舊版本備份在雲端
conflicts/,避免靜默丟數據。 - 首版後端爲文件夾:指向任意被網盤同步的目錄;
lib/backends/已爲 WebDAV 等預留擴展位。 - 面板:側欄底部「☁ 雲同步」→ 配置目錄、查看狀態、手動同步、查看衝突與錯誤。與垃圾箱插件(dsh-session-delete)在 footer 合併爲一行顯示。
安裝與啓用¶
資料中的安裝示例來自作者本機 link: 開發路徑與打包分發路徑;一般用戶若從 SkillHub / 發行包獲取插件,應按所獲渠道的安裝說明操作。README 給出的桌面版命令如下(路徑需按你的 DSH 安裝位置與插件目錄替換)。
開發 / 本機 link 安裝示例:
& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "link:C:/Users/ROG-STRIX/Documents/deepseek-harness/DSH新增功能/dsh-workspace-sync"
穩定版 tgz 示例路徑(作者環境):
C:\Users\ROG-STRIX\.dsh\plugin-archives\dsh-workspace-sync\v0.1.0\dsh-workspace-sync-0.1.0.tgz
卸載:
& "D:\Program Files\Deepseek Harness\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-workspace-sync
安裝前建議閱讀倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限讀寫本地數據與你所配置的雲端目錄,僅安裝你信任的版本。
啓用後可通過宿主接口檢查健康狀態,例如 GET /api/workspace-sync/health 返回 { ok, version, dshVersion }(資料中驗證版本爲 0.1.0 與宿主一致場景)。
典型用法¶
- 點擊側欄底部「☁ 雲同步」。
- 在「雲端目錄」填寫會被網盤同步的文件夾,例如:
- OneDrive:C:\Users\<你>\OneDrive\DSH-Sync
- 堅果雲:C:\Users\<你>\Nutstore\我的堅果雲\DSH-Sync
- 本地試跑:C:\Users\<你>\Documents\DSH-Sync - 點「保存」,再點「立即雙向同步」。
- 在另一臺電腦:安裝同一插件 → 將「雲端目錄」指向同一路徑(網盤同步後的等價路徑)→ 使用「從雲端恢復」。工作區、會話與任務會出現;若本地工作區路徑不存在,插件會建空目錄,但項目業務文件仍需你用 git 或網盤自行同步項目目錄。
命名空間:登錄 DeepSeek 賬號時按賬號 id 派生(acct-<hash16>),未登錄則爲 default。
數據放在哪裏¶
| 項 | 位置 |
|---|---|
| 插件配置、設備 id、同步狀態 | <DSH_HOME>/workspace-sync/(默認 ~/.dsh/workspace-sync/) |
| vault 排除依據 | <DSH_HOME>/workspace-vault/state.json |
| 隱藏空間工作區 | <DSH_HOME>/hidden-space/ |
| 面板默認雲端目錄 | ~/Documents/DSH-Sync(可在面板修改) |
| 雲端佈局 | <雲端目錄>/<命名空間>/manifest.json、objects/、devices/、conflicts/ |
objects/ 以內容尋址存放會話原文件;manifest.json 爲工作區、任務與會話哈希的權威清單。寫入採用臨時文件再 rename,減少網盤同步到半文件的風險。
主要 HTTP 接口(JSON,失敗時 { ok:false, error:{ code, message } })包括:/api/workspace-sync/config、/status、/diff、POST /sync(mode: two-way | push | pull)、/log 等,完整表見倉庫 README。
適用場景與注意¶
適合誰
- 多臺 Windows(資料驗證環境爲 DSH 0.2.1-rc.3)之間延續 DSH 工作區與會話。
- 已有 OneDrive、堅果雲等「同步文件夾」、希望數據在自己網盤而非第三方不可控存儲的用戶。
使用前需知曉的限制(v0.1 文檔所列)
- 刪除操作(垃圾桶、永久刪除、取消歸檔/置頂)不跨設備傳播;同步側重並集與較新者勝。
- 工作區絕對路徑宜在多機保持一致;目錄內業務代碼不由此插件同步。
- 同會話併發編輯不合並事件流,僅保留較新副本,舊版在
conflicts/。 - 不同步附件/圖片、其它插件與全局設置。
- 首版雲端爲明文 JSON / zstd,請使用可信網盤;後續可能加入口令加密。
- 單會話文件大於 64 MiB 會跳過並記錄。
- 雲端
objects/只增不刪,長期使用需自行清理或等待後續 GC 策略。 - 隱藏空間/加密工作區排除後,雲端舊
objects/不會自動刪除。
DSH 生態以「一切皆插件」爲理念;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文介紹的是社區維護的 ColdRainLab/dsh-workspace-sync。
結尾¶
若你的痛點是「換機器後 DSH 裏的工作區列表、聊天會話和定時任務要對齊」,而不是同步整個項目倉庫,dsh-workspace-sync 提供了一條可復現路徑:自管雲端目錄 + 面板內雙向或單向同步,並對 vault 隱藏/加密工作區做本地優先的排除。