升級後會話列表還在,卻打不開原任務;工作區也恢復了,Agent 卻寫進錯誤倉庫。
最快解法:把 DeepSeek Harness 資料備份拆成可重建環境、會話狀態、工作區產物、敏感憑據四層,並用一條隔離的真實任務完成恢復驗收。
這篇適合準備升級候選版、擔心會話遺失的現有使用者;需要把本機環境搬到雲端 Mac 的開發者;以及負責交接或簽收長期 Agent 工作區的運維與採購人員。
SECTION 01先定義備份邊界:什麼需要保存,什麼只要能重建
不要先執行「整個家目錄複製」再慢慢猜哪些檔案有用。升級前應先建立一份環境清單,記錄:
- DeepSeek Harness 的安裝來源、目前版本與目標版本。
- 執行模式、啟動指令、工作區根路徑及作業系統版本。
- Node、Python、套件管理器、外掛執行時與其他相依元件版本。
- Provider 識別名稱、模型識別名稱、工具與審批模式。
- 每個會話對應的倉庫、分支、最後提交及是否存在未提交改動。
官方 API 文件將多輪對話描述為無狀態介面:每次請求都要重新帶上既有對話內容,因此本地 Harness 的持久狀態不能被當成遠端服務自動保管的副本。(api-docs.deepseek.com)
| 資產層 | 通常應保存的內容 | 可否只靠重新安裝取得 | 驗收證據 |
|---|---|---|---|
| 可重建環境 | 版本清單、安裝來源、啟動方式、相依版本 | 多數可以 | manifest、版本輸出、安裝紀錄 |
| 必須保留狀態 | 會話索引、持久事件、任務狀態、審批紀錄 | 不應假設可以 | 會話清單、事件檔案、抽樣可讀 |
| 工作區產物 | 未提交改動、忽略檔外的本地資產、專案指令 | 程式碼可由版本庫取得,但本地改動未必 | 提交雜湊、差異檔、路徑清單 |
| 敏感憑據 | 憑據引用、授權範圍、輪換紀錄 | API Key 不應放普通備份 | 密鑰未出現在備份與日誌中 |
可重建性通過的標準不是「備份包很完整」,而是你能在乾淨環境重新安裝所需軟體,並用版本清單解釋每一個必要元件。原始碼快取、臨時建置產物、可由套件管理器重新安裝的軟體,不應與會話資料混成不可審核的大包。
SECTION 02DeepSeek Harness 重裝前需要備份哪些目錄?
固定目錄全集不應直接套用到所有安裝方式。你應先從當前版本的啟動設定、環境變數和官方 persistence catalog 找到實際資料根目錄,再確認是否使用 DSH_HOME。截至本文核對範圍,DSH_HOME 可以作為重要線索,但不能單獨視為完整恢復方案。
建議在備份前產出以下清單,而不是只拖曳一個資料夾:
- 以唯讀方式記錄
DSH_HOME的實際值、權限及檔案系統位置。 - 列出會話索引、事件目錄、工作區映射和設定檔的相對路徑。
- 以檔案雜湊或檔案大小清單固定備份邊界。
- 排除快取、暫存檔、可重新下載的套件和明文密鑰。
- 將目錄清單與版本資訊一起保存,讓接手者知道哪些檔案是狀態、哪些只是可重建材料。
目前公開的 Harness 程式碼可看到 SQLite 狀態儲存、sessions、messages、成本及審批等模組;這只能說明目前倉庫的資產分類,不能推導所有版本都使用相同路徑或資料格式。(github.com)
注意: 若你看到會話檔案存在,不代表事件鏈可重放。預發布格式版本尚未承諾跨版本相容;任何跨版本恢復都應先在隔離副本執行,而不是直接覆蓋正式工作區。
SECTION 03只複製 DSH_HOME 能不能恢復會話?
通常不能直接下結論。若 DSH_HOME 只包含使用者層資料,而工作區映射、專案指令、插件資產或運行時設定位於其他位置,單獨複製它可能讓會話列表出現,卻在開啟或執行工具時失敗。
會話完整性要檢查的不是聊天文字,而是持久事件鏈。SessionEvent 可能代表使用者輸入、模型選擇、工具呼叫、工具結果、審批及任務狀態變更;缺少其中一類,仍可能造成「看起來能讀、實際不能續跑」的假恢復。当前仓库的會話持久化說明也將 SQLite-backed sessions 與工具、成本及審批流程放在同一運作鏈中。(github.com)
| 會話驗收項目 | 檢查對象 | 必須留下的證據 | 通過條件 |
|---|---|---|---|
| 索引完整性 | 會話清單、識別碼、最後更新狀態 | 匯出的會話索引 | 數量與抽樣識別碼一致 |
| 事件完整性 | SessionEvent、工具呼叫、審批、模型選擇 |
事件檔案或資料庫抽樣 | 能按原順序讀取 |
| 一致性邊界 | 備份時是否仍有寫入 | 停止寫入時間、程序狀態 | 沒有半寫入或鎖定錯誤 |
| 抽樣恢復 | 新環境開啟舊會話 | 螢幕截圖、命令輸出、錯誤紀錄 | 會話可開啟且狀態可理解 |
備份前先停止 Harness 寫入,或建立應用程式明確支援的一致性快照。不要在 Agent 仍然執行工具時直接複製資料庫;否則你可能得到索引已更新、事件尚未落盤,或工具結果只有部分寫入的副本。
SECTION 04會話日誌和工作區是否必須一起遷移?
對需要續跑的 Agent 任務而言,兩者通常應同時遷移,但必須分開管理與驗收。會話日誌回答「Agent 已經做過什麼」,工作區則回答「這些操作實際作用在哪裡」。只搬其中一邊,都可能造成錯誤恢復。
工作區一致性至少要記錄:
- 會話對應的絕對路徑與倉庫識別。
- 當前分支、最後提交雜湊與未提交差異。
- 未納入版本庫的設定、憑證代理、產生檔及本地測試資料。
- 外部依賴的版本、服務端點與是否能在新環境重建。
- 恢復後 Agent 是否仍被限制在預期工作區。
先恢復到唯讀或無寫入權限的隔離路徑,核對路徑和提交狀態,再授予工具寫入權。這個順序能避免會話雖然成功打開,卻因工作目錄指向另一個倉庫而誤修改正式資料。
如果你正在規劃DeepSeek Harness 會話遷移到雲端 Mac,應把「會話可讀」與「工作區可寫」視為兩個獨立簽收項目,而不是用一次啟動成功取代完整驗收。若本機沒有足夠的隔離空間,也可以先準備雲端 Mac 交付驗收所需的測試帳號、路徑和權限邊界。
SECTION 05設定、插件與版本相容性如何判定
設定與插件不要混在會話備份中直接覆蓋。建議依歸屬拆成三類:
- 使用者層:模型偏好、Provider 標識、全域設定。
- 專案層:專案指令檔、Skills、工具規則與倉庫內設定。
- 運行環境層:插件套件、系統權限、執行檔、環境變數與網路代理。
每一項都要標記「跟隨使用者」「跟隨專案」或「重新安裝」。新版本可能修改設定欄位、Provider 名稱、插件載入方式或審批預設值;開發者預覽階段不能假設舊配置與第三方插件天然相容。
模型配置也要重新核對。官方文件目前列出模型識別名稱、思考模式和工具呼叫等請求欄位;思考模式預設為啟用,若你的工具鏈依賴特定回傳欄位,就必須把實際模型設定納入恢復測試,而不是只檢查設定檔語法。(api-docs.deepseek.com)
建議操作順序如下:
- 匯出舊環境版本與安裝來源。
- 停止會話寫入並建立一致性邊界。
- 分層複製會話、工作區、設定與插件資產。
- 將憑據替換為引用名稱,不把真實 API Key 放進普通備份。
- 在隔離環境安裝目標版本並套用非敏感設定。
- 恢復會話和工作區,但先維持唯讀權限。
- 核對模型、Provider、插件載入及審批規則。
- 執行一條可逆端到端任務,最後才開放正式寫入。
SECTION 06API Key 應不應該放進備份檔案?
不應放入普通備份檔案。備份包可能被同步到雲端硬碟、交接給承辦人、留在舊硬碟,或出現在支援工單與壓縮檔歷史中;一旦 API Key 可直接使用,檔案本身就成為授權邊界。
你可以備份:
- 憑據名稱或引用識別。
- 使用哪個 Provider、用途和授權範圍。
- 建立者、最後輪換時間及撤銷程序。
- 恢復時由誰、在哪個安全通道重新注入。
你不應備份:
- 明文 API Key。
- 含密鑰的
.env副本。 - 終端機歷史、除錯日誌或完整環境快照。
- 未清理的舊壓縮檔、剪貼簿內容和螢幕截圖。
官方整合指南示例以環境變數提供 API Key;這種方式不等於自動安全,但至少把密鑰注入與會話、工作區資料分開。(api-docs.deepseek.com) 恢復完成後,應搜尋備份包、工作區、腳本、日誌及歷史壓縮檔,確認沒有殘留可直接使用的密鑰,再執行一次輪換。
SECTION 07端到端恢復才算通過
檔案檢查只能證明資料被複製,不能證明環境可用。正式簽收前,請在隔離副本執行一條可逆、低風險的任務鏈:
- 開啟一個既有會話,確認歷史事件可讀。
- 核對模型和 Provider,確認沒有靜默切換到錯誤設定。
- 讀取指定工作區中的一個檔案,但先不要寫入。
- 執行無破壞性的工具,例如列出檔案或產生暫存輸出。
- 觸發需要審批的操作,確認審批仍然有效。
- 在隔離分支建立可刪除的測試改動。
- 檢查任務結果、工作區路徑與事件紀錄是否互相對得上。
| 驗收結果 | 判定 | 後續處理 |
|---|---|---|
| 會話可讀、工作區正確、模型可呼叫、工具與審批正常 | 通過 | 才能交付或開放正式寫入 |
| 會話可讀但工作區路徑不明 | 拒收 | 先修正映射,不得讓 Agent 寫入 |
| 工作區完整但事件缺失 | 拒收 | 回到原環境重新建立一致性備份 |
| 工具可用但密鑰曾出現在日誌或壓縮檔 | 拒收 | 撤銷並輪換憑據,清理殘留 |
| 只完成檔案存在性檢查 | 未完成 | 不得宣稱升級或遷移成功 |
DeepSeek 官方文件指出,API 本身不會替你保存多輪上下文;而目前 Harness 的會話實作又涉及事件、工具和狀態,因此「檔案存在」與「任務可續跑」之間本來就有一段必須實測的距離。(api-docs.deepseek.com)
如果你正準備DeepSeek Harness 升級驗證,請把恢復任務的輸出、工作區差異、審批結果和憑據掃描結果一併放進交接紀錄,而不是只附上一張會話列表截圖。模型識別名稱、可用性與設定欄位也應在執行當日對照官方模型清單重新確認。(api-docs.deepseek.com)
你目前的本機方案若只能直接覆蓋升級,常見缺點是沒有隔離恢復窗口、工作區與會話邊界混在一起,還可能把舊憑據帶進新環境;只靠版本庫則又會遺失未提交產物、工具狀態和審批上下文。這種情況下,租用 MACNOX 的雲端 Mac 作為短期驗證環境,會比在正式設備上冒險重裝更容易保留回退路徑。若你的需求是長期固定負載、必須接實體裝置,或已有完善的內部備份平台,直接維持自有設備可能更合適;但若只是為升級、交接或雲端 Mac 遷移準備一個隔離驗收窗口,臨時環境通常更容易把四層資產和端到端證據分開簽收。