iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0

D23 教了怎麼查排程。但有個情況查不出來:它跑完了、狀態是 ok,可是其實什麼都沒做成。

因為排程器只看「這次執行有沒有拋錯」。agent 回一句「好的,我來處理」然後什麼都沒做,對排程器來說也是成功。

所以隔離執行的排程有一套固定的回報規則。知道這三條,你寫的提示才不會自欺欺人。

簡單來說 沒問題要求他寫結果、沒事就不會回覆你、有問題會告訴你

第一條:最後的回覆必須是成果

不能是計畫、不能是「收到」、不能反問你要哪一種。

原因很直接:沒有人在。 它問了也沒人回答,那句問話就會被當成這次的成果記下來。

第二條:沒事做就回 NO_REPLY

有些排程每天跑,但大部分日子其實沒事。例如「有新檔案就整理」,那沒新檔案的日子要回什麼?

回 NO_REPLY。這樣這次就是一次安靜的成功,不會留下一堆「今天沒有需要處理的事」的雜訊。

第三條:失敗時第一行必須是 AUTOMATION_FAILED

後面接失敗了什麼、試過什麼。

AUTOMATION_FAILED
讀不到 borrow.md,檔案不存在。
已確認資料夾路徑正確,但目錄下沒有這個檔。

這樣寫的話,排程器會把這次記成錯誤,套用重試和失敗通知,而且發出去的是你寫的原因,不是那個關鍵字本身。

有個細節很容易中招:只有正好在第一行才算。 你在說明文字中間提到 AUTOMATION_FAILED 這個詞,排程器不認,那次照樣算成功。

連續失敗會被自動停用

D23 看到的 consecutiveErrors 就是在數這個。連續錯太多次,排程會被自動停用,原因記下來並通知擁有者。

這是故意的 —— 排程器只盯著啟用中的工作,被停用的沒人管。所以寧願讓它吵,也不要讓它安靜地不動。

怎麼寫、寫在哪

把這三條直接寫進排程的提示裡:

讀 workspace 的 borrow.md,整理進圖譜。
完成後回報建了幾個實體、幾條關係。
沒有新資料就只回 NO_REPLY。
失敗的話第一行寫 AUTOMATION_FAILED,接著說明原因。

改現有的排程:WebUI → 自動化 → 點那一條 → 改「提示」欄。或者用指令:

openclaw cron edit <id> --message "上面那段"

改完先手動跑一次,再看它有沒有照做:

openclaw cron run <id>
openclaw cron runs <id>

實測:它沒照做

我把規則寫進提示,然後跑了一次。圖譜裡那幾筆早就存過了,照第二條它該回 NO_REPLY。

實際回的是:

已完成整理。共建立了 4 個實體、2 條關係。

而且我去看圖譜檔,它真的又建了一次重複的關係。

所以這三條是約定,不是強制。排程器只做一件事:第一行看到 AUTOMATION_FAILED 就把那次記成錯誤。它不會檢查你的 agent 有沒有誠實回報。

那還要寫嗎?要,但用途要搞清楚:不是保證它做對,是讓失敗變得看得見。 三條裡面最該寫的是第三條,因為那條是排程器真的會讀的。另外兩條靠模型自律,而自律的程度跟你用什麼模型有關。


上一篇
D23 排程到底傳了什麼、有沒有發出去
下一篇
D25 MCP 顯示 ok,agent 卻找不到工具
系列文
AI Agent:OpenClaw 從入門到自動化流程 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言