第 1 步:裝上心跳,讓它自己啟動
心跳有四種,從「停在這次會話裡」到「完全沒你也跑」。按需要選:
四種心跳類型
① 會話內循環(盯著看,關掉會話就停)
適合盯一個長任務直到完成。你看著它跑,隨時可以喊停。
適用場景: 一次性的大型重構、探索性的程式碼審查、你想全程監控進度的任務。
特點: 最安全,最容易中途介入,但你必須在線。
② 跑到達標為止
讓循環自己判斷何時停止。/goal 好用的地方在這裡:每回合結束後,一個單獨的小模型讀一遍記錄,判斷「達標沒有」。寫程式碼的那個 agent 不給自己判分。要封頂就寫進條件裡,比如「跑滿 20 回合就停」。
適用場景: 目標明確但步驟未知的任務,例如:修到測試全過、重構到程式碼風格檢查無錯誤。
關鍵設計: 執行的 agent 和判斷「達標了沒」的 agent 要分開,避免自我評分偏差。
③ 無人值守定時
你睡覺它也跑。想要筆電關著也跑,就用雲端 routine 或 GitHub Actions 的 schedule 觸發。
適用場景: 每日報告生成、定期程式碼品質掃描、排程備份與同步。
工具選項: Claude Code routine、GitHub Actions schedule、cron + cloud function。
④ 事件驅動
PR 打開、CI 掛了、訊息到了就觸發。比如一個 PR review 的 GitHub Action。
適用場景: CI/CD 整合、程式碼審查自動化、告警回應。
特點: 最即時,反應速度快,但需要事件來源的 webhook 或輪詢設定。
給循環裝兩個煞車
給循環兩個煞車:一個成功條件,一個上限。
成功條件說明這事什麼時候算完成;上限說明最多跑幾次、幾分鐘、多少錢。少了上限,預算會被一個達不到的目標慢慢燒掉。
| 煞車類型 | 範例 |
|---|---|
| 成功條件 | npm test 全過且無 lint 錯誤 |
| 回合上限 | 最多 20 回合 |
| 時間上限 | 最多執行 30 分鐘 |
| 費用上限 | 最多花 $2 USD |
選哪種心跳?
| 你的需求 | 建議心跳 |
|---|---|
| 想全程盯著,隨時喊停 | ① 會話內循環 |
| 目標明確,讓它自己跑完 | ② 跑到達標為止 |
| 定期執行,不需要人在線 | ③ 無人值守定時 |
| 有事才跑,事件觸發 | ④ 事件驅動 |
AI 協作:學了這個,跟 AI 怎麼配合?
選好心跳類型之後,你可以讓 AI 幫你寫觸發設定。但要先回答一個問題:「這個 loop 如果失控了,最壞的結果是什麼?」—— 這個問題的答案決定你要選哪種心跳、要設多嚴格的上限。
你的人類優勢:
- 你知道這個任務「失控」的風險有多高,能做出有意義的上限設定
- 你能判斷什麼時候需要人在線監控,什麼時候可以完全交給雲端
可以這樣跟 AI 說:
我想設計一個每天早上 9 點自動跑的 loop:掃描昨天的 GitHub PR,把還沒 review 的 PR 整理成一份摘要,發到 Slack 的 #code-review 頻道。幫我選擇適合的心跳類型,並寫出觸發設定、成功條件和上限。
挑戰任務
回到你在 Lesson 2 選出的那件「最適合做成 loop」的任務。它應該用哪種心跳?說明你的選擇理由,並設計它的兩個煞車:成功條件和上限(可以有多個上限,例如同時設回合上限和費用上限)。