如果 Windows 上的 Hermes 多工作區一開就得等上幾分鐘,問題未必出在模型或網路上。
近期的實務回報顯示,很可能是每個 task(任務)都各自建立了一個 HERMES_HOME,並重新準備一套大約 720 MB 的依賴環境。在一個 23 次啟動並行的案例中,環境準備(setup)的時間中位數約為 3.5 分鐘,代表有將近 30% 的執行時間全都消耗在環境建置上。
處理這類症狀的重點,是先證明「每個任務都在重建」,再決定是要共用依賴、集中 runtime,還是暫時降低並行數。
本篇目錄
把等待時間拆成 setup 與真正執行
排查時,不要只看整個任務花了多久時間。
建議先保留一次冷啟動(Cold Start)與一次熱啟動(Warm Start)的時間,並在啟動日誌裡明確標出這四個節點:建立環境、安裝依賴、載入 provider、開始執行。
如果發現每個 task 都重複出現建立虛擬環境、下載套件或解壓 runtime 的動作,且熱啟動的時間並沒有明顯縮短,這就不是單純的模型回應慢。同時,務必把「多工作區同時啟動」的時間也記錄下來,因為磁碟 I/O 競爭會讓單次測試看似正常的環境,在併行時急劇變慢。
第一個檢查點:HERMES_HOME 是否隨 task 改變
在不曝光真實使用者路徑的前提下,記錄每次啟動時解析出的 HERMES_HOME、依賴目錄與 runtime 位置。
試著比較同一台機器上的兩個 task:若它們指向不同的資料根目錄,或者每次執行都產生新的環境資料夾,便可合理懷疑系統正在使用 per-task environment(每個任務獨立環境)。
在 Windows 上,還要特別檢查啟動腳本、工作目錄與服務帳號是否各自注入了不同的環境變數;因為只改互動式終端機的變數,未必會影響到排程或桌面啟動器。

第二個檢查點:確認共用不是只共用快取
排查設定時要注意,共用下載快取(Cache)與共用可直接使用的 runtime 是兩件事。前者只能減少網路流量,系統仍可能在每個 task 底下建立隔離環境、重新解析依賴。
修正前,請先列出目前環境的版本、provider 與啟動方式,並建立可回復的備份。接著,用一個非關鍵的工作區測試集中 runtime 或明確固定的 HERMES_HOME。測試時要保留原本的 task 數量,觀察 setup 時間、磁碟寫入量與任務成功率,不能只因第一次啟動變快就以為問題解決了。
第三個檢查點:並行數是暫時的止血閥
如果 shared environment 的正式修復方案尚未就緒,先降低同時啟動的工作區數量,或把依賴準備移到單一初始化步驟,是相當合理的 workaround(過渡方案)。
這個做法不能消除重建的動作,只能避免多個安裝程序互相搶奪 I/O 資源。建議為每個 task 設定明確的等待上限;超過上限就停止排隊、保留 setup 證據並交給人工處理,避免無限重試把磁碟與網路壓得更滿。除非已確認安裝型態、備份位置與可重建步驟,否則不要直接刪除現有的環境。

用一次可重複測試驗證
最後,請用相同的輸入條件跑三組測試:單一 task 冷啟動、同一 task 熱啟動、兩個 task 並行啟動。
在測試中至少記錄:setup 秒數、runtime 路徑是否一致、依賴環境大小、總執行時間與錯誤訊息。若路徑一致、熱啟動不再重建,且並行時 setup 不再成倍增加,才算驗證 workaround 真正有效。上游對 shared environment 的修復仍應視為待確認事項;在 release note 或 issue 明確表示完成前,不要把診斷結果直接當作正式修復。
FAQ
不一定。還要確認啟動器、服務帳號與 provider 是否真的使用同一個 runtime,並以冷、熱、並行三組測試來進行驗證。
不建議。請先確認哪些是暫存檔、哪些是目前 task 正在使用的檔案,完成備份與可回復測試後再進行清理。
不是。這只是降低磁碟競爭的臨時止血措施;正式的修復仍要看上游是否提供可驗證的 shared runtime 行為。
