Claude Code /loop 實戰:讓 AI Agent 自己跑到完
你不需要別人的模板庫。理解 /loop 的兩種模式,搭配 hook 和 loop.md,讓 AI Agent 在你泡咖啡的時候自己跑完整個工作流。
上週有人丟了一個連結給我:Loops!,一個專門收集 AI coding agent 預建工作流模板的平台。上面有「Ship PR Until Green」「CI Failure Watcher」之類的模板,宣稱 copy-paste 就能讓 agent 自動跑到完。
我點進去看了 10 分鐘就關掉了。不是因為做得不好 — 概念完全正確 — 而是因為我已經在 Claude Code 裡用 /loop 做了一模一樣的事,而且做得更深。
這篇不是教學文。我不會花篇幅解釋什麼是 loop。我要直接展示我怎麼用 /loop 搭配 20 多個自建 hook,讓 Claude Code 在我去泡咖啡的時候自己跑完整個工作流。結論先說:你不需要別人的模板庫,你需要的是理解 /loop 的兩種模式,然後根據自己的工作流組裝。
/loop 到底有幾種跑法?
大多數人只知道 /loop 5m /some-command 這種用法。但 Claude Code 的 /loop 其實有兩種完全不同的運作模式,適用場景天差地遠:
模式一:定時 Cron(固定間隔)
/loop 5m 檢查 CI 狀態,如果失敗就查 log 找原因
這是最直覺的用法。每 5 分鐘觸發一次,無論上一輪做了什麼。適合「輪詢」類任務 — 等 CI、等部署、等外部 API 回應。系統會自動加 ±10% 的 jitter(最多 15 分鐘),避免所有定時任務同時觸發。
模式二:Self-Pacing(動態間隔)
/loop 根據部署狀態決定下一次檢查時間
省略間隔參數,讓 agent 自己決定什麼時候再跑。agent 每一輪結束時呼叫 ScheduleWakeup,根據當前狀態選擇延遲 60 秒到 3600 秒。如果 agent 不呼叫 ScheduleWakeup,loop 就自動結束。
這個模式才是真正的殺手鐧。因為 agent 有上下文 — 它知道 CI 通常跑 8 分鐘,所以第一輪等 270 秒而不是傻傻每 60 秒 poll 一次燒 token。Claude Code 官方文件建議:延遲 270 秒以內可以命中 prompt cache(5 分鐘 TTL),超過就要付 cache miss 的代價。
| 定時 Cron | Self-Pacing | |
|---|---|---|
| 間隔 | 固定(你指定) | 動態(agent 決定) |
| 適用場景 | 輪詢、監控、定期巡檢 | 部署驗證、CI 等待、收斂型任務 |
| Token 效率 | 中(可能空轉) | 高(按需觸發) |
| 結束條件 | 手動取消或到期 | agent 不 reschedule 就結束 |
實戰案例一:部署後自動驗證到通過為止
這是我最常用的 loop 場景。部署一個服務到 VPS 後,需要確認 health endpoint 回 200、SSL 正常、response time 合理。
/loop 部署剛完成。每次檢查以下項目:
1. curl https://trac.chiba.tw/api/health 確認 200
2. curl -I 確認 SSL 憑證沒過期
3. 如果全部通過,報告結果然後結束 loop
4. 如果有失敗,查 docker logs 最後 50 行找原因,嘗試修復,然後繼續
agent 第一輪會立刻檢查。如果服務還沒起來(常見,Docker 重啟通常要 10-30 秒),它會等 60 秒再試。如果 health check 過了但 SSL 有問題,它會直接去查 Nginx config 和 certbot 狀態。全部通過就自動結束 — 我不需要一直盯著。
關鍵:這不是「模板」能做到的事。 因為修復邏輯完全取決於你的基礎設施 — 我的服務跑在 Docker 裡、用 Nginx reverse proxy、SSL 靠 certbot。模板不知道這些,但我的 prompt 知道。
實戰案例二:CI 紅燈自動查因 + 修復
開了 PR 之後,最煩的就是等 CI。尤其是跑完才發現 lint 沒過、型別錯誤、測試 flaky。
/loop 270s 我剛推了 PR #42。
1. 用 gh pr checks 42 查 CI 狀態
2. 如果還在跑,等下一輪
3. 如果全綠,留言 "CI passed ✅" 然後結束
4. 如果紅燈,抓失敗的 job log,分析原因
5. 如果是 lint/type error,直接修 → commit → push
6. 如果是 flaky test,標記為 flaky 並留言,結束
270 秒的間隔是刻意的:它正好在 prompt cache 的 5 分鐘 TTL 以內,每次 wake up 都命中 cache,token 成本低。CI 跑 8 分鐘的話,只需要 3 輪就知道結果 — 而不是每 60 秒 poll 一次燒 8 輪的 token。
實戰案例三:跨機器巡檢
我有 2 台 Mac mini、1 台 DGX Spark、1 台 NAS、6 台 VPS。每台的健康指標不同 — Mac mini 看 Docker container 狀態、DGX 看 GPU 記憶體和 Ollama 模型、VPS 看磁碟空間和 SSL 到期日。
/loop 30m 巡檢我的基礎設施:
1. ssh mini-ts "docker ps --format 'table {{.Names}}\t{{.Status}}'"
2. ssh dgx-ts "ollama list && free -h"
3. ssh nas-ts "df -h /volume1"
4. 對每台 VPS 跑 curl health check
5. 整理成一份狀態報告
6. 如果有異常,推 Telegram 通知我
7. 跑 3 輪後結束
30 分鐘間隔,跑 3 輪 = 觀察 1.5 小時。這不是「監控系統」的替代品(我有 Uptime Kuma 做 24/7 監控),而是在做完一輪基礎設施變更後,用 loop 持續觀察確認沒有延遲爆發的問題。
為什麼自建 Loop 比套模板強?
Loops! 平台上的模板有一個根本問題:它假設所有人的工作流都一樣。但事實是:
1. 你的防護網不一樣
我的 Claude Code 裝了 20 多個 hook。其中包括:
- danger-guard:攔截
git push --force、rm -rf、DROP TABLE等破壞性指令 - secrets-guard:偵測到讀
.env或 echo API key 時發警告 - git-add-guard:強制禁止
git add .,必須逐檔 stage - rtk-rewrite:所有 CLI 指令自動走 RTK 壓縮 token,節省 60-90% 的 token 開支
這些 hook 在 loop 執行時同樣生效。所以就算 agent 在自動修復 CI 失敗時手滑想 force push — hook 會擋下來。模板沒有這層保護。
2. 你的記憶層不一樣
我用 memhall 做跨 session 記憶。loop 結束後的結論會被寫進記憶層,下次開 session 時 agent 能搜到「上次部署那個 SSL 問題是因為 certbot 的 cron 沒跑」。模板是無狀態的 — 跑完就忘了。
3. 你的基礎設施不一樣
你的 Docker 可能跑在 Kubernetes 上,我的跑在裸機 Mac mini 上。你的 CI 可能是 GitHub Actions,我的是 GitLab 手動部署。模板能覆蓋最大公約數,但真正省時間的是針對你自己的環境客製的 loop。
5 分鐘上手:你的第一個 Loop
如果你從來沒用過 /loop,從這裡開始:
/loop 5m git status 然後告訴我有沒有忘記 commit 的檔案
這個 loop 每 5 分鐘提醒你一次有沒有未 commit 的變更。簡單到不行,但它解決了一個真實的痛點:長時間 coding session 裡忘記存檔。
想進階?試試 self-pacing 模式:
/loop 跑 ruff check . 看有沒有 Python lint 問題。
有問題就修,修完再跑一次確認。
全部通過就結束。
agent 會自己決定要等多久再跑下一輪 — 如果問題很多,它會密集修復;修得差不多了,間隔會拉長;全部通過就自動停。
loop.md:讓你的 Loop 有記憶
進階用法:在專案根目錄放一個 .claude/loop.md,寫下 loop 的標準作業流程(官方文件有完整說明)。之後只要打 /loop(不帶任何參數),agent 就會自動讀取這個檔案作為指令。
<!-- .claude/loop.md -->
# 開發中巡檢
每一輪執行:
1. git diff --stat 確認改了什麼
2. 跑相關的 test(根據改動的檔案判斷)
3. ruff check 確認 lint
4. 如果有問題,修復後繼續
5. 全部通過,輸出摘要然後結束
這比每次手打 prompt 省事,而且確保團隊裡每個人跑 loop 時的行為一致。這才是 Loops! 那種模板庫的正確實現方式 — 不是放在別人的網站上,而是放在你的 repo 裡。
什麼時候不該用 Loop?
Loop 不是萬能的。以下場景我會避免:
- 需要人工判斷的決策:「這個 PR 要不要 merge」不適合 loop 自動決定
- 涉及付費 API 的高頻操作:每 60 秒呼叫一次外部 API = 帳單爆炸
- 跨時區的長時間等待:等客戶回信不適合 loop(用
/schedule排 Routine 更合適,它跑在 Anthropic 的雲端,電腦關機也會執行) - Production 的破壞性操作:永遠不要讓 loop 自動執行
DROP TABLE或rm -rf,就算你覺得 hook 會擋
結語:工具在手,不需要別人的模板
Loops! 的價值在於推廣了「AI agent 閉環工作流」這個概念。但如果你已經在用 Claude Code,你其實已經有了比模板更強大的基礎設施:
/loop提供定時和 self-pacing 兩種執行模式- Hook 系統 提供防護網,讓 loop 裡的 agent 不會失控
loop.md讓你把常用 loop 標準化,放在 repo 裡版控- memhall / 記憶層 讓 loop 的成果能跨 session 保留
花 5 分鐘跑你的第一個 /loop 5m git status。等你體驗過 agent 自己跑到完的感覺,你就不會再想去別人的網站 copy-paste 模板了。