10:我睡著的那晚,AI 做了什麼?OpenClaw 離線自主運作實錄

OpenClaw Mar 23, 2026

這是 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 當成真正的團隊成員

Tags