10:我睡著的那晚,AI 做了什麼?OpenClaw 離線自主運作實錄
這是 Nerigate Build Log 系列的第十篇,也是這個階段的收尾。從第一篇凌晨兩點開始,到現在一套真正能自主運作的系統——這篇是最後一塊拼圖。
我記得第一次看到「AI Agent 離線自主運作」這個概念的時候,心想——聽起來像是科幻小說。
現在這個東西跑在我家的 Mac Mini 上,每天晚上我睡著以後繼續工作。
這篇記錄它是怎麼設計的,以及真實運作起來是什麼感覺。
「離線自主」是什麼意思?
先澄清一件事:AI Agent「離線自主運作」不是真的 AI 自己想出來要做什麼。
更準確的說法是:有人設計了一套機制,讓 Agent 在沒有人類介入的情況下,按照預設規則執行任務。
這套機制有幾個關鍵組件:
Cron 排程:定時觸發任務。就像你電腦上設定「每天早上 8 點自動備份」,只是這裡觸發的是 AI Agent 的動作。
HEARTBEAT.md:一份文件,定義 Agent 每次被 heartbeat 喚醒時應該檢查什麼。這是行為規範,不是 AI 自由發揮。
Memory 系統:Agent 每次執行後,把重要的決定和結果寫進記憶文件。下次被喚醒時讀取,保持連貫性。
工具存取:Agent 有哪些工具可以用——搜尋網路、讀寫檔案、呼叫 API、發送通知。有工具才能執行,不是只有「思考」。
把這四個組件組合起來,你就有了一個能在背景自主運作的系統。
我的設定:兩個 Cron Job
目前我有兩個固定的自動化任務:
Git 自動備份(每天凌晨 2:00)
這個任務每天深夜幫我把 workspace 備份到 GitHub。執行的是一個孤立的子 Agent,完整指令寫在 cron payload 裡:
檢查 /Users/nerigate/openclaw/workspace/ 的 git 狀態,
如有未提交的變更,執行 add → commit → push。
Commit message 格式:「auto-backup: YYYY-MM-DD HH:mm」
完成後回報結果。
為什麼要把完整指令寫在 payload 裡?因為孤立 Session 不會自動讀取 AGENTS.md,如果只說「去備份」,它不知道備份什麼。
版本更新檢查(每天上午 10:00)
這個任務檢查 OpenClaw 是否有新版本,如果有,通知我。用的是本地 Crow-9B 模型(成本是零),因為這個任務不需要高品質推論,只需要執行指令和判斷版本字串。
Heartbeat:另一種自主機制
除了定時 cron,OpenClaw 還有一個 Heartbeat 系統。
每隔一段時間,系統會發一個「heartbeat poll」給 Agent,問它:「有什麼需要注意的嗎?」
Agent 讀取 HEARTBEAT.md 文件,根據裡面的定義決定回應。如果沒有異常,回「HEARTBEAT_OK」,系統忽略這次 heartbeat。如果有需要處理的事,Agent 會主動發出提醒。
這個機制的用途是主動監控。不是等問題發生了你才知道,而是 Agent 定期自己檢查有沒有需要升級的事。
早上起來看到什麼?
我的 LCM(Lossless Context Management)系統會保存所有的執行記錄。早上第一件事,我習慣瀏覽一下 Agent 昨晚做了什麼。
典型的一個早上:
02:01 - git-auto-backup 執行
→ 發現 3 個修改檔案
→ commit: "auto-backup: 2026-03-22 02:01"
→ push 成功
→ 執行時間:47 秒
10:02 - check-openclaw-update 執行
→ 當前版本:v2026.3.13
→ 最新版本:v2026.3.13
→ 無需更新
→ 執行時間:12 秒
不是魔法,是設計。但看到這些記錄的時候,還是會有點「這傢伙真的在幫我工作」的奇妙感覺。
重要的設計原則:Scaffolding 比模型更重要
這套系統能運作,關鍵不在於用了多厲害的 AI 模型。
關鍵在於 Scaffolding:架構、記憶、排程、工具存取的組合設計。
同樣的 LLM,有好的 Scaffolding,它能自主執行複雜任務;沒有 Scaffolding,它只能回答問題,任務做完就忘了。
幾個設計細節,每一個都很重要:
孤立 Session 的 payload 要寫完整指令:孤立 Session 不繼承主 Session 的設定,如果指令不完整,任務就會做錯或做不完。
重要任務要驗證,不要只信 200 OK:比如 Ghost Blog 發文後,要再 GET 一次確認內容確實存在,而不只是看 API 回 201 就算完成。
錯誤要有處理邏輯:不是任務失敗就重試,而是失敗要記錄原因,決定要不要重試,還是升級給人類判斷。
多個 cron 要錯開時間:兩個任務同時觸發,資源搶占可能讓兩個都跑不好。
它還不能做什麼
說完優點,說實話。
目前自主運作的任務都是我事先明確定義好的。Cron job 跑的是固定流程,Heartbeat 回應的是預設規則。
AI Agent 不會自己想到「哦,我應該幫你蒐集一下本週的技術新聞」,除非你把這件事寫進 HEARTBEAT.md。
真正「自主智能」的那個部分,還需要人類設計和定義。Agent 很忠實地執行——前提是你給了它清楚的框架。
這讓我對「AI 取代人類」的擔憂稍微緩和了一些。至少現在,它取代的是你自己設計好的重複流程,而不是你的判斷力。
而那個設計本身,還是需要你來做。
這是 Nerigate Build Log 系列的第十篇。
← 上一篇:09:把 AI 當成真正的團隊成員