症狀:頁面斷了、Mac 剛喚醒,或任務畫面停在原地。最快解法:先保全工作區與日誌,再從另一條連線確認 Harness 進程、最後事件與產物;只有進程仍在且副作用可驗證,才繼續等待。
這個判斷適用於你在本地 Mac 合蓋、遠端連線中斷、退出 macOS 使用者,或重啟後重新接回 DeepSeek Harness 的情況。不要因為 Web UI 重新整理後看不到任務,就直接重複提交。
這篇文章適合:
- 合蓋或長時間空閒後,發現任務沒有新輸出的個人開發者。
- 透過遠端連線執行長構建、測試與 Agent 任務的工程師。
- 負責持續在線 Mac、任務恢復與重啟驗收的運維人員。
Mac 休眠後 DeepSeek Harness 中斷,先判斷哪一層?
你要先把問題拆成四種狀態:瀏覽器或 Web UI 斷線、macOS 休眠、使用者會話變化,以及 Harness 主進程或子進程退出。這四種狀態的表面症狀很像,但恢復方法完全不同。
Apple 說明,Mac 進入休眠後仍然開機,但會進入低耗電狀態;筆記型 Mac 合上螢幕也可能直接觸發休眠。這不等於你的長時間程式一定會被保留並持續推進。(Apple 官方休眠說明)
先做三件事:
- 複製或封存最後一份日誌。 不要先清理暫存目錄,也不要先刪除鎖檔。
- 保留工作區現況。 記下 Git 差異、檔案修改時間、產物目錄與測試報告。
- 從另一條連線驗證。 例如使用 SSH、另一個遠端桌面工作階段,或直接在本機終端機檢查進程。
DeepSeek Harness 的文件可能描述背景、會話或驗證能力,但截至 2026 年 8 月 19 日,沒有承諾所有任務都能跨越休眠、使用者退出、進程退出或系統重啟後自動續跑。實際狀態仍要依版本、啟動方式、子進程與工作區結果核對。(DeepSeek Harness README)
| 觀察到的現象 | 優先核驗 | 可以等待的條件 | 應停止自動恢復的條件 |
|---|---|---|---|
| Web UI 失聯 | Mac 可達性、Harness PID、最新日誌 | 進程仍在、日誌持續增加、產物可追蹤 | 完全沒有進程或日誌時間已停止 |
| macOS 休眠後無進度 | 休眠時間、喚醒時間、電源狀態 | 喚醒後進程仍存活,工作區有可解釋變化 | 網路、子進程或鎖檔狀態不明 |
| 使用者退出或重連 | 登入身分、LaunchAgent、Keychain、圖形權限 | 使用相同身分,依賴項可重新取得 | 憑據、權限或工作目錄已變 |
| 重啟後會話仍可見 | 會話記錄、進程、產物、版本差異 | 有明確 checkpoint 或可驗證完成事件 | 只有會話名稱,沒有執行證據 |
Mac 合蓋後 DeepSeek Harness 還會繼續運行嗎?
不能直接假設會。Mac 休眠會改變處理器、磁碟與網路活動條件;即使系統之後成功喚醒,Harness 的 API 請求、串流回應、子程式或檔案寫入也可能停在中間狀態。Apple 提供的「Wake for network access」主要是讓 Mac 因網路資源存取而喚醒,不是 DeepSeek Harness 任務續跑的保證。(Apple 電源管理說明)
第一種衝突:頁面斷了,但任務可能仍在
場景很常見:你關閉瀏覽器、VPN 短暫斷線,或遠端桌面畫面消失;重新連線後 Web UI 顯示空白,甚至看不到原來的任務。
這時不要先按「重新提交」。先在 Mac 上檢查:
ps aux | grep -i 'deepseek\|harness'
pgrep -af 'deepseek|harness'
若你知道日誌路徑,再看最後變更時間:
tail -n 80 /path/to/task.log
stat -f '%Sm %N' /path/to/task.log
你要找的是三種信號:
- Harness 主進程仍存在。
- 日誌有新的受控事件,而不是只有 Web UI 的心跳。
- 工作區或產物有能對應到任務階段的變化。
只要三項都成立,頁面斷線比較像觀測層故障。可以重新建立 UI 連線,但不要另開一份相同任務。
如果進程存在,卻只有重複錯誤、沒有新檔案、沒有新 API 事件,應暫停等待。進程「活著」不代表任務仍在推進。
Web UI 斷開是不是代表 Agent 任務已經停止?
不是。Web UI 只是其中一個觀測入口。你必須從 Mac 可達性、進程、日誌與工作區副作用交叉確認。反過來,頁面仍顯示「執行中」也不能證明 Agent 沒有死亡;會話記錄可能只是最後一次成功寫入的畫面。
提醒: 會話還在,不等於任務還活著;頁面不在,也不等於任務已停止。恢復決策必須以進程與產物證據為準。
第二種衝突:macOS 休眠後,進程可能停在半完成狀態
若最後一條任務事件的時間,接近 Mac 進入休眠的時間,先記錄電源狀態:
pmset -g
pmset -g assertions
Apple 文件指出,pmset -g assertions 可用來查看哪些程式正在建立防止系統休眠的電源要求。若沒有相關 assertion,不應把「程式正在工作」解讀成「Mac 一定不會休眠」。(Apple 開發者電源效率文件)
核驗順序如下:
第一步:對照最後事件時間。
把 Harness 日誌、系統休眠紀錄與最後一次產物修改時間放在一起看。單一時間點只能建立關聯,不能證明任務一定因休眠而中斷。
第二步:確認喚醒後的網路。
重新測試 API、DNS、SSH 與遠端儲存。如果任務在休眠前等待網路回應,喚醒後可能已經逾時,但子進程仍保留。
第三步:檢查工作區。
查看未提交差異、暫存檔、鎖檔與測試輸出。部分檔案已寫入時,不能直接從頭執行同一個寫入或發布動作。
第四步:建立停止條件。
若進程不存在、日誌在休眠前停止、產物缺少校驗資訊,或工作區同時出現互相矛盾的狀態,就停止自動續跑。
Mac 唤醒後怎麼判斷原來的任務能不能繼續?
至少要同時滿足四項:原進程仍在或有明確可恢復 checkpoint;最後事件可與工作區變化對應;外部副作用可確認;下一步不會重複提交、發布或覆寫未知結果。缺少任何一項,就先建立可信基線,再決定重建。
第三種衝突:使用者退出後,會話名稱仍可能誤導你
關閉瀏覽器、斷開遠端連線、退出 macOS 使用者、重新啟動系統,是四個不同的操作。
- 關閉瀏覽器: 通常只影響觀測入口。
- 斷開遠端連線: 可能只中斷終端機或圖形工作階段,也可能連帶結束沒有脫離會話的前景程式。
- 退出 macOS 使用者: 使用者級 LaunchAgent、Keychain、圖形權限與環境變數可能改變。
- 系統重啟: 進程必定需要重新建立;原會話是否可用,要看 Harness 的持久化設計與啟動方式。
檢查目前使用者與工作目錄:
whoami
pwd
launchctl print gui/$(id -u)
如果任務依賴登入後才能取得的 Keychain 憑據、圖形化權限或使用者目錄,重新登入後不要直接沿用原任務的認證判斷。先以同一使用者驗證必要憑據,再查看工作區與進程。
遠端 Mac 重啟後 DeepSeek Harness 會自動恢復會話嗎?
不能以會話列表作為答案。你要分開確認「會話資料是否存在」與「任務執行器是否重新啟動」。若只有歷史紀錄,沒有新進程、心跳、日誌或產物,應視為未恢復。需要開機自啟時,可另行閱讀 DeepSeek Harness launchd 開機自啟設定,但自啟只解決啟動,不會自動替未知狀態作出正確的續跑決策。
第四種衝突:會話還在,但進程已經死了
這是最容易誤判的情況。你看得到原來的任務名稱、對話紀錄或最後一段輸出,但真正的主進程、子進程、測試執行器或建置工具早已退出。
先查:
pgrep -af 'deepseek|harness|node|python'
find . -maxdepth 3 -type f \( -name '*.lock' -o -name '*.pid' \) -print
git status --short
git diff --stat
再把外部副作用列出來:
- 是否已建立發布包、部署檔或報告。
- 是否已寫入資料庫、遠端儲存或佈署服務。
- 是否存在半成品與完整產物同時出現。
- 是否有鎖檔殘留,但沒有對應進程。
依任務幂等性分三類:
可以重跑: 純讀取、可覆寫的建置,且產物有明確版本。
需要恢復: 已完成部分步驟,具備 checkpoint、事件序號或可驗證中間產物。
需要人工接管: 可能重複發布、付款、刪除、推送或修改外部系統。
若你遇到的是工具反覆重新執行,而不是休眠造成的中斷,應先處理重試條件,不要把兩種問題混在一起。
唤醒、重啟後如何建立可信恢復點?
當檔案已部分修改、測試結果缺失,或最後一個指令究竟有沒有完成無法判定時,停止讓 Agent 自己猜測上一階段是否完成。
使用以下可勾選清單:
- [ ] 封存最後一份 Harness 日誌與系統電源紀錄。
- [ ] 記錄目前使用者、工作目錄、Git 分支與未提交差異。
- [ ] 確認主進程、子進程、鎖檔及其父子關係。
- [ ] 對照產物檔案大小、修改時間、雜湊或版本標記。
- [ ] 確認外部 API、遠端儲存、部署服務是否已產生副作用。
- [ ] 以最小測試驗證目前工作區,而不是直接跑完整任務。
- [ ] 為下一步指定明確起點:續跑、重建或人工審批。
- [ ] 將未知完成狀態寫入事件紀錄,禁止當成成功。
恢復標準不是「畫面恢復正常」,而是你能回答三個問題:上一個已確認完成的階段是哪一個?目前工作區與產物是否一致?下一次執行是否會重複造成不可逆副作用?
如何避免長期 Agent 任務被系統休眠打斷?
先不要只依賴「Wake for network access」。Apple 將這項功能定位為讓 Mac 在存取共享資源時喚醒;它不是維持所有背景程式執行的機制。(Apple 電源管理說明)
長期任務至少要有:
- 明確的電源策略,並記錄
pmset設定。 - 可從另一條連線查詢進程與日誌。
- 進程退出後的重啟責任,例如 LaunchAgent 或外部監控。
- 任務 checkpoint、幂等設計與產物校驗。
- 休眠、斷線、進程退出、重啟四種驗收案例。
Apple 的開發者文件也指出,程式可以透過電源活動宣告長時間工作,並用 pmset -g assertions 檢查防止休眠的要求;但是否採用、能否覆蓋所有休眠情境,仍取決於程式本身與作業系統電源行為。(Apple 開發者電源效率文件)
最後,用四項中斷測試評估現有 Mac:網路斷線後能否辨認進程狀態、休眠喚醒後是否保留可信工作區、進程退出後是否能安全重建、重啟後是否有可驗證的恢復流程。若你的 DeepSeek Harness 任務只允許短暫中斷重跑,本地 Mac 仍可使用;若任務必須跨工作時段持續運行,且需要穩定的進程責任、重啟驗收與遠端可達性,讓任務留在個人 Mac 上會把休眠、登入與桌面權限風險集中到同一台機器。這時可評估 KVMNODE 的雲端 Mac 方案,先用上述四項測試驗收,再決定是否把長期 DeepSeek Harness 工作遷移到獨立在線環境。