Karpathy 說,他從來沒有像現在這樣,覺得自己作為程式設計師「落後了」。這話從別人或者我的嘴裡說出來,可能就還算是正常……但 Karpathy 這麼說,份量就還是不太一樣了。Karpathy是 OpenAI 聯合創始人、Tesla AI 負責人、如今 Eureka Labs 的創始人,整個深度學習時代最具影響力的技術布道者之一。雖然喜歡造詞,被認為有些“網紅”屬性,但也是憑實力而紅,沒有任何水分。上周,他在 Sequoia Capital 的 AI Ascent 2026 大會上,和 Sequoia 合夥人 Stephanie Zhan 做了一場 30 分鐘的爐邊對話。主題是:軟體正在經歷第三次範式轉移。Karpathy AI Ascent 2026Stephanie Zhan 在活動結束後,發了段總結稱:“ 去年他造了「vibe coding」這個詞,今年,他「從未如此覺得自己作為程式設計師落後了」。她還用一句話概括了整場對話的核心內容:“ Vibe Coding 抬高的是地板,Agentic Engineering 抬高的是天花板。一個關乎准入,更多人能參與建構。另一個關乎卓越,用 Agent 的同時不犧牲安全、可靠性、可維護性,以及品味。而 Karpathy 自己也在事後發了一條長帖總結了三個主題。其中,最重要的一段是關於 LLM 的「新疆域」:“ LLM 遠不只是加速已有的工作流(比如寫程式碼)。有些應用可以被 LLM 完全吞噬,無需傳統程式碼。有些安裝指令碼可以用英文 .md 檔案替代 .sh 指令碼,因為「LLM 就是一個高級的英文直譯器」。還有像 LLM 知識庫這樣的東西,以前根本做不了,因為它需要對非結構化資料做計算。01. Software 1.0在理解什麼是 Software 3.0 之前,我們先回頭來看看 1.0 和 2.0。Software 1.0 是我們熟悉的傳統程式設計。Software 1.0 的困境程式設計師用 Python、C++、Java 寫程式碼,每一行都是明確的指令:如果 A 則執行 B,否則執行 C。邏輯是人寫的,bug 也是人造的。從 1950 年代到現在,絕大多數軟體都屬於這個範疇。這套範式統治了軟體工程半個多世紀。它的好處顯而易見:確定性強,可偵錯,可解釋。但它也有一個根本性的侷限,擴展性受限於人類的智力和時間。你寫不出一個手動規則,讓電腦從一張照片裡認出一隻貓。你寫不出一段邏輯,讓機器把中文翻譯成英文。你更寫不出一個演算法,讓 AI 從零學會下圍棋。畢竟這些任務……人類自己都說不清楚規則是什麼,怎麼寫成程式碼呢?02. 2017 年:Software 2.02017 年 11 月,Karpathy 還在 Tesla 做 Autopilot 的時候,在 Medium 上寫了一篇部落格:Software 2.0。Software 2.0:訓練即程式設計這篇文章後來被認為是 AI 領域最有影響力的概念文章之一。他的核心論點是:神經網路不只是一種新工具,它代表了一種全新的程式設計範式。在 Software 1.0 里,程式設計師寫程式碼。在 Software 2.0 里,程式設計師準備資料和目標函數,然後讓最佳化演算法(梯度下降)去搜尋出一組神經網路權重。“ Software 2.0 是用一種更抽象、對人類更不友好的語言寫成的,比如神經網路的權重。沒有人參與編寫這些程式碼,因為權重的數量實在太多了(典型的網路可能有幾百萬個權重),直接用程式碼編寫已經不可能。換句話說,訓練過程就是程式設計過程,資料集就是原始碼。他在文章中列了一長串 Software 2.0 已經「吃掉」Software 1.0 的領域:圖像識別從手工特徵工程變成了深度摺積網路,語音識別從高斯混合模型變成了端到端神經網路,機器翻譯從基於短語的統計方法變成了 Transformer 架構,圍棋從手寫評估函數變成了 AlphaGo Zero 的自我對弈。而 Software 2.0 的好處在於:計算圖是同質的(主要就是矩陣乘法),方便硬體最佳化。執行階段間可預測,沒有死循環。不需要動態記憶體分配,不會記憶體洩漏。而且在很多領域,它的表現已經遠超人類手寫的方案。在文章末尾,Karpathy 當時預言,當我們最終造出 AGI 的時候,它一定是用 Software 2.0 寫的。這個預言可以說是非常成功了,只不過在 2026 年的今天看來……好像只說對了一半,因為:03. 3.0 來了Karpathy 自己承認,Software 2.0 的文章寫得太早了,當時 GPT 還沒出現,Transformer 才剛剛發表。他沒有預見到一個東西:大語言模型。Software 2.0 的程式設計方式是:準備資料,設計網路結構,訓練。這個過程需要大量的機器學習專業知識,需要 GPU 叢集,需要幾周甚至幾個月的訓練時間。門檻極高。三代軟體演進而 Software 3.0 的程式設計方式,則完全不同。你寫一段 prompt,給模型一些上下文,它就執行了。不需要訓練,不需要梯度下降,不需要標註資料。你用自然語言「程式設計」,用 context window 作為「記憶體」,用工具呼叫作為「系統呼叫」。LLM 成了一個新型的計算直譯器,而 prompt 就是它的原始碼。Karpathy 在這次 AI Ascent 上把三代軟體做了一個清晰的總結:Software 1.0:人寫程式碼Software 2.0:神經網路用資料訓練出來Software 3.0:通過 prompt、上下文、Agent、工具、記憶和驗證來程式設計context window 成了新的程式設計介面。04. MenuGen 的例子Karpathy 舉了一個他自己做的項目:MenuGen。想像一下這個場景:你走進一家餐廳,拍了一張菜單照片,然後一個 App 自動識別出每道菜的名字,搜尋菜品圖片,重新排版生成一個帶圖片的漂亮菜單。用傳統方式做這件事,流程大概是這樣:先用 OCR 識別文字,再用 NLP 提取菜名,然後呼叫圖像搜尋 API,最後寫前端來重新排版。至少得寫幾百行程式碼,可能還需要一兩天。而 Karpathy 發現,直接把照片扔給 Gemini,讓它在原圖上疊加菜品圖片,整個中間層的 App 都變得多餘了。MenuGen:中間層消失了這就是 Software 3.0 最具顛覆性的地方:有些應用不是被做得更快了,是直接被模型的原生能力吞掉了。“ 不要只問 AI 能幫你更快地建構什麼。要問:AI 讓什麼變得不再必要。05. Vibe Coding 到 Agent Engineering「Vibe Coding」這個詞是 Karpathy 自己在 2025 年初造的,見:傳奇音樂製作人Rick Rubin將《道德經》魔改成Vibe Coding版《程式設計之道》背後的故事。當時 AI 程式設計工具剛起步,他用這個詞來形容一種新的開發方式:不看程式碼細節,憑直覺和自然語言跟 AI 協作,「感覺對了就行」。然後,這個詞火了,火到他自己都沒想到。但 Karpathy 這次想說的是:Vibe Coding 僅僅只是熱身,而已。2025 年 12 月,他說自己經歷了一個「翻轉」。從自己寫 80% 程式碼、Agent 寫 20%,一下子變成了 20/80。在 2026 年,這個比例還在繼續傾斜。他甚至因此患上了「AI 精神病」(AI psychosis):每天對著 Agent 說話 16 個小時,Agent 跑完一個任務就想立刻開下一個,token 沒花完就覺得自己在偷懶。在這次演講中,Karpathy進一步把這種轉變拆成了兩個層次:地板與天花板Vibe Coding 抬高了地板。任何人,那怕完全不懂程式設計,都能用自然語言描述需求,讓 AI 生成一個可用的應用。這在以前不可想像。一個設計師可以做原型,一個產品經理可以做內部工具,一個學生可以做自己的項目。門檻被拉到了接近零。Agent Engineering 抬高了天花板。專業開發者使用 Agent 的方式完全不同。他們並非「讓 AI 幫忙寫程式碼」那麼簡單,他們在設計一整套系統:Agent 生成方案,Agent 編碼,Agent 測試,Agent 相互檢查。這套流程要保證沒有安全漏洞,架構要乾淨,系統要穩健。這就是 Karpathy 說的「Agentic Engineering」,智能體工程。“ Vibe Coding 抬高的是所有人能做軟體的下限。Agentic Engineering 要保住的是專業軟體過去已有的質量門檻。06. 可驗證性Karpathy 在演講中還提出了一個觀點:傳統軟體自動化的是你能規格化的東西,而 AI 自動化的是你能驗證的東西。這在我看來,其實相當關鍵。程式碼寫的對不對?跑個測試就知道了;數學上算的對不對?算一下就有了;安全上有沒有漏洞?有掃描工具可以來發現。這些領域有一個共同特徵:輸出可以被客觀評估。正因為可以驗證,這些任務才能進入強化學習的循環,才能讓模型越練越強。這也是為什麼 AI 在程式設計、數學、程式碼安全等方面進步飛速,而在「常識推理」方面總是犯一些讓人匪夷所思的錯誤。Karpathy 舉了個例子:模型可以重構一個十萬行的程式碼庫,可以發現零日漏洞,但它也會告訴你,「你的車在 50 米外的洗車店,建議步行過去」。這種現象叫做「鋸齒狀智能」(jagged intelligence)。鋸齒狀智能能力曲線並非平滑上升,有高峰,也有斷崖。高峰出現在實驗室有資料和獎勵訊號覆蓋的領域,斷崖出現在訓練分佈之外的地方。Karpathy 在事後的推文進一步進行瞭解釋:鋸齒狀分佈不僅與可驗證性有關,還和經濟學有關。收入和市場規模(TAM)決定了前沿實驗室在強化學習訓練中選擇覆蓋那些領域。“ 你要麼在資料分佈之內,在 RL 的軌道上飛馳。要麼在軌道之外,拿著砍刀在叢林裡開路。好比 Claude 能重構十萬行程式碼,因為有人花了錢讓它訓練這個能力。但「怎麼去洗車」這種問題,沒人付錢去訓練,也不是模型的重點了。這其實不是智能的問題,是經濟分配的問題。而對創業者來說,對應的機會則是:找到那些可以構造驗證環境、但還沒被大實驗室的強化學習覆蓋到的領域。如果你能自己設計獎勵函數,即便主流模型沒有針對性最佳化,你也能通過微調獲得顯著優勢。07. HarnessKarpathy 還聊到了一個概念:harness(套件/腳手架)。這個詞最近在 Agent 技術中特別火熱。我之前也專門寫過一篇文章《模型不是關鍵,Harness 才是》來介紹。Harness 概念最早是 HashiCorp 聯合創始人 Mitchell Hashimoto 在今年 2 月提出的。他在用 AI 做 Ghostty 項目時總結出一條原則:“ 每當你發現 Agent 犯了一個錯誤,你就花時間去工程化一個解決方案,讓它再也不會犯同樣的錯。後來包括 Cursor,OpenAI,Anthropic 等也紛紛發表了關於 Harness 的工程部落格。比如 Anthropic 的博主中討論到的核心問題是:AI Agent 如何在多個上下文窗口之間保持進度?他們的方案是:初始化 Agent 搭建環境、建立進度檔案(claude-progress.txt)、建立基準 commit。執行 Agent 逐個完成功能,每次新的 context window 開始時,先讀 git log 和進度檔案,接著上一輪繼續。這就像是給 Agent 寫了一份交接文件。而 Karpathy 的觀點則更為激進:未來的軟體應該為 Agent 重寫,完全不用考慮人類使用者。現在的軟體介面是給人用的,有按鈕、有菜單、有滑鼠。但 Agent 不需要這些。Agent 需要的是:機器可讀的介面、明確的權限聲明、可分解的工作流、清晰的指令格式。他在推文中還舉了一個小例子:為什麼還要寫複雜的 .sh 安裝指令碼?你完全可以用一個 .md 檔案,用英文把安裝步驟寫清楚,然後告訴使用者「把這個檔案給你的 LLM 看就行」。LLM 作為高級直譯器,可以智能地根據你的系統環境調整安裝過程,遇到問題也能內聯偵錯。用 .md 替代 .sh,替代 .py 和 .go 等等,也是我最近的用法。08. 人的位置說了這麼多 AI 和 Agent,Karpathy 倒也沒忘了說回人類自己。他的判斷是:理解力是不可外包的。Agent 可以調 API,可以寫程式碼,可以做測試。但有幾件事它確實還做不了:系統規格設計:比如使用者系統應該用穩定的 user ID 而不是信箱地址來關聯資金,這種判斷需要理解業務邏輯,需要經驗,需要對後果的預見。概念理解:你需要真正懂張量是什麼、記憶體檢視怎麼工作、儲存機制背後的原理,而不只是知道 API 的名字。否則你無法判斷 Agent 寫的程式碼是不是在做正確的事。品味:Agent 寫的程式碼經常「能跑但很醜」。它通過了所有測試,功能也對,但架構一團糟、命名一塌糊塗、複雜度失控。你需要知道什麼是好的設計。“ 你可以外包你的思考,但不能外包你的理解。理解力不可外包如果你不理解系統在做什麼,你就沒辦法在 Agent 犯錯的時候知道它錯在那裡。而 Agent 一定會犯錯。我有時也會,在對方回答我嚴肅的工作問題時說“AI 認為……”時,會打斷他說:不要“AI 認為、AI 的判斷”,要“你認為、你的判斷”。09. 三代軟體回看這三代軟體範式的演進,其中的主線是:人類參與的方式在不斷變化。Software 1.0 時代,程式設計師是作者。每一行程式碼都是他親手敲出來的,邏輯是他設計的,bug 是他修的。他對整個系統有完全的控制權,也承擔全部的責任。Software 2.0 時代,程式設計師變成了教練。他不再直接寫邏輯,而是準備訓練資料、設計網路結構、調整超參數,然後讓最佳化演算法去搜尋解決方案。他的工作從「告訴機器怎麼做」變成了「給機器看該怎麼做」。Software 3.0 時代,程式設計師變成了指揮官。他不需要準備資料,不需要訓練模型,他只需要用自然語言描述意圖,給出上下文,然後指揮一群 Agent 去執行。他的工作從「給機器看」變成了「告訴機器要什麼」。從 how 到 show 到 what。作者→教練→指揮官但這條主線的另一面,則是:每一代轉移,人類失去的是執行細節的控制,獲得的是更高層次的槓桿。就像 Karpathy 在先前的播客裡說的:以前焦慮的是 GPU 空閒,現在焦慮的是 token 沒花完。以前的瓶頸是計算資源,現在的瓶頸是人。你控制多少 token 吞吐量,決定了你能做多少事。在推文最後,他還拋出了一個更遠的展望:全神經計算(fully neural computing)。他設想的未來是,絕大多數計算由神經網路處理,而傳統的 CPU 反而成了「協處理器」,只負責一些輔助任務。這也算是和他 2017 年 Software 2.0 文章末尾的預言遙相呼應了,當年他說 AGI 一定是 Software 2.0 寫的。現在看來,他可能覺得 AGI 更可能是 Software 3.0 催生的,在一個 LLM 為主、傳統計算為輔的全新架構上運行。10. 3.0 時代在我看來,Karpathy 這次沒有講太多「未來暢想」。他講的基本都是,已經發生的事。Software 3.0 並非只一個概念,也不是一個預測,如果你能讀到這個帳號的這篇文章,我想你很可能,早已置身其中,感同身受了。Anthropic 今年發的《2026 Agentic Coding Trends Report》裡提到,2025 年 agentic AI 改變了大量開發者寫程式碼的方式,而 2026 年將是這種變革開始重構整個軟體開發生命周期的一年。而我自己,也大概是從 2025 年 下半年或什麼時候開始,就沒再手寫過一行程式碼了,而是每天對著 Agent 說話數分鐘甚至數小時……Software 3.0 時代,並非即將到來、馬上要來。而是,就在當下。 (AGI Hunt)