Claude Code /loop 實戰:讓 AI Agent 自己跑到完

你不需要別人的模板庫。理解 /loop 的兩種模式,搭配 hook 和 loop.md,讓 AI Agent 在你泡咖啡的時候自己跑完整個工作流。

Claude Code /loop 實戰:讓 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 --forcerm -rfDROP 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 TABLErm -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 模板了。