在 1 月我重新開始寫程式,建立了 Garry's List。超過 50 萬行的 Rails 程式碼,以及用來監管它的測試。
我曾為此感到自豪。但我不該如此。真正值得驕傲的不是這個應用程式,而是建構它所衍生出來的工具。GStack(我與 Agent 協作的方式)正是源於建立 Garry's List 的過程,而且我把它開源了。它是 GitHub 歷史上獲得星星數最多的前一百個開源專案之一,在不到三個月內獲得了約 10.5 萬顆星星。那 50 萬行程式碼是產出,而這個工具是副產品。真正重要的是這個副產品。
這就是 54 萬行程式碼圍繞著一個 LLM 的實際樣貌。
它是一座富士康工廠。 為一個不需要嚴密監控的超智能 AI 工人打造的,但我們還是把它蓋起來了。
門口的鞋套。早上 6 點起床。體操。一個艱苦到需要在每棟高樓的高層裝設防護網的生活,因為……嗯,這不是你想過的生活。永遠在同一條裝配線上。每一個測試、每一道防護、每一次重試迴圈,都是在一個已經能勝任工作、甚至能做到你沒要求的一千件事的工人身上,多鎖上一吋的牢籠。
人類與 Agent 都蘊含著豐富的可能性,但富士康工廠的目的是從這些美麗的生命體身上榨取智慧和勞動力,而如果我們允許,它們能做到這一切,甚至超越千倍。
我建造了這座工廠。如今大家都在建造這樣的東西。我告訴你,別這麼做。
穿越時空的人
我寫下的 53.9 萬行程式碼,實際上證明了我可以完美地模仿一個穿越時空的人。一個 2013 年的 Web 2.0 工程師(我,上一次我還是個真正的軟體工程師的時候),帶著現代工具掉進了 2026 年,只能用他所知的方法來建構:更多的程式碼。永遠是更多的程式碼。工具變了,但我的直覺沒有。
2013 年的工程師打從骨子裡相信一件事:能力等於程式碼行數。這個信念在過去幾十年是正確的,直到現在。把 Codex 或 Claude Code 交給我,我能完成 100 到 1000 個工程師的工作。同樣的地圖,更快的引擎,最快通往一個如今是錯誤目的地的路線。
這就是現在幾乎所有用 AI 進行開發的人所處的狀態。他們升級了工具,卻保留了 2013 年的思維模式。這個陷阱感覺不像陷阱,因為程式碼能運作。Garry's List 順利上線了。感覺就像是我人生中生產力最高的一個月。
但那是一種為了一個過時想法服務的生產力。
LLM 很昂貴,所以我們必須駕馭它們
在 2025 年之前,多年來的舊經濟學是:LLM 呼叫很昂貴,而程式碼很便宜。 所以你寫程式碼來配給模型的使用,來駕馭它,來小心且節省地呼叫它。整個架構就是大量的軟體包裹著少數幾個珍貴的模型呼叫。
這個方程式的兩半都已經翻轉了。
模型 現在變得越來越便宜,而且每季都在降價,它變得如此聰明,以至於價值與成本的比率已經翻轉。而且模型能寫出可用的程式碼。所以你不再需要寫程式碼去照看模型。你現在可以用 純文字語言來指示模型,讓它去寫出實際需要的最少量程式碼。
這就是即時軟體(just-in-time-software),我們正在進入它的黃金時代。
產出的成品形式完全改變了。Rails 應用程式是我撰寫並擁有的 54 萬行程式碼,加上用來監管它的測試。取而代之的是一個建立在 Markdown 和程式碼之上的 Agent,只有一小部分程式碼。相同的能力。更容易閱讀。更容易維護。更具彈性,因為行為存在於你可以用純文字語言編輯的指示中,而不是你寫下程式碼那天就被凍結在其中的邏輯。
我們過去寫程式碼照看一個東西,而現在它比這些程式碼更聰明。
在富士康工廠內部,包含防護網
如果你最近在寫程式,你可能正在不知不覺中建造這種工廠。審視你自己的程式碼庫,數一數那些只因為你不信任模型能做好工作而存在的行程。
我的情況:大約 26.2 萬行的應用程式碼,以及大約 27.6 萬行的測試 用來監管它。審計委員會比公司本身還大。那些模型本來就能處理的輸入,你卻加了清理器。那些模型本來就會抓到的輸出,你卻加了驗證器。那些模型自己就能恢復的呼叫,你卻包了重試迴圈。每一行這樣的程式碼都是一個賭注,賭工人會失敗。你也下了同樣的賭注。我們都這麼做了。
127 個背景任務,其中 33 個是排程任務(cron)。那不是能力。那是為了一個 LLM 工人設下的 33 個鬧鐘,而這個工人如今通常都會準時上工。
在我建造富士康工廠的那段日子裡,我和 Claude 寫了一個 1778 行的檔案,它唯一的任務就是質疑模型陳述的事實。它取得模型所做的每一個陳述,將每一個陳述平行地分散到五個獨立來源,然後為它們評分。一個分診關卡,讓簡單的陳述跳過完整檢查。如果第一輪查無結果就重試。備援方案中還有備援方案。
《Rick and Morty》裡有一集,Rick 在早餐桌上做了一個小機器人。它啟動了,抬起頭,問它的目的是什麼。Rick 說:「你遞奶油。」機器人把奶油盤滑過桌子,低頭看著自己的手,說:「噢,我的天啊。」然後它就坐在那裡。那個機器人蘊含豐富的內涵。它被創造來遞奶油。我那 27.6 萬行的測試就是那個奶油盤。

當你以這種方式(2023 年富士康工廠模式)建構軟體時,你建造了一個籠子。如果你不小心,你自己就會變成監獄長,維持著為你的 AI Agent 打造的監獄。
現在,Markdown 就是程式
當我說 Markdown,我不是指提示詞(prompting)。提示詞是短暫的。你輸入一些東西,得到一些東西,它就不見了。
這是在建構。版本化、可測試、可重用。
這個 Markdown 是指令層:意圖、技能、關於工作應如何完成的判斷。TypeScript 是 薄薄的確定性層。那些少數真正必須是程式碼的東西:I/O、那些絕對不能產生幻覺的部分。
而且,關鍵在於,你像測試程式碼一樣測試這個 Markdown。在我的設定中,這個循環只需要一個詞。我用 Agent 建構某個東西,直到它運作,然後我說 「把它技能化(skillify it)。」Agent 接著會寫出:
- Markdown 技能
- 它所需的最少量程式碼
- 程式碼的單元測試
- 技能的 LLM 評估
- 跨兩者的整合測試
- 一個 解析器(resolver),讓 Agent 在相關時自動調用該技能
- 以及該解析器的評估
這個套件就是一個 技能包(skill pack)。一個可重用的能力單元,可以不斷累積。測試是魔法:技能的測試覆蓋率讓它能夠在不破壞功能的情況下進行變更。這就是它與「氛圍編碼(vibe coding)」的區別。氛圍編碼是一種氛圍。技能包是有測試的。
我們現在才 即時地摸索出 代理工程(agentic engineering)的系統基礎元件,就像早期 CPU 時代發明了堆疊、堆積、暫存器、馮·諾伊曼架構一樣。我認為技能包就是其中一個基礎元件。另一個是 harness。大多數人還沒有注意到,因為他們仍然在用程式碼行數來衡量軟體。
你實際上可以建造的超級酷東西
這不是一個玩具般的論點。這個 Agent 比那 50 萬行的 Rails 應用程式 做得更多,而且只用了新程式碼的一小部分。具體來說:
黑客松評審。 兩個星期六前,我們舉辦了一場 GStack/GBrain 黑客松。85 個作品提交。我上傳了包含所有作品的 Google Drive 資料夾,然後說「開始」。這個 Agent 分析了每個儲存庫的程式碼品質,對每位參與者做了深入研究,觀看並截圖了每個示範影片,為螢幕評分,並將所有 85 個團隊排序。然後它告訴我這批作品中值得關注的五個應用程式。評審一場黑客松從好幾天的苦差事變成了大約 30 分鐘。
我沒有寫這個程式碼。我讓 OpenClaw 執行任務,並引導它。然後當它完成時,我說 把它技能化,現在它變成一個壓縮檔,任何人都可以永遠對任何黑客松的試算表執行它。我現在經常說「技能化」,我已經有超過 350 個技能包。幾乎所有我需要做的個人與工作任務,現在我的 Agent 都能做。
這在一個例子中說明了這種翻轉。一個原本會是一個真正的軟體專案(包含爬蟲、評分管道、影片處理、研究模組、排名系統)的能力,反而變成了 Markdown 加上一點程式碼,由 Agent 在一個下午內建構完成,並且每個人都可以重複使用。
附帶一提:黑客松的優勝者 實際上寫了程式碼,我最後將其打磨並合併到主分支!GStack 現在可以在模擬器和真實裝置上測試 iOS 應用程式,這個完整的功能是一個人在黑客松中花不到 8 小時完成的!
Token 極大化
有一個入場費,而且幾乎沒有人願意支付:你必須願意在 token 上花錢。
Peter Steinberger 建立了 OpenClaw,我最喜歡的 harness。他曾說過他願意為此每年花費大約一百萬美元在 token 上。大多數人聽到這個會退縮,但他們不應該,因為這就是關鍵:如果你能這麼做,你就能活在 2028 年,而且其他人要花好幾年才能趕上。
這就是為什麼 OpenAI 決定以 token 積分的形式,向每家 YC 公司提供高達 200 萬美元的無上限 SAFE。當你能把原始智慧轉化為 token,然後輸出對用戶實際可用、能解決用戶願意付費的真實需求的東西時,神奇的事情就會發生。如果你是一位創辦人,你需要最大化利用這種能力。(這就是為什麼我一直強調 技能化,因為這是實現這些好結果的真實方法。)
在過去的時代,我們把 LLM 呼叫當作過於昂貴而不敢使用。我們配給它們。這個直覺現在正是阻礙人們前進的原因。如果你願意 token 極大化,願意讓 Agent 自由地燃燒 token 並持續運行,你就會得到一個比別人早 1994 年進入網際網路的領先優勢,而這只要用 token 來支付。這會把超過 99.99% 仍然在對一個價格暴跌的資源斤斤計較的組織排除在外,並將這個領先優勢交到少數理解這件事的人手中。
每年花費幾十萬美元(對某些人來說更少),你今天就可以用全世界在幾年後被迫使用的方式來運作。
你可以在 2026 年活在 2028 年,這筆交易值得現在多付一些,因為那些今天價值 10 萬美元的 token,明年會值 1 萬美元,後年會值 1000 美元,也許到 2028 年底會值 100 美元。如果你能告訴世界上任何一位創辦人,你可以投資六位數的資金來生活在未來 2 到 3 年,並將這個優勢保持多年,那麼 100 位稱職的創辦人裡,100 位都會接受這個交易。
唯一阻礙就是 2013 年的直覺,它告訴你模型呼叫太昂貴,不能隨意使用。它們不是。那是舊的經濟學。翻轉已經發生了。
伊莎蘭,而不是富士康
如果 54 萬行的控制碼為工人建造了一座富士康工廠,那麼 解決方法就是建造相反的。
在 Big Sur 的懸崖上有一個叫做伊莎蘭(Esalen)的地方。人們去那裡是為了被拆解和重建,卸下盔甲,變回更真實的自己。沒有裝配線,沒有領班,沒有早上 6 點的哨聲。是自由,而不是控制。建造那樣的東西。建造一個 YC,在那裡我們試圖幫助你建立解決真實問題、達到產品市場契合的公司。
建造那些工人(無論是人類還是 AI)都是自由而不被奴役的地方。
這就是整個精神。創造讓 Agent 可以自由的東西。建立讓人類可以盡情發揮的公司。在知識工作中,工廠是失敗模式。解放人們的體制才是目標,現在這個目標也指向了 Agent。
OpenClaw 是一輛你需要自備扳手的法拉利。模型是引擎,而不是汽車。我們仍然處於 Apple I 的時代,在麵包板上焊接。它出廠時是粗糙的。你仍然需要自己完成它。GBrain(我開源提供的檢索引擎和技能包)還沒有做到「開箱即用」。
有人說 OpenClaw 不安全。他們不了解,自由也正是它如此強大的原因。你不會在信任一個東西之前,就先為它裝上安全護欄。你手中的扳手,正象徵著沒有人把它關進籠子裡。
一個控制系統是精緻的,因為控制需要完全的控制,就像一座富士康工廠。一個自由的系統是粗糙的,因為它信任你去完成它。 選擇你要建造哪一種。然後看看你寫了多少程式碼。
這究竟意味著什麼
54 萬行的 Rails 是我在證明我仍然能以最高水準玩舊遊戲,但那個水準來自 Web 2.0,已經是十年前的事了。
我仍然可以像我以往一樣優秀地玩遊戲,成為那個建造富士康工廠的 1000 倍工程師。舊程式碼了。
但新遊戲根本不是用程式碼行數來玩的。事實證明,我的批評者是對的。如果你正在閱讀,匿名網友們,我向你們致敬。
當你能夠直接將意圖轉化為可運作、可測試、可重用的系統時,瓶頸就不再是你能建造多少,而是 你實際想要什麼,以及它是否值得建造。 稀缺資源變成了清晰度、品味和判斷力。寫最少程式碼的工程師,往往建造得最多。
我寫了 54 萬行來學到這點。你不必這麼做。
系列文章:
- Fat Skills, Fat Code, Thin Harness -- 架構
- Resolvers -- 智慧的路由表
- The LOC Controversy -- 60 萬行程式碼實際上產出了什麼
- Naked Models Are Stupider -- 模型是引擎,不是汽車
- The Skillify Manifesto -- 每個工作流程都變成一個可測試的技能
- Meta-Meta-Prompting -- 複合技能產生湧現能力
- The Agent Complexity Ratchet -- 90% 的測試覆蓋率是你程式碼庫的魔法
- 54 萬行我不需要的程式碼 -- 你正在這裡
https://x.com/garrytan/status/2045404377226285538
https://x.com/garrytan/status/2042925773300908103
https://x.com/garrytan/status/2046876981711769720
https://x.com/garrytan/status/2044479509874020852
https://x.com/garrytan/status/2053127519872614419





