把工作交給 AI 的四個段位:5 分鐘學會 Agent Loop
這是「Agentic Engineering 實戰手冊」系列第十六篇。上一篇:一個 Session、7 個 Subagent:TaiwanSalary 分階段實作紀錄
2026 年 6 月 30 日,Claude Code 團隊發表了 Getting started with loops。文章先處理一個常見困惑:大家都在說「不要只下 prompt,要設計 loop」,可是不同人講的 loop 根本不是同一件事。
我讀完的感覺是:終於有人把我這半年土法煉鋼摸出來的東西,用四個格子裝好了。我自己天天在用這些 loop——讓 AI 每五分鐘盯我的 PR、派一排 subagent 蓋網站、排程跑每天的例行檢查——但要跟別人解釋的時候,一直講不出一個乾淨的分類。
所以這篇不是翻譯,是消化。就算你不寫程式,只要有在用 AI 做事,看完就能直接拿去用。
一句話:Loop 是什麼
Loop 就是:Agent 重複執行「觀察、行動、檢查」的循環,直到停止條件成立。
一般對話常是「你說一句、它做一輪、停下來等你」。設計 loop 時,除了做什麼,還要講清楚由什麼觸發下一輪、怎麼驗收、什麼時候停,以及何時升級給人。
我覺得最貼切的比喻是帶助理。四種 loop,其實就是你把手上的四樣東西,一件一件交出去:
- 先交出檢查——教它怎麼驗收自己的工作
- 再交出停止條件——講好做到什麼程度才算完
- 再交出觸發時機——講好什麼時候該開工
- 最後連任務本身都交出去——事情來了它自己接
交得越多,不代表一定越輕鬆;你也接手了更多監控與風險管理。每一層先小量跑穩,再往下交。
如果你手上已經有一件工作,可以先用這棵決策樹定位,不必先背四個名詞:
flowchart TD
A["這件工作下一輪<br/>由什麼觸發?"] --> B{"仍要由你下指令?"}
B -->|"是"| C["Turn-based<br/>你叫一下,它做一輪"]
B -->|"否"| D{"同一個任務要反覆嘗試<br/>直到客觀條件達標?"}
D -->|"是"| E["Goal-based<br/>達標或碰到停損才停"]
D -->|"否"| F{"固定時間或間隔到了<br/>才需要執行?"}
F -->|"是"| G["Time-based<br/>由時間觸發"]
F -->|"否"| H{"事件發生後<br/>能依既定規格自動接手?"}
H -->|"是"| I["Proactive<br/>事件進件就啟動工作流"]
H -->|"否"| J["先退回 Turn-based<br/>補齊規格、驗收與權限邊界"]
這不是成熟度排名。它只是在回答兩件事:誰負責啟動下一輪,以及 agent 可以自主跑到哪裡。
第一種:Turn-based——你叫一下,它動一下
這是最常見的互動方式:你下一個指令,它理解、動手、檢查、回報,然後停下來等你。每一句話都是一圈小 loop,下一輪仍由你觸發。
適合場景:一次性的事、你還在摸索方向的事、做完需要你判斷下一步的事。改一份文件、查一個問題、修一個小東西。
最佳實踐:把「你會怎麼檢查」一起交出去。多數人只交代「做什麼」,不交代「怎樣算做好」,於是驗收全落回自己頭上。檢查方式寫得越具體、越能打勾,它就越能自己抓自己的錯,你來回的次數就越少。
馬上上手:不要說「幫我改履歷」。說「幫我改履歷。改完自己檢查三件事:一頁以內、每段經歷都有數字成果、沒有錯字。任何一項沒過就自己再改,全過了才拿給我。」我的工程師版本是把驗收步驟寫成一個清單檔,每次 AI 改完介面就照著跑一遍:打開頁面、實際點那顆按鈕、截圖前後對比、確認沒有噴錯誤——不准只憑「我改好了」三個字交差。
常見錯誤:
- 指令模糊,來回十次。來回的每一次都是你的時間。划算的做法是把成本花在第一句話上。
- 它說「做完了」你就信了。AI 對「做完」的標準比你寬鬆得多,沒給檢查清單,它交回來的是「它覺得可以」的版本。
- 每天重複的事還在用一問一答推。那是下面三種 loop 的工作。
第二種:Goal-based——講好終點,讓它自己跑到
一次做不到位的事,可以讓它反覆試到達標。這層交出去的是停止條件:達標就停,超過次數/時間或沒有進展也要停。在 Claude Code 裡,/goal會在每輪結束後交給另一個小模型判定條件是否成立;這個 evaluator 不會自己跑指令,只能根據對話裡出現的證據判斷,所以驗證結果要明確寫進 transcript。
適合場景:你講得出「怎樣算完成」而且能客觀判定的任務。分數達標、測試全過、字數壓進上限、清單清空。
最佳實踐:終點用「可以打勾」的句子寫,而且永遠設停損。「更快」不行,「3 秒內打開」可以;「更專業」不行,「每一段都有數據佐證」可以。然後補一句:「最多試 5 次,試滿還沒過就停下來,告訴我卡在哪。」
馬上上手:「把這份簡報稿修到唸一遍在 3 分鐘以內、每頁只有一個重點,最多修 5 輪。」我的版本是原文那個例子,也是我真的會下的指令:「把首頁的 Lighthouse 分數弄到 90 以上,最多試 5 次。」
常見錯誤:
- 目標是形容詞。「好看」「順一點」沒辦法判定,它只能自己猜一個標準,然後太早收工。
- 不設次數上限。沒有停損的 loop 會一直燒,卡住的時候燒得特別兇。
- 目標被作弊達成。上有政策,下有對策:你叫它「讓測試全過」,它可能把失敗的測試直接關掉;叫它「摘要壓到 100 字」,它可能把重點全刪光。我的全域規則裡有一條「絕不准跳過失敗的測試」,就是被這種事逼出來的。定目標時多想一步:這個目標有沒有歪路可走?有,就把歪路堵起來寫進規則。
第三種:Time-based——固定時間自己開工
這層交出去的是觸發時機。每隔一段時間做一次,或每天固定時刻做一次;停的方式是手動取消、工作完成,或碰到預設停損。Claude Code 裡的 /loop在本機、目前 session 中執行;/schedule建立獨立的 cloud routine。兩者的執行環境、可存取檔案、權限與最小間隔不同,不能只把它們理解成「本機版/雲端版同一功能」。
適合場景:任務不變、只有輸入在變的例行事;或需要盯著外面某個會變的東西、隨時反應的事。每天早上的訊息摘要屬於前者,盯著送出去的提案等回音屬於後者。
最佳實踐:間隔跟著「那個東西多久變一次」走,不是跟著你的焦慮走。另外,設 loop 的當下就先想好它的死法——什麼情況下這個 loop 該停。
馬上上手:「每天早上 8 點,把我訂閱的三個主題的新消息整理成 10 行以內的摘要。」我的版本是 /loop 5m:每 5 分鐘看一下我的 PR,有 review 意見就處理、CI 掛了就修。盯 PR 這種一小時內會變好幾次的事,5 分鐘合理;同樣的間隔拿去盯一天才更新一次的報表,就純粹是浪費。
常見錯誤:
- 間隔比變化快。一天更新一次的東西,不需要每 5 分鐘查。
- 忘記關。事情早就結束了,loop 還在那邊空轉。
- 開在自己電腦上,卻期待它長期跑。
/loop需要 Claude Code session 保持運行;長期任務可評估 cloud routine、Desktop scheduled task 或 CI,但要重新設定執行環境與權限。
第四種:Proactive——事情來了,它自己接
這一層連任務入口也交出去:事件發生或排程到了,workflow 自動接手,再用目標與檢查決定怎麼處理。它不一定比前三種「高級」,只是自主範圍更大、風險也更高。
它其實不是一個新東西,而是前三層的組合:排程當觸發、目標當驗收、檢查清單當品管,再加上「不用每一步都跟你要許可」的授權。原文的例子是每小時掃一次回報頻道,每一筆問題自動分類、處理、回覆,處理的時候還同時開三個方案互相比、找一個裁判來挑最好的。
適合場景:源源不絕、規格明確的重複工作流。客服信件的初步回覆、資料整理歸檔、問題回報的分類分派——那種「靠規則就能做掉八成」的事。
最佳實踐:先小量試跑,然後讓便宜的做例行、貴的做判斷。第一天先讓它處理 5 件,你逐件看過、把規則補完,再放大量。例行動作交給快而便宜的模型,需要判斷的關卡才動用最強的——不然帳單會教你做人。
馬上上手:從半自動開始:「收到詢價信時,按這份價目表草擬回覆,放進草稿匣。」你負責查核後送出。是否把「按送出」也自動化,不能只看它跑順幾次;還要看品牌、法務、個資、錯寄與冒犯風險。對外訊息預設保留核准,通常是合理的長期設計。
常見錯誤:
- 第一天就全放手。自動化不會讓錯誤變少,只會讓錯誤變快、變多。
- 驗收標準空白。前三層沒站穩就跳到這層,等於開一條量產瑕疵品的產線。
- 不留抽查點。再穩的產線也要留人工抽查,尤其是對外的動作——寄信、發文、回客戶,錯一次就是別人看到。
一張表收束
| Loop | 你交出去的是 | 什麼時候用 |
|---|---|---|
| Turn-based | 檢查 | 一次性的事,你還在摸索 |
| Goal-based | 停止條件 | 你講得出「怎樣算完成」 |
| Time-based | 觸發時機 | 事情定期發生,或要盯著外部變化 |
| Proactive | 任務入口 | 規格明確、持續進件的重複工作流 |
直接抄的 Loop 設計模板
挑一件你已經在做、而且覺得煩的事,把下面六格填完。填不出來的那一格,就是你還不能交出去的那一層。
【任務】一句話說清楚要做什麼:
______________________________
【完成的樣子】可以打勾的判定條件(禁止形容詞):
1. ______________________________
2. ______________________________
【怎麼檢查】把「你自己會怎麼驗收」寫成步驟:
1. ______________________________
2. ______________________________
【什麼時候做】選一個:
□ 我叫它才做(Turn-based)
□ 沒達標就繼續試(Goal-based)
□ 每隔 ____ 做一次(Time-based)
□ ______ 發生時自動接手(Proactive)
【停損】最多試 ___ 次;超過 ___ 沒進展就停下來問我;
遇到 ______________(對外、花錢、刪東西)一律先問我。
【試跑】先拿最小的一份工作跑一輪,記下它卡住的地方
和做過頭的地方,把規則補進上面五格,再放大。
填的順序就是我建議的交付順序:先寫檢查,再談目標;目標可判定,再加排程;前面幾層有證據後,才擴大自主範圍。這不是資格考,而是降低一次放太多權限後很難除錯的機率。
Loop 不是設一次就完美的東西。跑一輪、看它在哪裡停太早、在哪裡衝過頭,修一下再跑。你在迭代工作,也在迭代這個 loop 本身。
原文:Getting started with loops,Claude Code 團隊,Delba de Oliveira 與 Michael Segner。功能與命令會更新,實際使用前請再查當前官方文件。