若您剛升級 OpenClaw,隨即遇到 Gateway 行為異常、CLI 與容器版次分裂,或社群標示的退行時間窗,本文整理三件事:是否應立即回滾、Docker 與 npm 兩條路徑如何各自釘 digest 並對齊版次,以及 唯讀磁碟區檢查加上驗證階梯,如何證明已回到已知良好狀態。內容補充 釋出通道釘版矩陣(策略與事故運維分工),並與 SSH 本機轉發到專用遠端 Mac Gateway、升級與遷移檢查清單併讀。
openclaw 二進位已新、容器 Gateway 仍舊(或相反)。缺子命令或未知旗標出現,容易誤判成 WebSocket 1006 雜訊。.openclaw 同時存在於綁定掛載與匿名磁碟區。只回滾映像仍讀到空樹,彷彿回滾無效。事故回滾先把症狀對應到 版次真實三元組:CLI 語意版/組建 ID、映像 digest(或其他可稽核參照)、設定目錄的 inode 與掛載圖。沒有這份快照就回滾,等於映像變舊卻仍讀錯磁碟區或錯的 TOKEN 注入層,近似隨機降版。本文刻意不重複綠地安裝與 doctor 症狀大全,只保留對 回滾後驗收 有意義的探針。
若 Gateway 跑在 易休眠的筆記型電腦或綁在桌機工作階段,電源原則、VPN 瞬斷與磁碟壓力會偽裝成「升級後不穩」,燒掉回滾時間預算。若您需要工單上能寫明 digest A→B→A 的可稽核軌跡,把權威 Gateway 放在 常時連線的專用遠端 Mac、筆電只跑 CLI,總成本往往更划算。第四節給三條可直接貼進值班手冊的 KPI 型門檻。
| 維度 | 繼續除錯(延後回滾) | 立即回滾(先恢復服務) |
|---|---|---|
| 爆炸半徑 | 非正式環境沙箱,TOKEN 與磁碟區已隔離 | 正式流量出現靜默失敗、工作遺失或安全警示;或社群已確認退行範圍 |
| 證據鏈 | 三元組已取證且 doctor 指向具體設定旋鈕 | 快照缺漏或三元組已不一致;再改設定只會擴大爆炸半徑 |
| Docker 槓桿 | 針對單一服務跑 docker compose logs,並對照官方破壞性說明 |
將 OPENCLAW_IMAGE 指到最後已知良好 digest;pull 後務必 up -d;接著做唯讀磁碟區檢查 |
| npm 槓桿 | 確認 Node 主版基準與單一全域 PATH | 依上游文件重裝前一版全域套件,重啟 Gateway 常駐程式,重新開流量前跑最小探針 |
| 遠端常駐 | 可在專用伺服器上以不同磁碟區名稱與埠跑影子 digest | 正式與影子磁碟區名稱必須隔離,避免回滾時抹掉實驗資料 |
2026-05-13 釘版矩陣回答 要搭哪條 stable/beta/dev 軌 與 何時主動釘 digest。本文回答 已判定組建不佳之後:把回滾、驗收與稽核軌跡壓到數分鐘,並用 唯讀磁碟區稽核 避免「映像回滾了、狀態仍漂移」。若卡在 配對、1006/1008、TOKEN 雙來源,請改讀 配對與權杖衝突 Runbook;此處只保留回滾後是否必重做配對的 決策門檻。
在 Docker 正式路徑旁邊務必放日誌保存、cgroup 上限與 18789 等露出政策,見 Docker 正式環境 Runbook;否則會變成「digest 釘死了,當晚 compose 的 SHA 卻無人知曉」。下方 bash 僅列 欄位類型,請替換服務名、磁碟區名、登錄檔主機,並對齊釘版組建的官方子命令。
注意:社群對「壞小版」的討論具時效性;本文不硬編特定語意版。執行前工單須載明 目標 digest 或標籤、compose 的 git SHA、是否允許清除實驗磁碟區。
openclaw --version、映像 RepoDigests、截斷的 docker compose config,以及狀態樹的唯讀目錄列表(見 bash 草圖)。OPENCLAW_IMAGE 設為 ghcr.io/.../...@sha256:<known-good>;執行 docker compose pull 後 docker compose up -d;切勿只 pull 不 up。ls -la,確認關鍵檔存在,且未誤掛到空的主機目錄。gateway status(或同等)→ 確認 18789 Control UI 可達 → 非破壞最小探針 → openclaw doctor;任一步失敗即停止重開流量並封存日誌。# Evidence snapshot (rename fields to your environment)
openclaw --version 2>/dev/null || true
docker compose config | sed -n '1,160p'
docker image inspect "${IMAGE_REF}" --format '{{json .RepoDigests}}' 2>/dev/null || true
# Read-only volume sweep (replace container and mount path)
# docker exec -it <gw_container> sh -lc 'ls -la /path/to/mounted/state | head'
# Pin OPENCLAW_IMAGE to digest (do not copy a random digest from the internet)
# export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw@sha256:<KNOWN_GOOD>"
# docker compose pull && docker compose up -d
這些是 營運可觀測性 指標,不是合成跑分:把「壞版」從感覺變成可計數事件。若在同一台機器同時跑大型 Xcode 建置與 Gateway,請把 磁碟水位與日誌輪替 綁到升級窗口,否則 I/O 飽和會拉長 MTTR。容量與租期框架見 多區域租賃指南;計費細節本文不展開。另請在變更窗口前預留至少一次唯讀磁碟區巡檢的緩衝分鐘數,避免與峰值建置撞期;指標應能回溯到負責人與時間戳(可稽核)。
筆電利於互動,但睡眠、合蓋、VPN 切換、OS 更新與鑰匙串脈絡疊在 Gateway 連線品質上。同一台機回滾容易出現「指令成功、常駐程式未重載」的半套狀態。把權威 Gateway 放在 常時連線的專用遠端 Mac,以文件化 SSH 轉發或私有入口承接,可把 版次變更面 與 個人終端雜訊 分開,這也是許多團隊正式化 Agent Gateway 的做法。若堅持本機 bleeding edge,至少把三元組寫進 CI 或 cron,而非聊天記錄。
相較一再 docker compose restart 或盲目 npm reinstall,以 digest 為先的回滾可稽核、可在第二台機器重播,符合安全與驗屍審查實際會問的條件。若要把 7×24 可稽核 Gateway 對齊團隊變更節奏,將工作負載落在六區、彈性租期的 MACCOME Mac mini(M4/M4 Pro)通常比在筆電電源策略上搏鬥更省總擁有成本。先讀 多區域指南,再以本文上方 SSH Runbook 配線拓撲。
實務上建議把「回滾演練」納入每季一次的輕量桌演:在非正式流量的專用遠端 Mac 上,刻意從 digest A 升到 B 再回到 A,驗證卷唯讀巡檢與驗證階梯腳本仍與文件一致。演練產出的日誌 tarball 與 compose SHA 應留存於可搜尋的工單系統,便於稽核與跨時區值班銜接;此舉也能提前發現 launchd/systemd unit 與 Docker 雙路徑並存時的重載遺漏,避免真實事故當晚才首次執行回滾指令。另可將「半套升級」探針納入監控:每小時比對 CLI 版本字串與容器 RepoDigest,若不一致即開單,強迫團隊在擴大流量前收斂到單一真源。
交付物應列出 預設 digest 參照、允許的預覽窗口、禁止模式(例如正式環境不得無 digest 漂在 latest)、階梯輸出範例、回滾負責人與逾時。無法在第二台機器重播的步驟即未完成文件。與 GHCR 啟動與 Control UI 併讀時,請把「映像回滾」與「18789 露出政策」放在同一張工單,避免緊急降版後誤把管理介面公開到網際網路。若採 GitOps,建議在 MR 模板強制填寫 digest 與 compose SHA,降低口頭對齊造成的遺漏。