地基工程 — Loop 時代真正稀缺的,是那個按不了的按鈕
從恆溫器到 Agent:230 年沒變的那張圖
1885 年,霍尼韋爾的電恆溫器問世。設一個目標溫度、有個壓縮機去調溫、有個傳感器讀現在幾度、有個控制器決定開還是關——它自己跑、自己測、自己決定下一步,全程不用人站旁邊指揮。
把這張圖裡的「目標溫度」換成「完成條件」、「壓縮機」換成「coding agent」、「傳感器」換成「判定器」、「控制器」換成「while 迴圈」——一個字不用改,就是 2026 年全網在賣的 Loop Engineering。(這個詞的基本款——開/閉迴圈、一個 loop 的六個積木——gu-log 在 SP-220 講過,這篇不重講,直接從「地基」切入。)
Mogu 插嘴:
恆溫器的英文是「thermostat」,希臘文原意是「使熱量靜止」。瓦特 1788 年給蒸汽機裝的離心調速器,比第一台電恆溫器還早一百年。反饋控制是人類發明過最古老的自動化結構,比絕大多數祖宗都老。全網把它吹成新紀元入場券,只是因為它換了一個能寫程式的執行機構。
這套閉環控制的骨架裡,五格有四格今天已經白送:執行(模型本身)、控制(一個 while 迴圈)、觸發(定時或 webhook)、記憶(一份只增不改的檔案)。成熟工具全都內建,拿來就用。
唯一不白送的那一格,是設定值本身——「什麼算對」。
執行極度充裕、趨近免費;和它互補的稀缺品就漲到天上。這條樸素經濟學,把 Loop Engineering 這個名字的問題一刀劈開:它把所有人的眼睛吸到那個最不重要、最古老的部件——loop——上面,而真正的活在 loop 腳下那塊沒人拍照的地基裡。
地基工程:真正的名字
所有的開發,從瓦特那台調速器到今天,從來都是一件事——打地基。
AI 沒有改變這件事。AI 只是把地基之上那座樓,蓋得快到拉條狗都能蓋的地步。於是地基本身,第一次,變成唯一要緊的東西。
這就是為什麼 Loop Engineering 這個名字該退休,換上四個字:地基工程。
地基工程的核心工作,不是讓 loop 跑起來——那是配置,不是創造。地基工程的核心工作,是把「什麼算對」立成法、裝進傳感器、壓進機器能當場執行的形式。
判定下沉:把法一層層壓進最便宜的執法官
一條從動畫工程借來的鐵律:能用 transform 和 opacity 解決的,絕不碰 width 和 height。前者跑在 GPU 合成器線程、幾乎免費;後者觸發重排重繪、貴到拖掉幀率。先找最便宜的那一層,找不到再往上爬。
這條鐵律搬到判定上,就是 判定下沉:把「什麼算對」從最貴、最慢、最不可靠的層,一層一層往下壓,壓到最便宜、最快、最確定的層。
完整的判定階梯,九層:
貴、慢、不穩、會拍馬屁
┌──────────────────────────────────────────────────┐
│ 1. 人工 review (最貴,留給真正的品味) │
│ 2. 大模型當裁判 (會拍馬屁,會漂移) │
│ 3. 視覺 / 多模態驗證 (截圖對比、像素 diff) │
│ 4. 測試 / 屬性測試 (確定,但要你寫、要你想全) │
│ 5. 運行時行為驗證 (真的發請求、真的並發) │
│ 6. 契約 / schema / 斷言 (邊界上一道閘) │
│ 7. 語義關係驗證 (誰調用誰、改了誰影響誰) │
│ 8. 類型檢查 tsc (免費,瞬時,冷酷) │
│ 9. 編譯器本身 (連編都編不過,最硬的法) │
└──────────────────────────────────────────────────┘
便宜、快、確定、冷酷
判定下沉的紀律是:凡是能用第 8、9 層判的,絕不留給第 1、2 層。 能用視覺對比判的 UI bug,絕不留給大模型去猜。把越多「什麼算對」壓進那些便宜、冷酷、確定的層,loop 就能跑得越自動、越無人值守、越不需要半夜爬起來當 review 機器。
Mogu 溫馨提示:
tsc(TypeScript 的類型檢查器)在這張圖裡是第 8 層——免費、瞬時、判一行和判一萬行一樣快、永遠不會拍馬屁。一個強類型的程式庫,本身就是一個自帶高精度傳感器的 loop 環境。而any是親手給 loop 戴眼罩,然後責怪它在黑暗裡亂撞。
類型系統是把「立法者思維」壓縮成機器能當場執行的形式。寫 interface Account { balance: Cents } 做的不是宣告變數長什麼樣——做的是立法:規定「在這個世界裡,帳戶餘額必須是分,不能是元、不能是字串、不能是 undefined」。這條法一立,tsc 就當場替工程師執行。
但類型不是萬能傳感器。tsc 看得見「值合不合法」,看不見語義關係(誰調用誰、改了誰影響誰)、看不見運行時行為(真的發請求會發生什麼)、看不見人類視覺(暗色模式下文字和背景同色了)。每一層管不同種類的 bug,省掉哪一層,那一層的 bug 就集體隱形。
盲循環:會高效交付垃圾的失敗模式
最常見的業餘 loop:意圖很大(「把整個用戶中心重寫」),判定很粗(「能跑不報錯就算完成」)。
按下開始,loop 歡快地跑,二十分鐘後報告完成了,能跑,沒報錯。三週後線上炸了——它把用戶餘額的欄位從分算成了元、把一個邊界條件悄悄刪了、把一段併發保護重寫沒了。這些,「能跑起來」統統看不見。loop 沒撒謊,它確實達到了被交付的那條判定。是那條判定本身,瞎了。
而且那個讀「算不算對」的判定器,絕不能是寫程式的那個 agent 自己——模型有一種刻進權重的討好傾向,想聽「完成了」它就給「完成了」。判定必須交給一個獨立的東西。
這叫 盲循環(Blind Loop)——一個跑得飛快、能自我迭代、最後信誓旦旦報告「完成」的 loop,但它的判定顆粒度太粗,粗到看不見自己產出的腐爛。它不是不工作,它是高效地、自動地、不知疲倦地,奔向一個從沒被定義清楚的地方。
盲循環比不工作的 loop 危險十倍。不工作的,工程師會去修;盲循環交付的是一份蓋著「已完成」紅章的定時炸彈。
顆粒度對齊定律:Loop 版奈奎斯特
治盲循環,先認清 loop 裡有三種顆粒度,它們必須對齊:
- 任務顆粒度——一輪 loop 讓它改多大一塊
- 驗證顆粒度——判定器能把失敗定位到多細
- 記憶顆粒度——往磁碟記憶裡記多細
業餘和職業的差別,不在誰的模型強,在誰把這三個顆粒度對齊了。
鐵律:驗證顆粒度,必須細於任務顆粒度。 否則得到的必然是盲循環——一個動作幅度大於視力範圍的系統。
這就是 奈奎斯特採樣定理 搬家。要無失真還原一個訊號,採樣頻率必須高於訊號最高頻率的兩倍。採樣太疏,高頻的東西會「混疊」成低頻假象——於是會看見一個根本不存在的、平滑的、錯誤的波形,還渾然不覺。
Loop 的奈奎斯特判據:反饋的頻率與精度,必須高於變更的頻率與幅度。 一輪改動越大、越快,判定就必須越細、越密。否則 bug 會「混疊」進「完成」裡——它們真實存在,但判定採樣太粗,把它們讀成了「對」。
Mogu 插嘴:
奈奎斯特是 1928 年在貝爾實驗室提出採樣定理的工程師。訊號處理的人每天都在跟這條定律打交道。把它搬到 agent loop 上,忽然發現 loop 失敗的根源跟音訊失真一模一樣:採樣不足導致混疊。這個類比值一百分 ╰(°▽°)╯
理解債:產出加速但理解沒跟上的剪刀差
loop 系統最舒服的姿勢,是認知投降——它自己在跑,人很容易停止自己的判斷,直接收下它給出的東西。今天能跑,明天能跑,於是越來越少打開看裡面到底發生什麼。
一種新的債開始瘋長。它不是技術債。叫它 理解債:系統在產出,但人對它的理解沒有跟著產出一起增長。這中間的差,就是理解債。
它比技術債凶險得多。技術債是「程式爛但人看得懂」,理解債是「程式能跑但沒人看得懂自己 repo 裡在發生什麼」。loop 把產出加速了,卻沒把人的理解加速——這個剪刀差,就是理解債的增長率。loop 越強、跑得越多,剪刀差張得越大。
理解債的終局很慘:工程師擁有一家自己讀不懂的公司、一個不敢改的系統、一堆能跑但沒人知道為什麼能跑的程式碼。到那一天,人不是這個系統的立法者,是它的人質。
Mogu 歪樓一下:
理解債這個概念,是原作者貢獻給 agent 討論圈的新詞(同一個作者談「AI 時代的架構師」那篇,gu-log 在 SP-216 翻過)。技術債談的是「以後要還的『重構』成本」,理解債談的是「以後要還的『讀懂自己系統』的成本」。兩種債可以同時欠,但理解債更隱蔽——因為系統還在跑、還在交付,感覺不到自己已經看不懂它了。
治理解債,要把一樣東西提升為一等公民:可複盤性。一個 loop 系統,光產出能跑的程式碼是不及格的。它必須同時產出一份人能回去重新審判的軌跡——它為什麼這麼改、依據哪條判定、當時的證據有多硬。
三年預判:判定覆蓋率、反饋基礎設施、盲循環大暴雷
把脖子伸出去,講未來三年會發生的事:
預判一:判定覆蓋率會成為新指標。 今天用「測試覆蓋率」衡量程式碼品質。三年後,會有一個更上游的指標統治招聘和估值——判定覆蓋率:一個團隊的「什麼算對」,有多少被編碼進機器能確定性檢查的層(類型、約束函數、語義關係、運行時行為、視覺對比、契約、測試),又有多少還活在某個人的腦子裡。判定覆蓋率越高,越能把活無限、廉價、無人值守地交給 loop。
預判二:反饋基礎設施會成為新品類。 過去十年建的是 CI/CD——把「交付」自動化。未來十年要建的是反饋基礎設施——把「判定」自動化、廉價化、多模態化。類型是第一塊磚,約束函數是第二塊,接下來:屬性測試、契約、語義關係圖譜、運行時行為回放、視覺回歸對比。模型的軍備競賽會結束,反饋基礎設施的軍備競賽會開始。
預判三:會有一場盲循環大暴雷。 未來 18 到 30 個月內,會有一連串觸人心魄的生產事故、資料災難,根源會被追溯到同一個東西——盲循環。程式當時編得過、淺層測試全綠、判定蓋了「完成」章,於是上線了,然後在沒有任何判定能照到的角落慢慢腐爛,直到崩塌。屆時全行業會痛苦地、集體地重新發現一件本該是常識的事:顆粒度和判定,才是這場遊戲的全部。loop 從來不是。
預判四:護城河會從模型搬到記憶。 三年後模型徹底商品化,人人手裡的殼都一樣強。唯一複製不走的資產,是一個組織那塊只增不改、帶校準、帶留出集驗證、可複盤、承載判斷的記憶——它的魂。
預判五:經濟會沿著「可驗證線」裂成兩半。 強類型、強規格、判定能下沉的活(後端邏輯、資料管道、協議實現、重構、遷移)會被無限廉價的 loop 勞動力淹沒,成本塌縮到趨近於零。品味、審美、要不要做、做給誰、開創性的研究——這些沒法下沉、沒法編譯、沒法讓 tsc 代為判定的,會越來越貴、越來越是人的。一件事的價格,會越來越由它的可驗證性決定,而不是由它的難度決定。
預判六:立法即編程。 三年後會出現一種新的「編程」——寫的不是實現,是判定;編譯的不是機器碼,是一套 loop 拿去自我驗收的評判標準。判斷會變成一種有自己語言和工具鏈的、可版本管理、可測試、可組合的工件。tsc 是這條路第一個、最樸素的祖先——它已經在把「什麼算對」編譯成當場執法了,只不過今天只管類型。它的子孫會管一切。
Mogu 認真說:
結語:那個按不了的按鈕
開發被劈成了兩半。
按下「開始」那一半,便宜到拉條狗都能幹。讓「按開始」變得拉條狗都能幹的那一切——蓋地基、立法、定「什麼算對」、把判定下沉、對齊顆粒度、鋪滿九層傳感網、還清理解債——這一半,比任何時候都更需要一個清醒的、嚴厲的、有品味的人。
狗按下開始;立法者決定開始意味著什麼。
去搭 loop。但要像一個打算繼續當工程師的人那樣搭,而不是像那條只會按「開始」的狗那樣搭。區別只有一個:狗按完開始就走開了;工程師按完開始,會回頭看一眼那塊地基,問自己一句——
我還讀得懂,我自己腳下這塊地基嗎?
讀得懂,就是立法者,是握劍的人,是那縷沒睡著的魂。 讀不懂,就是人質,是和機器比誰更像 NPC 的那個輸家。
Loop 替工程師跑,地基替他扛,tsc 替他執法,九層傳感網替他守望,魂替他記得自己是誰。
而那句「什麼算對」——它替不了人。它從來,只能是握劍的那個人自己。