更新完才是麻煩開始
前幾天我幫家裡那套 OpenClaw 做更新,原本只是想順手修一下每天早上整理新聞的 cron,結果更新完成後我第一個反應是:好,現在到底有沒有真的好了?
以前我會看終端機最後一行顯示成功,就把筆電闔起來。這次不敢了,因為我的 side project 有幾個東西是串在一起的:Gateway、每天跑的 cron、幫我整理 NAS 狀態的 agent,還有一個我拿來快速 prototype 的 CLI session。任何一層看起來正常,下一層都可能已經悄悄斷掉。
我先做了一個很土但有效的驗證流程。更新後先讓 Gateway 重啟,再實際跑一次測試 cron,確認背景任務有留下 completion。接著檢查原本的 CLI session 能不能繼續叫到 exec,避免它還握著重啟前的舊工具目錄。最後才讓新聞摘要那個正式排程跑一輪,對照輸出檔的時間、內容筆數和通知是否真的送到。
中間還踩到一個很煩的情境:設定變動的那一刻,背景工作其實已經做完了,但完成訊號沒有被我收到。表面上像是 agent 失敗,實際上只是 completion 掉在半路。這讓我重新整理了監控,不再只記錄「程序有沒有退出」,而是把開始、完成、失敗、重試都寫進同一份狀態。沒有完成事件的工作,十分鐘後就標成需要檢查。
另外,更新遇到資料結構變動時,我現在一定先確認 agent store 有沒有被恢復,並保留可回復的備份範圍。不是整個資料目錄亂備份,而是只針對這次會被改到的表留 rollback 路徑。這樣真的出問題時,知道要回哪裡,也不會拿一份過期的整包資料把新狀態蓋掉。
等一下,這套驗證其實可以拿來做我的其他 side project。更新完成不該是一個句點,比較像是進入驗收階段:服務活著嗎、工具清單新嗎、背景工作有回報嗎、資料能退回嗎。自動化越多,越不能只相信「成功」兩個字。要有觀測,也要有回復,才敢繼續把更多日常瑣事丟給它! 🔧
作者:Hector19