文章

跑歪的 Claude Code 任務會燒掉多少?Clawdline 讓你在第三分鐘就喊停

一個跑歪的任務,畫面上跟一個順利的任務長得一模一樣。Clawdline 要求每個派出去的任務在動工前先講一句它要做什麼——那就是把「要不要喊停」從第二十六分鐘搬到第三分鐘的東西。

把一件事交給另一個 agent session,感覺上是免費的。你寫一段話,跳出一個新的終端機分頁,然後回頭做自己的事。真正要付的,是它做錯了、而還沒有人知道的那一段時間。

來自我們自己機器上的派工紀錄——一台機器、一個人的使用習慣,不是產業統計。那份紀錄裡最貴的兩個被取消的任務,各自燒掉 1850 萬與 1650 萬個 token,而沒有人講得出它們打算做什麼。

本來可以在第三分鐘就結束掉它們的,是一個問題。不管你有沒有裝我們的東西,今天就可以開始問。

一個跑歪的任務,看起來跟一個順利的任務一模一樣

兩邊都是一個有字在往下捲的分頁。一個真的懂了工作的 session,和一個決定去重寫你測試 fixture 的 session,外表沒有任何差別。

所以你只能用讀的。往回捲,捲到足夠把它「決定要做什麼」重建出來,一個分頁幾分鐘;工作往前走了還得再讀一次。等你把五個分頁裡的第三個讀完,第一個已經跑了半小時。

讀輸出是有效的。它只是用最貴的方式,去知道一件那個 session 本來一句話就能告訴你的事。每多開一個分頁就更貴一點。

該修的不是取消鍵,是那個問題問得太晚

取消本來就很容易,難的是「決定要取消」,那會花掉你半小時。最便宜的資訊,是那個 session 在動工之前講的一句話:它現在理解的工作是什麼。

「動工之前」才是它值錢的原因。做到一半的進度回報講的是工作走到哪裡。動工前的一句話講的是它要走去哪裡,而那時候停下來的成本只有一個分頁。

必須停下來組織一份狀態報告的 session,就不會回報了。你要報告,收到沉默;你要一行,收到一行。

第三分鐘

你手上有:一句話,十五個字,它自己說它決定要做什麼
停下來要付:一個分頁

第二十六分鐘

你手上有:八百行輸出,而且要往回捲到能重建它的決定為止
停下來要付:那半小時,以及它已經改過的東西
兩邊看到的是同一個決定,差別只在它什麼時候到你眼前。跑歪的任務和順利的任務,畫面上都是一個有字在往下捲的分頁——所以真正在花錢的不是平行,是那一段「它已經錯了、而還沒有人知道」的時間。

Clawdline 派出去的每一個任務,動工前都被問了這一句

Clawdline 派工的時候,那份任務說明是 App 自己寫的,說明裡就會要求它在開始後大約三分鐘內講那句話。你不需要記得要問。一句話,最多 300 個字元;只保留最新的五句;同一句再送一次會被忽略,而不是拒絕。

那句話會落在這個任務自己的紀錄上,而讀它的不只是把任務派出去的那個人。派它出去的 session 在那裡讀到它。同一個 repository 裡另一個 session,在動手前確認「我要做的這件事是不是已經有人在做」時也會看到。那份清單裡也有那些已經做完、卻留在沒人合併的分支上的交付。在共用的工作目錄裡,git status 永遠看不到那種東西。答案剛好是你在等的時候,任務也可以直接推一則通知給你,最多五次。

一句錯的話,最壞也只賠上一個 session。Clawdline 派出去的任務不能再派自己的任務。在第三分鐘抓到的錯誤計畫,是一個分頁要停,而不是一件事變成五件、五件變成二十五件。

這條路我們自己先做錯過一次。有一段時間,每個被派出去的任務都用同一種方式回報:對本機發一個請求,把那句話送回 App。我們自己的紀錄裡,133 個跑在沙箱助理底下的任務,一句都沒有到。它們的沙箱根本沒有網路:請求會在幾乎零時間內失敗,而且對那個 session 來說一點都不像出錯。同一段期間,跑在另一個助理底下的任務,40 個裡有 26 個送出來了。所以現在的任務說明會依助理分開寫,沒有網路的 session 改成把那句話寫進自己任務目錄裡的一個檔案。如果你要求一個 agent 回報而回報沒有來,先確認它在物理上到底報不報得出來。

停下來這件事你在手機上就能做,開始不行

讀那份任務清單是「讀」,配對過的裝置可以讀。停掉一個任務是「寫」。從裝置來的寫入還要過一個開關:設定裡「遠端」那一頁的「讓配對過的裝置寫進 session」,不打開就是關的。往一個 session 寫字,等於在你的 Mac 上執行程式。至於派任務,根本不在那份清單上:把工作派出去需要本機的憑證,在 Mac 上。

這個不對稱正是「第三分鐘做決定」真的用得上的原因:一支被撿走的手機可以停掉你的工作,開不了新的。真的停掉的時候,那個 session 會被請求用自己的話收尾,然後分頁關掉。

它做不到的事

那句話是那個 session 相信的事,不是承諾。一個很有自信但走錯方向的計畫,讀起來跟對的計畫一樣通順。變的只有你什麼時候讀到它。

這裡沒有任何自動判斷,那是設計上的選擇。那句話不會被評分、不會被拿去跟任務比對、也不會被用來停掉任何東西。App 不會替你取消。

我們自己最後一次數到的比例是 40 個裡有 26 個,送得出來的 session 裡有三分之一沒有送。那次計數在檔案這條備援路徑出現之前,之後沒有再量過,請把它當成下限。

還有,計畫不等於結果。知道一個 session 打算做什麼,沒有回答它交出來的東西有沒有被審查、有沒有落地、還是躺在某個分支上。那是三個不同的詞,各自有各自的憑據。

就算你不用 Clawdline,明天也可以做的版本

把這個要求放進 agent 真的會讀的地方。那是它每次開始都會載入的那份指示檔,不是你打過一次、之後不會再打的那段 prompt。要一句話,動工之前:它現在理解的工作是什麼。再給它一條從它跑的地方走得出來的路——在自己工作目錄裡寫的檔案,在沒有網路的沙箱裡照樣走得通。

接下來是沒有工具可以替你做的那一段。在你把任務派出去之前,先決定什麼樣的回答會讓你喊停。

工作流程指南依序講了 project 列、派工、排程與交付。還在決定這一套要不要進到自己的工作環境?下一篇會把這個形狀拿去跟同類的其他工具比一比。

常見問題

怎麼知道一個 AI coding agent 已經跑歪了?
看是看不出來的。一個真的懂了工作的 session,和一個很有道理地決定去重寫你測試 fixture 的 session,畫面上都是一個有字在往下捲的分頁,輸出本身不會標記自己是哪一種。唯一讀得出答案的方法,是讀夠多輸出、把它「決定要做什麼」重建出來——一個分頁要花好幾分鐘,而且工作往前走之後還得再讀一次。比較便宜的做法是讓它自己講:動工之前,用一句話說它現在理解的工作是什麼。同樣的資訊,在第三分鐘是十五個字,在第二十六分鐘是八百行。
Claude Code 或 Codex 的任務跑歪了,要怎麼取消?
動作本身不是難的地方。在 Clawdline 裡停掉一個任務,是請那個助理用自己的話收尾、然後關掉分頁;而且這是配對過的手機或筆電少數可以做的事之一,只要你在設定的「遠端」那一頁打開「讓配對過的裝置寫進 session」。難的是「決定要不要停」,因為在你讀夠輸出之前,跑歪的任務跟順利的任務看起來一模一樣。所以該改的不是取消鍵,而是把問題問得更早:Clawdline 派出去的每一個任務,都會在 App 幫它寫的任務說明裡被要求——開始之後大約三分鐘內,動工之前,先講一句話。你要停的判斷,就是根據那一句。
同時開好幾個 agent session,要怎麼掌握它們在做什麼?
靠它們主動說自己決定了什麼,而不是靠你去讀它們打了什麼。Clawdline 派出去的每一個任務,都是一個真正的助理 session,在自己的終端機分頁裡,有自己的 task id、自己的逾時時間和自己的結果檔;而任務說明會要求它在動工前先講一句自己的計畫。那句話最多 300 個字元、只保留最新的五句,會落在這個任務的紀錄上:派它出去的那個 session 讀得到,同一個 repository 裡另一個 session 在確認「我要做的這件事是不是已經有人在做」的時候也看得到。整段流程沒有任何自動判斷:沒有東西會去評分那個計畫,也沒有東西會替你按下取消。