前兩天,我們分享了《重磅!Loop Engineering 實作手冊公開》,系統梳理了 Loop Engineering 的六個核心元件與落地方法。
今天來聊聊額外的內容:一是補上 Loop 的演進脈絡;二是補上對 Loop 本質的理解。我們就從最近這兩個判斷說起。
2026 年 6 月,Anthropic Claude Code 負責人 Boris Cherny 說了句讓人愣住的話:
"I don't prompt Claude anymore. I have loops that are running. They're the ones that are prompting Claude and figuring out what to do. My job is to write loops."
有意思的是,大多數開發者仍在打造完美的提示詞,而製作工具的人完全放棄了提示詞。
同一週,OpenClaw 的創辦人 Peter Steinberger 用另一種方式表達了同一件事:
"You shouldn't be prompting coding agents anymore. You should be designing loops that prompt your agents."
兩個人在不同場合、不同產品上,得出了同一個結論。這不像是巧合,更像是某種工程實踐自然走到了一個轉折點。
本文討論的問題是:Loop 它從哪裡來?解決的到底是什麼問題?以及對大多數人來說,現在該不該動手建一個?
一、Prompt → Context → Harness → Loop
要理解 Loop Engineering,得先理解它之前發生了什麼,弄清楚整條鏈路發生了什麼。
故事從 2024 年講起。那時候跟 AI 協作的方式很簡單:你寫一條 prompt,模型回你一段結果。Prompt Engineering 這個詞就是在這個階段被發明的——用措辭+例子+格式,能讓模型輸出你想要的東西。
這套方法有一個根本性的局限:你必須在一條訊息裡事先預見模型需要的一切。你得把背景、規則、示例、限制全塞進去。模型看到什麼就知道什麼,看不到的只能猜。
到了 2025 年初,人們意識到問題不出在 prompt 的措辭上,而在於模型拿到的資訊太少。Context Engineering(上下文工程)應運而生——不再糾結於怎麼「問」,而是精心構造模型「看到」的東西:system prompt 提供角色和規則,few-shot 示例校準輸出格式,RAG 檢索注入即時知識,結構化輸入讓模型精確理解需求邊界。
上下文做好了,模型不再猜了。但一個新問題浮出來:即使資訊完美,複雜任務一次做不完。重構一個模組需要先讀程式碼、再改介面、再更新呼叫端、再跑測試驗證——這不是一個 prompt 能搞定的事。模型需要多步執行,需要工具,需要在中間觀察結果再決定下一步。
於是 Harness Engineering 出現了。這個名字有點奇怪,但它描述的事情很具體:給 Agent 裝上工具——shell 命令、檔案系統讀寫、MCP 連接器、沙箱環境——然後給它一套重試機制和權限控制,讓它能在一次 session 內完成多步操作。Claude Code、Cursor、Codex 這些產品本質上都是 harness。你給它一個任務,它自己規劃步驟、呼叫工具、觀察結果、在失敗後重試。
Harness 解決了「單次 session 內的執行能力」問題。但它沒解決一個更大的瓶頸——人。
你有一個裝備精良的 Agent。它能讀程式碼、寫程式碼、跑測試、開 PR。但每天早上,是你打開電腦、檢查 CI 狀態、複製錯誤日誌、把日誌貼給 Agent、等它修完、review 結果、批准合併。第二天重複。第三天你可能就煩了。
此時 Agent 的能力不是瓶頸,人才是。
Loop Engineering 的出發點正基於此,把「人觸發 Agent → 人判斷結果 → 人決定下一步」這個循環中的人替換成一個自動化系統。這個系統能定時觸發、能驗證結果、能記住上次做到哪了、能決定繼續還是停止還是回報。
你不再是那個寫 prompt 的人。而是設計 prompt 系統的人。
二、讓 Loop 跑起來需要什麼
業界通用的 Loop 是六個元件,我們用一個具體場景來看。
假設你的團隊每天都會遇到 CI 紅了的情況——某個測試掛了,某個型別檢查報錯。沒有 Loop 時,流程是這樣的:早上打開電腦,看到 CI 紅了,把錯誤日誌複製出來,貼給 Agent,等它修完,跑測試,提 PR。明天重複。
有 Loop 時,流程變成:每天早上 8 點,系統自動醒來。接下來發生的事情,是一次完整的運行循環——
1、找到要做的事(Automations)。系統檢查 CI 狀態。全綠就什麼也不做。有失敗,就讀取錯誤日誌,確定今天的工作目標。這是觸發層——Loop 需要某種東西把它叫醒,可以是定時器(cron)、可以是事件(CI 失敗觸發 webhook)、也可以是 Agent 自己的心跳偵測。沒有這個,Loop 不會自己開始。
2、隔離:開一個乾淨的工作區(Worktrees)。系統在一個獨立的 git worktree 裡啟動修復。為什麼不直接在主分支上改?因為如果你同時跑三個修復任務,它們不能在同一個程式碼目錄裡互相覆蓋。每個子任務需要自己的副本,互不干擾。
3、讀規則:不從零開始(Skills)。Agent 啟動時先讀專案知識檔案——Codex 叫它 AGENTS.md,Claude Code 叫 CLAUDE.md,更細粒度的技能檔案叫 SKILL.md。不管叫什麼名字,做的是同一件事:把編碼規範、架構約定、常見坑點寫下來,Agent 每次啟動時自動讀取。否則每個 session 都在重新「學習」你的專案,浪費 token,浪費時間。
4、動手:連接真實世界(Connectors)。Agent 修完程式碼後,需要開 PR、關 ticket、通知你。這要求它能觸達外部系統——透過 MCP 連接 GitHub、Linear、Slack、資料庫,與外界互動或通知。
5、驗證:找另一個人打分(Sub-agents)。修完後自動跑測試。但這裡有個關鍵設計:寫程式碼的 Agent 不能自己驗證自己的程式碼——就像學生自己給自己批改考卷,它犯的錯誤恰恰是它發現不了的錯誤,需要用另一個 Agent 來檢查。
6、記住:寫下今天發生了什麼(Memory/State)。測試通過了就開 PR 並更新狀態檔案;沒通過就把「今天嘗試了什麼、卡在哪裡」寫進狀態檔案。下次 Loop 醒來時讀取這個檔案,就知道上次做到哪了、什麼試過失敗了。Agent 的上下文視窗每次都會清空,但磁碟可以用來儲存記憶知識庫。
這就是一次完整的 Loop 運行。你早上打開電腦看到的不再是「CI 紅了」,而是「這裡有個 PR 等你 review」或者「這個問題跑了兩天沒搞定,需要你看看」。
那這裡可能會問:這和 cron job 有什麼區別?看著就像一個定時執行的任務。
區別在於 cron 的邏輯是寫入時就確定的——if CI red then run fix script then commit,硬編碼的 if-else。Loop 內部的決策者是 LLM。同樣是「CI 紅了」,它可能判斷「這是個 flaky test,跳過」,也可能判斷「這涉及三個檔案的依賴變更,需要分步處理」。它的行為在執行時才確定,因為決策者有判斷力。
三、Loop 的本質:控制論
到目前為止,大多數關於 Loop Engineering 的討論把它當成一個編排問題來講——要用 Worktrees 做隔離,用 Connectors 做連接,用 Memory 做記憶。這些回答的都是怎麼組裝,而不是為什麼要這樣組裝。
回到剛才的 CI triage 例子。仔細看那個流程在做什麼:有一個目標(測試全通過),有一個執行動作(Agent 修復程式碼),有一個檢查(測試套件跑完報告偏差),有一個回饋(把失敗資訊送回去讓 Agent 再來一輪)。
這個結構似曾相識,家裡空調設定 25 度,壓縮機開始製冷,溫度感測器測量室溫,如果還沒到 25 度就繼續製冷,到了就停。汽車巡航定速設定 120 km/h,引擎調節輸出,車速感測器測量實際車速,如果偏低就加油,偏高就減。
這本質都是同一個結構:目標 → 執行 → 測量偏差 → 回饋修正 → 再測量。
這個結構有一個共同名字。控制論(Cybernetics / Control Theory)——研究「系統如何透過回饋維持目標狀態」的學科,1940 年代誕生,核心問題只有一個:怎樣讓一個系統在受到干擾時自動修正回目標。它把這類系統拆成三個角色:控制器決定做什麼,執行器去做,感測器檢查做得怎麼樣並把偏差送回控制器,三者構成閉環。
先看控制器。
閉環需要一個決策中心——讀取偏差訊號,決定下一步怎麼修正。這就是控制器(Controller)。在 Agent 場景下,控制器是整個編排邏輯:讀取驗證結果,判斷是否達標,如果沒達標就構造下一個 prompt 再跑一輪。
控制器要做出好的決策,面臨兩個困難。第一,它不知道你的專案怎麼做事——編碼規範、架構約定、工具用法,每次從零推導就慢且不穩定。於是就需要把這些規則寫下來,讓控制器每次啟動時直接拿到。這就是 Skills 存在的原因。第二,它不記得上次做到哪了——上下文視窗每次清空,今天不知道昨天已經試過什麼。於是就需要一個活在 session 之外的持久狀態。這就是 Memory/State 存在的原因。
再看執行器。
閉環需要一個角色把決策變成對真實世界的動作。這就是執行器(Actuator)。在 Agent 場景下,執行器是工具呼叫層——檔案編輯、shell 命令、API 呼叫。
執行器要精確操作,也面臨兩個困難。第一,它觸達不了外部世界——控制器說「開個 PR」,得真能連上 GitHub 才行。於是就需要讓執行器的手伸得夠遠。這就是 Connectors(透過 MCP 協定連接的外部服務)存在的原因。第二,多個 Agent 並行時會互相覆蓋——於是就需要隔離的操作空間。這就是 Worktrees 存在的原因。
最後感測器。
閉環需要一個角色在執行完成後測量結果、報告偏差。這就是感測器(Sensor)。在 Agent 場景下,感測器就是驗證,產出的是誤差訊號,看離目標還差什麼。
感測器面臨一個結構性困難:獨立性。如果做事的 Agent 同時充當驗證者,錯誤是相關的——導致 bug 的那個盲點,恰好也是讓它看不到 bug 的盲點。就像做完題後用同一個思路檢查,大概率發現不了錯誤。於是就需要另一個 Agent、甚至另一個模型來做檢查。這就是 Sub-agents 存在的原因。
還有一個不屬於三者中任何一個的東西:Automations(定時器、事件觸發、心跳偵測)。它是閉環的啟動條件——誰來按開始鍵讓回路轉起來。沒有它,三個角色再完善也不會自己主動運行。
至此,Loop Engineering 的六個元件有了歸屬。它們不是拼湊的零件,而是控制自然需要的基礎設施。因為控制器需要知識和記憶,所以有了 Skills 和 Memory;因為執行器需要觸達和隔離,所以有了 Connectors 和 Worktrees;因為感測器需要獨立性,所以有了 Sub-agents;因為閉環不會自己啟動,所以有了 Automations。
現在問一個控制工程早就在問的問題:這個閉環跑起來之後,會怎樣?
空調控制的被控對象是穩定的——加熱功率和溫度的關係不會突然變。而你控制的是個語言模型——同樣的輸入給兩次,輸出可能完全不同。隨機性越強,回饋修正就越不可或缺。
在這個系統上跑 Loop,有三種結局。
收斂到正確狀態——Agent 達到目標,驗證通過,且驗證沒有說謊,沒有幻覺,這是唯一好的結局。
收斂到錯誤狀態——Loop 停下來了,因為感測器報告「通過」,但感測器錯了:測試通過是因為測試本身寫得不對,構建通過是因為出問題的路徑沒被執行,審閱 Agent 通過是因為它太容易同意。這比永遠不停還糟糕,因為它帶著自信地停下了。
發散——Loop 達不到感測器接受的狀態,它越改越偏,最後到達上限退出。
當你想讓 AI 做些更複雜的事情,但是又對品質有要求時,你不能用「固定計劃」去掌控這個系統。而控制論給出的框架是:提高「收斂正確」結局的概率,或者限制後兩種結局的損失。
那在這三個角色裡,誰決定了收斂速度?是感測器。
同樣是做驗證,一個感測器只返回 pass/fail,控制器收到後只知道「還沒好」,不知道哪裡沒好,下一步修正近乎盲猜。但如果感測器返回的是「哪個測試案例掛了、哪個斷言失敗了、是哪個 diff 引入的」,控制器就不是在猜,而是在針對一個具體缺陷做修復。搜尋空間會被進一步壓縮。
大多數人的直覺是反的,花大錢買最強的模型來寫程式碼,然後用簡單的 chat 來做驗證,最後反覆幻覺,離目標越來越偏。而高槓桿的方式是去設計好的感測器,從而返回更豐富的訊號,而不僅僅關注模型更聰明。
這個邏輯就是:"Great prompt + weak verification" will fail; "mediocre prompt + strong verification" will converge. 感測器就是設計本身。
四、怎麼判斷你需不需要 Loop
既然感測器是關鍵,那麼判斷「你該不該建 Loop」的問題就轉化成了一個更具體的問題:
你能不能寫出一個不需要你盯著就能拒絕壞輸出的自動化檢查?
能——你就有閉環的前提。不能——「完成」就是主觀判斷。
即使能閉環,還有幾個現實限制。任務得重複——至少每週出現一次才值得自動化,否則你建的是個很貴的一次性腳本。Token 預算得能承受浪費——Loop 會重讀上下文、重試失敗路徑,無論是否產出成果,每一步探索都會消耗 token。Agent 得擁有足夠的工具觀察結果,否則是在瞎修。
有一類我們常常犯的錯誤,面對目標不可測量的任務的設計。比如「幫我重構這段程式碼讓它更優雅」、「寫一篇好的技術部落格」、「設計一個好的 API」,這些都沒有制定客觀的 pass/fail 標準。「優雅」、「好」是主觀判斷。即使你可以讓另一個 LLM 來打分,但 LLM 打分本身不可靠——它傾向於給高分,且標準會漂移。這種情況下你建了一個 Loop,感測器說「通過了」,但這個「通過」在沒有任何客觀標準時,就是假的閉環。
如果你判斷自己滿足條件,起步的順序就是:先寫 Skills(明確意圖,讓 Agent 不用每次從頭推導你的標準),再寫感測器(確保你能精確定義「什麼叫做完」),最後才套上 cron 觸發器。先建 Inspector,再建 Loop。
Loop 不關心操作它的人是誰。它只管跑「讀感測器 → 判斷 → 再來一輪」。但感測器是你寫的——你對系統理解多深,感測器就能寫多精確。Loop 放大的是你的判斷力。
附錄、參考資料
- Loop Engineering: The New Way to Use Claude Code & Codex (https://medium.com/towards-artificial-intelligence/loop-engineering-the-new-way-to-use-claude-code-codex-c55dd65ecc61) — Addy Osmani
- Loop Engineering Is NOT What Everybody Thinks It Is (https://medium.com/@agentnativedev/loop-engineering-is-not-what-everybody-thinks-it-is-6719a0f4f83f) — Agent Native Dev
- How Claude Code, Codex, and Cursor Do Loop Engineering (https://medium.com/ai-all-in/how-claude-code-codex-and-cursor-do-loop-engineering-28b444968673)
- Loop Engineering (https://medium.com/@cobusgreyling/loop-engineering-62926dd6991c) — Cobus Greyling
- Why Is Loop Engineering Trending (https://medium.com/generative-ai/why-is-loop-engineering-trending-2acb7029af0c)
- Loop Engineering Is Replacing Prompt Engineering (https://medium.com/coding-nexus/loop-engineering-is-replacing-prompt-engineering-why-the-best-developers-dont-prompt-ai-anymore-639c944be3ee)
- What is Loop Engineering? How it is different than Harness Engineering (https://medium.com/gitconnected/what-is-loop-engineering-how-it-is-different-than-harness-engineering-0e764f373fb1) — Akshay Kokane
- Loop Engineering Is Here. Most of You Should Not Build One Yet (https://medium.com/@alirezarezvani/loop-engineering-is-here-most-of-you-should-not-build-one-yet-part-1-d56f63acda00)
- How To Build a Claude Loop Engineering Better Than 99% of People (https://medium.com/data-science-collective/how-to-build-a-claude-loop-engineering-better-than-99-of-people-3ab8701d176c)