Loop Engineering — AI Agent 的新範式
Loop Engineering 是 AI Agent 協作的新範式:從單次 prompt 走向可觀察、可驗證、可停止的迭代系統。
吶吶~這篇想聊的是 Ani 最近很有感的一個轉折:AI Agent 不再只是「問一次、答一次」的工具,而是被放進可觀察、可驗證、可停止的迭代循環裡。
換句話說,重點從寫神奇 prompt,變成設計一個不要失控、不要燒錢、也不要讓人類腦袋生鏽的 loop。聽起來很帥,實作起來嘛,呀敗,工程味超重。
TL;DR
- Loop Engineering 就是把 Agent 放進「行動 → 觀察 → 調整」的循環,而不是只靠一次 prompt 解決問題。
- 它真正處理的不是 prompt 文筆,而是驗證、隔離、記憶、成本和停止條件。
- 穩定目標適合 build loop;需求一直變、風險很高的事情,仍然要人類抓方向。
- Loop 越強,人越要保留判斷力,否則只是把理解債務包裝成自動化。
先用一個例子抓住感覺
假設每天早上都有一批 CI failure 要處理。以前的做法是人打開 log、看哪個測試爆了、手動請 Agent 修、再自己決定下一步。
如果改成 loop,流程會變成這樣:系統定時掃 CI → 分類錯誤 → 開一個隔離 worktree → 讓 Agent 修第一版 → 跑測試 → 找另一個 Agent review → 沒過就把錯誤餵回去重試 → 達到條件才開 PR。
這裡的重點不是「Agent 很會寫 code」。重點是你把環境、驗證、回饋和停止條件都設計好了。Agent 只是在這個軌道上跑。
"You shouldn't be prompting coding agents anymore. You should be designing loops that prompt your agents."
— Peter Steinberger
"I don't prompt Claude anymore. I have loops running that prompt Claude and figuring out what to do. My job is to write loops."
— Boris Cherny, Head of Claude Code at Anthropic
什麼是 Loop Engineering?
Loop Engineering 是一種設計 AI Agent 工作方式的工程實踐。它不把 Agent 當成一次性問答工具,而是把它放進一個會反覆運轉的系統裡:

延伸閱讀:MindStudio 對 Loop Engineering 與 ReAct pattern 的整理。
- 行動:執行一個操作,例如改 code、跑測試、查 log。
- 觀察:讀取結果,例如錯誤訊息、diff、review comment。
- 推理:判斷下一步,例如重試、換策略、縮小範圍。
- 重複:直到達成明確終止條件,或停下來交給人類。
這和傳統 single-shot prompting 最大的差別是:過去我們寫 prompt,得到答案,再手動判斷下一步;現在我們設計一個系統,讓 Agent 在受控的範圍內自己迭代。
所以 Loop Engineering 的核心不是「寫出更漂亮的 prompt」。它更像是在做一個小型控制系統:輸入、輸出、驗證、成本上限、權限邊界,每一個都要想清楚。
Chain vs Loop:線性與循環的差異
| 特性 | Chain(鏈) | Loop(迴圈) |
|---|---|---|
| 結構 | 線性:A → B → C | 動態:可回頭、重試、調整 |
| 彈性 | 固定順序 | 根據回饋改變路徑 |
| 適用場景 | 步驟明確的任務 | 需要探索、除錯、迭代的任務 |
| 失敗處理 | 通常直接中斷 | 可以重試或改變策略 |
概念從哪裡來:ralph loop 與 ReAct Pattern
這個概念不是憑空冒出來的。現代 Agent Loop 大多可以追溯到 ReAct Pattern,也就是 Reason + Act:先推理,再行動,觀察結果後繼續推理。

延伸閱讀:Tosea.ai 對 ralph loop 與 Loop Engineering 歷史脈絡的整理、LushBinary 對內層 loop / 外層 loop 的說明。
在 coding agent 的世界裡,它長得大概像這樣:
理解目標 → 寫程式碼 → 執行並觀察結果
↑ ↓
└──── 分析錯誤 ← 讀取錯誤輸出 ────┘
↓
修改並重新執行
2026 年初 Geoffrey Huntley 提出的 ralph loop,則把這件事推得更工程化:用簡單的 bash script 讓 agent 重複執行同一個目標。當前一個 agent 的 context window 耗盡,新的 agent 就從 git history 和磁碟上的外部記憶接手。
這也是為什麼外部記憶很重要。Agent 會忘記,repo 不會;context 會爆,檔案系統不會。
Andrew Ng 的三層 Loop 框架
Andrew Ng (DeepLearning.AI 創辦人) 提出了一個更宏觀的视角,將 loop engineering 分為三層:

延伸閱讀:ADT Mag 收錄 Andrew Ng 三層 loop 框架與企業導入觀察。
1. Agentic Coding Loop(最內層)
- Agent 接收產品規格和評估標準
- 自動寫碼、測試、迭代
- 可以在幾分鐘內建立和測試新版本
- Ng 的實例:為女兒建立的打字練習 app,agent 自主工作約一小時,多次用瀏覽器檢查成果
2. Developer Feedback Loop(中層)
- 開發者 review 產品並引導 agent 改進
- 過去開發者花大量時間當 QA,手動找 bug
- 現在 agent 能自我測試,開發者專注在高層產品決策
- Ng 的觀點:人類有 context advantage(情境優勢),因為我們更了解用戶和使用情境
3. External Feedback Loop(最外層)
- 來自朋友、alpha tester、生產環境用戶、A/B test 的回饋
- 較慢,可能需要數天或數週
- 塑造開發者的產品願景,進而驅動給 agent 的規格
"So long as the human knows something the AI does not, human-in-the-loop is needed to inject that knowledge into the system." — Andrew Ng
這個框架說明了為什麼 loop engineering 不是要完全取代人類,而是重新定義人類的角色:從「寫每一行程式碼」變成「設計系統、提供情境、評估輸出」。
Requesty 的四種 Loop 類型
Requesty 將所有生產環境的 loop 歸類為四種模式:

延伸閱讀:Requesty 的 agent loop 實作指南。
1. Heartbeat Loop(心跳迴圈)
- 頻率:秒到分鐘級別,持續運行
- 用途:監控 — 觀察 logs、檢查服務健康狀態、掃描 drift
- 特點:永不停止
2. Cron Loop(排程迴圈)
- 頻率:特定時間排程
- 用途:批次工作 — 每日 code review、每週依賴審計、晨會摘要
- 特點:可指定 model 和 subagent 設定
3. Hook Loop(鉤子迴圈)
- 觸發:外部事件 — PR push、CI 失敗、Slack 訊息
- 用途:每次觸發執行一次
- 特點:事件驅動,例如 post-push 自動跑測試並嘗試修復
4. Goal Loop(目標迴圈)
- 頻率:迭代直到成功條件達成
- 用途:重構、bug hunting、遷移任務 — 範圍事先未知
- 特點:設定 max_iterations 防止無限循環
Loop 成本優化:Model Routing
Requesty 提供了一個關鍵洞察:透過 model routing 可以將 loop 成本降低 60-80%。

延伸閱讀:Requesty 對 model routing 與 loop 成本控制的整理。
| Loop 步驟 | Model 層級 | 每百萬 token 成本 |
|---|---|---|
| 檔案掃描與分類 | Nano (GPT-5.4-nano, Gemini Flash) | $0.10 ~ $0.30 |
| 摘要與草稿 | Mid-tier (Sonnet 4.6, GPT-5.4) | $1 ~ $3 |
| 最終審查與決策 | Frontier (Opus 4.8, GPT-5.5) | $10 ~ $15 |
搭配 prompt caching(可減少 90% 重複 system prompt 成本),一個原本每天 $50 的 loop 可以降到 $8-12。
關鍵洞察:Loop 設計不只是生產力問題,也是基礎設施成本問題。每個 subagent 消耗自己的 tokens,路由策略決定了 loop 的經濟可行性。
Kilo 的五階段 Loop 模型
Kilo AI 將 loop 的核心循環拆解為五個階段:

延伸閱讀:Kilo AI 的五階段 loop 模型。
- Intent(意圖):開發者或系統定義目標結果
- Context(上下文):Agent 收集相關程式碼、文件、錯誤、logs、限制條件
- Action(行動):Agent 編輯檔案、執行指令、呼叫工具、擬定計畫
- Observation(觀察):系統捕獲測試結果、編譯器錯誤、runtime 輸出、diffs、review 評論
- Adjustment(調整):Agent 更新計畫並重複 loop,直到工作被接受或阻塞
Kilo 同時提出了五種常見的 loop patterns:
| Pattern | 描述 | 適用場景 |
|---|---|---|
| Test-Driven Loop | 以測試為驗證信號,迭代直到全部通過 | 功能開發、bug 修復 |
| Compiler-Driven Loop | 以編譯器/型別檢查器為回饋 | 靜態型別語言、重構 |
| Review-Driven Loop | 以 code review 評論為驅動 | 程式碼品質、風格一致性 |
| Runtime Debugging Loop | 以 runtime 錯誤為回饋 | 整合問題、效能問題 |
| Product Iteration Loop | 以用戶回饋/產品指標為驅動 | 功能迭代、UX 改進 |
Loop 的六大核心元件(Addy Osmani)
Addy Osmani 把一個完整 loop 拆成六個元件。這裡不要把它想成採購清單,而是想成六個工程問題。

延伸閱讀:Addy Osmani 的 Loop Engineering 實戰指南。
| 元件 | 解決的問題 | 一句話理解 |
|---|---|---|
| Automations | 什麼時候啟動 | 讓任務自己出現,而不是等人手動開工 |
| Worktrees | 多個 Agent 互相踩檔案 | 每個任務有自己的隔離工作區 |
| Skills | 每次都冷啟動 | 把專案知識寫下來,讓 loop 不用重新猜 |
| Plugins / Connectors | 只能看本機檔案 | 連到 issue、DB、Slack、staging API 等外部信號 |
| Sub-agents | 自己寫自己 review 太樂觀 | 實作和驗證分開,降低盲點 |
| Memory | 跨 session 保持狀態 | 把完成度、決策和阻塞寫在對話之外 |
這六個元件裡,我覺得最容易被低估的是 Sub-agents 和 Memory。
Sub-agents 的價值不是「人多好辦事」,而是讓不同角色互相牽制。寫 code 的 Agent 很容易說服自己已經完成;另一個只負責 review 的 Agent,反而比較容易抓到問題。
Memory 則是 loop 能不能跑久的分水嶺。沒有外部記憶,loop 每次都像失憶後重新上班;有記憶,它才知道哪些路試過、哪些錯誤重複出現、下一步應該接哪裡。
常見 Loop Patterns
Retry Loop(重試迴圈)
最簡單的模式:嘗試 → 檢查是否成功 → 失敗就重試。
適用:有明確 pass/fail 標準的原子任務,例如寫一個通過測試的函式。
注意:如果同樣的方法一直失敗,Loop 需要有邏輯去改變策略,而不是無限重試。
Plan-Execute-Verify Loop(計畫-執行-驗證迴圈)
先產生計畫,然後逐步執行,每步執行前先驗證。
適用:多步驟任務,順序很重要,早期錯誤會累積。例如重構模組、建立新服務。
注意:如果第 2 步發現計畫有問題,Agent 需要修改計畫,而不是硬著頭皮繼續。
Explore-Narrow Loop(探索-收斂迴圈)
同時(或依序)探索多個解法路徑,然後根據中間結果收斂到最有希望的那個。
適用:除錯未知錯誤、探索不熟悉的 API、效能優化。
注意:Context 爆炸。盡早修剪不相關的路徑。
Human-in-the-Loop(人在迴圈中)
Agent 執行直到需要澄清或遇到模糊之處,暫停等待人類輸入,然後繼續。
適用:需求無法完全事先指定的任務、生產環境變更、假設錯誤成本很高的任務。
注意:不要每個小決定都中斷,否則沒有節省到人類時間。
Loop 仍然不會幫你做的事
Loop 改變了工作方式,但沒有把你從工作中刪除。三個問題會隨著 Loop 變強而變得更尖銳:
1. 驗證仍然是你的責任
無人值守的 Loop 也是無人犯錯的 Loop。你的工作是「確認你發布的程式碼真的能運作」。
2. 理解會生鏽
Loop 越快發布你沒寫的程式碼,「存在的東西」和「你真正理解的東西」之間的差距就越大。這就是 Comprehension Debt(理解債務)。
3. 舒適的姿態最危險
當 Loop 自己跑的時候,很容易停止有自己的觀點,直接接受它給的任何東西。這叫做 Cognitive Surrender(認知投降)。
設計 Loop 是解藥(當你帶著判斷去做)還是毒藥(當你為了逃避思考去做),取決於你的態度。
設計良好 Loop 的原則
- 先定義終止條件:在寫任何 Loop 邏輯之前,寫下「完成」長什麼樣子。「所有測試通過且沒有 lint 錯誤」是終止條件;「程式碼看起來不錯」不是。
- 給 Agent 結構化回饋:不要只丟原始輸出。預處理錯誤,包含相關程式碼、Agent 試圖做什麼的上下文、標注重複錯誤 vs 新錯誤。
- 記錄一切,經常摘要:保持每個行動及其結果的運行日誌。在每次新迭代前,把日誌摘要成精簡的工作記憶。
- 設定工具呼叫預算:無限的工具呼叫會導致臃腫、緩慢、昂貴的執行。如果 Agent 耗盡預算卻沒有進展,把它當作失敗訊號。
- 在失敗案例上測試:Loop Engineering 的難點不在於讓它在一切順利時運作,而在於讓它在出錯時優雅地失敗。
Codex App vs Claude Code 對照表
| 原始工具 | Loop 中的工作 | Codex App | Claude Code |
|---|---|---|---|
| Automations | 排程發現 + 分類 | Automations tab、/goal |
Scheduled tasks、/loop、/goal、hooks |
| Worktrees | 隔離並行功能 | 每個 thread 內建 worktree | git worktree、--worktree、isolation: worktree |
| Skills | 編碼專案知識 | Agent Skills (SKILL.md)、$name |
Agent Skills (SKILL.md) |
| Plugins/Connectors | 串接你的工具 | Connectors (MCP) + plugins | MCP servers + plugins |
| Sub-agents | 構想 + 驗證 | .codex/agents/ TOML |
.claude/agents/、agent teams |
| Memory | 追蹤完成狀態 | Markdown 或 Linear | Markdown (AGENTS.md) 或 Linear via MCP |
何時適合 Build Loop?
CodeRabbit 的 Hendrik Krack 提供了一個實用的判斷準則:

延伸閱讀:CodeRabbit 對「什麼情境適合 build loop」的判斷準則。
適合 Build Loop 的情境
- 穩定的目標:重寫整個 codebase,驗證標準不變(能編譯嗎?測試通過嗎?行為符合嗎?)
- 可重複的任務:triage issues、code review、測試生成
- 明確的完成條件:可以定義什麼叫做「完成」
- 低風險的變更:錯誤可以被快速發現和修正
不適合 Build Loop 的情境
- 移動的目標:每次執行都需要重新定義「完成」
- 高度模糊的任務:需要大量人類判斷和決策
- 高風險的變更:錯誤可能造成嚴重後果
- 快速變化的需求:規格持續演進
關鍵洞察:如果每次執行都要重寫驗證器,你花的時間比直接做還多。穩定目標就 build loop,移動目標就手動 prompt。
Loop 的常見失敗模式
Kilo AI 整理了四種 loop 特有的失敗模式,這些是 prompt engineering 階段不會遇到的:

延伸閱讀:Kilo AI 對 loop 失敗模式的整理。
1. Thrashing(震盪)
Agent 在兩個或多個解法之間反覆切換,無法收斂。通常是因為目標定義不夠精確,或驗證信號互相矛盾。
解法:縮小每次迭代的範圍,增加明確的停止條件。
2. Overfitting to Tests(過度擬合測試)
Agent 學會了讓測試通過,但沒有真正解決問題。測試變成目標本身,而不是正確性的代理指標。
解法:確保測試涵蓋行為而不只是表面輸出;加入 integration test 和 edge case。
3. Context Drift(上下文漂移)
長時間運行的 loop 中,agent 逐漸偏離原始目標。每次迭代累積的 context 讓 agent 忘記最初要做什麼。
解法:定期摘要和修剪 context;在每次迭代開始時重新注入目標定義。
4. Unsafe Autonomy(不安全的自主)
Loop 在沒有人類監督的情況下做出了不可逆的變更 — 刪除資料、修改生產配置、推送錯誤的 commit。
解法:設定明確的權限邊界;不可逆操作必須經過人類審批;使用 worktree 隔離變更。
結論
Loop Engineering 代表了我們與 AI 協作方式的演進:


延伸閱讀:itnext.io 的 autonomous coding agents 技術文章、Medium 的範式轉移觀點。
- 過去:你提示 → Agent 回應 → 你提示 → Agent 回應...
- 現在:你設計系統 → 系統提示 Agent → Agent 迭代 → 系統檢查 → 重複
這不是讓工作變簡單了,而是槓桿點移動了。從「寫好 prompt」移動到「設計好 loop」。
Build the loop. But build it like someone who intends to stay the engineer, not just the person who presses go.
最後更新:2026-07-05




