文章

Claude Code 定時任務要花多少:什麼時候該用它,什麼時候 cron 就夠了

定時器不用錢,被它叫醒的那個 session 才要。Clawdline 的排程比一支掛在 cron 上的 shell script 多買到什麼、你的哪些雜務真的需要它,以及這兩個答案背後那筆量測。

把一件事掛上定時器,你不必再出力,好處卻一直回來;也不必再注意,帳單卻一直回來。前半件事 cron 免費做了四十年;一個 agent session 做同一件事不是免費的。下面的數字來自一台機器上的派工紀錄:有憑據的個案。

定時器幾乎免費,被它叫醒的東西才要錢

cron 和 launchd 每天早上九點準時觸發一件事,成本趨近於零,不管 App 有沒有開著。要錢的是定時器響了以後醒過來的那個東西。

所以如果你的雜務是「抓一份 JSON、送一則通知」,答案就是一支免費的 shell script。

一件週期性的雜務本來就不一定要用 agent 做。該問的不是它多久跑一次,是這一次跑要不要做判斷。script 只會執行:它讀不了那個 repository,分不出今天早上壞掉的是三件事裡的哪一件,也寫不出修正。那個能力才是願意付超過零的理由。所以問題很窄:你的哪些雜務真的需要判斷?

先算一件事:一次執行裡,你真正想要的那段佔多少

在你把一件事掛上 agent 的定時器之前,先算一次執行裡面,真正是你想要的那一段佔多少比例。如果答案是百分之幾,那你不是在自動化一件雜務,你是每天早上買一個 session,然後只用它的一個角落。

我們在 2026 年 8 月 28 日對自己跑過這個測試,第一個被指著的是每日天氣推播。它不讀專案檔案、不寫入 repository,只抓一份 JSON、送一則通知。

它一次執行大約要花 70 萬個 token,而且不到一分鐘就花完。洩漏真相的是碼表:裡面幾乎沒有工作,那是這個 session 的常駐脈絡,每一輪讀一次,跟一個跑四小時的任務讀的是同一份。

三個每日雜務、五次紀錄在案的執行,合計大約 940 萬個 token 與 8.52 美元,是那台機器歷來所有派工的 4.0%,而三個加起來只產出了大約 51,000 個 output token。

三個每日雜務跑五次,一共花掉940 萬個 token
其中真正被寫出來的51,000 個 output token
兩條的比例尺是同一個。細的那一條是另一條的 0.55%,它不是畫壞了——那就是這五次執行真正產出的全部。剩下的都是讀:一個 session 在能做任何事之前要先讀進去的常駐脈絡,而且每一輪都要再讀一次。

那三件雜務裡,有兩件根本沒有判斷可言。這個數字講的不是「排程很糟」,是有兩支 shell script 被裝進了兩個助理裡面。

而你今天量到的比例,是它這輩子最好看的一次。迴圈顯得便宜是軟體給的直覺:程式跑第二次幾乎免費,貴的那段已經付過了。Agent 的工作反過來,貴的是讀。你之後加的每一份指示檔、每一個 skill、每一個工具都是常駐脈絡:對真正的工作有用,然後原封不動算進那個「抓一份 JSON」的雜務裡。

那件雜務真的需要判斷時,你買到的是什麼

通過測試的那些雜務,Clawdline 的排程不是另外開的、比較弱的一條路,它就是一次普通的派工,前面多了一個時鐘。

它走的是跟其他工作同一道閘門。同一套「先宣告要寫哪些路徑」的機制,也就是擋住兩個 session 互相 commit 掉對方東西的那一套;同一個容量上限、同一條「只能往下派一層」的天花板。同樣的權限與信任檢查,同一種任務紀錄。

排程也可以指定一個日期,而不是一組星期幾:像「六號凌晨一點半跑一次就退休」的維護窗口。配對過的手機能建立、改時間、刪除排程,走遠端設定裡那個預設關著的開關。這件事要往兩邊讀:一支手機就能移除原本會在沒人看管時執行的工作,時間設錯的排程也不必等你回到 Mac。停掉一個已經在跑的任務是同一個開關下的另一種寫入,它有自己的一篇。

Mac 睡著了、或上一次還在跑的時候

真正會找上門的是三個問題。

發生這件事 排程會這樣做
錯過了一次觸發,而 App 在補跑窗口內又打開了 補跑一次,遲到執行
錯過了一次觸發,而窗口已經過了 記成錯過並通知你,不是遲到執行
新的觸發來的時候,同一個排程的上一次還在跑 那一次觸發被跳過並記錄下來,不會疊在第一個上面
Clawdline 沒有開著 什麼都不會觸發

補跑窗口每個排程各自設定,從完全不補到一整個星期,不改是六小時。第三列最值得買:一件偶爾跑很久的雜務,不會安靜地變成兩個自己。

最後一列是那條誠實的界線:它不是 launch daemon,不會叫醒一台關機的 Mac。這一局 cron 完勝。

需要判斷的那些,合成一批共用一個 session

三件雜務掛三個排程,就付三次啟動成本。一個 session 把三件都做完,只付一次,而在上面那筆量測裡,啟動成本幾乎就是整張帳單。

便宜的做法只需要文字編輯器:一個排程、一個時間,指示裡把幾件雜務分開列,讓回報能逐件交代。完整一點的做法是讓一個 session 在工作之間開著。每件雜務當成獨立任務送進去:各自有 id、宣告寫入路徑、逾時與結果檔。這樣一件失敗不會把其他幾件帶走。

真正能修掉天氣推播那筆帳的,是「跑一個純指令、只有在指令失敗時才開 session」的排程。Clawdline 還沒有。在它做出來之前,那類雜務就掛到 cron 上。

建立它的那一天,就寫下「要發生什麼事我才會關掉它」

排程是「決定一次、永遠執行」的東西,最容易活得比自己的理由還久。它不會回頭問你還要不要,只會準時、正確地在九點抵達。

所以給每個排程一個欄位,寫下「要發生什麼事,才值得重新考慮它」。一筆項目在那件事從未發生的情況下擺了多久,是最好的刪除訊號。你在建立它的當下答不出來,就沒有自動化任何東西,只是把習慣搬到以後不會再注意的地方。

每一件雜務,都掛在做得動它的最便宜的那個東西上。只會執行的交給 cron;必須看過現場才知道要做什麼的,用 Clawdline 的排程,合成一批共用一個 session。

第一次遇到這個 App 的話,它到底是什麼是比較好的起點;工作流程指南依序講了 project 列、派工、排程與交付。

常見問題

Claude Code 的定時任務,哪些值得開?
那一次執行必須做出判斷的,才值得。只會重複跑同一批指令的雜務,掛在 cron 或 launchd 上就好——成本幾乎是零,而且不管有沒有 App 開著都會跑;助理 session 值得付錢的地方,是那種必須先看過現場、才知道要做什麼的工作。挑定時器之前,先分辨你的雜務是哪一種,而分辨的方法只要一分鐘:算一次執行裡面,真正是你想要的那一段佔多少比例。如果答案是百分之幾,你不是在自動化一件雜務,你是每天早上買一個 session,然後只用它的一個角落。會把這個測試寫下來,是因為我們自己算過:我們其中一台機器上的每日天氣推播,只抓一份 JSON、送一則通知,一次執行大約要花 70 萬個 token,而且是在不到一分鐘的實際時間裡花完的——那個碼表就是「裡面幾乎沒有工作」的證據。
Claude Code 可以用 cron 排程嗎?
什麼都可以掛上定時器,問題是定時器啟動的是什麼,因為錢是花在那裡:cron 觸發不用錢,一個完整的助理 session 要。如果那件雜務只是「執行」,一支掛在 cron 上的 shell script 就是對的答案,而且它已經對了四十年。如果它必須做判斷,Clawdline 的排程是一份任務範本,在本地時鐘的某個時間變成一次普通的派工:跟由 session 派出的工作走同一套寫入範圍、容量、派工深度、權限與信任檢查,事後也留下同一種任務紀錄。有兩個邊界值得先知道。錯過的執行只會在你設定的補跑窗口內補跑,不改的話是六小時;還有,本機常駐服務沒有執行時,什麼都不會觸發。這件事寫在文件裡,不是 bug,而且屬於「先讀到比較好、星期一自己撞到比較痛」的那一類。
排程跟 loop 有什麼不一樣?
機制上,差在「下一次什麼時候跑」是誰決定的;成本上沒有差,而這正是重點。讓兩者都顯得便宜的直覺是從軟體借來的:一支程式跑第二次幾乎免費,因為貴的部分早就付過了。Agent 的工作把它反過來——貴的是讀,而讀在每一輪都會再發生一次。所以算式不是「一件小事重複做」,而是「一整個 session 的固定成本重複付,裡面裝著一件小事」。它還會自己越變越貴:你加的每一份指示檔、每一個 skill 都是常駐脈絡,對真正的工作確實有用,然後全額計入那個只抓一份 JSON 的雜務。三件雜務掛三個排程,就付三次啟動成本;一個 session 把三件都做完,只付一次——那是所有做法裡,把數字拉下來最多的一個。