Gary
Hsieh
2026 · taipeiloading
回到文章列表
AI 趨勢軟體工程2026-05-06

Andrej Karpathy 最近開始淡化他去年自己推紅的「Vibe Coding」,轉而更常使用另一個詞:Agentic Engineering

Andrej Karpathy 最近開始淡化他去年自己推紅的「Vibe Coding」,轉而更常使用另一個詞:Agentic Engineering

Andrej Karpathy 最近開始淡化他去年自己推紅的「Vibe Coding」,轉而更常使用另一個詞:Agentic Engineering。他有一句非常值得記住的話:

“Vibe coding raises the floor. Agentic engineering raises the ceiling.”

如果說 Vibe Coding 的價值,是讓更多人降低門檻、開始能夠做 software;那 Agentic Engineering 更像是在談另一件事——如何真正把系統做進 production、做成可維護、可治理、可持續演化的工程。

這句我也很有感覺:

“You can outsource your thinking, but you can’t outsource your understanding.”

這句話某種程度上,剛好點出我過去半年很強烈的體感:如果 Vibe Coding 是「讓 AI 幫你寫東西」,那 Agentic Engineering 更像是「設計一個會持續幫你做事的系統」。像我最近持續在練習 Long-running 就是一個很好的目標,而當我越往下拆,我越覺得這件事的核心,某種程度上,越接近 DDD(Domain-Driven Design)二十年前那個老詞——Bounded Context。

Agentic Engineering 的本質

我現在的理解是:Agentic Engineering 並不只是多幾個工具、多幾個 prompt、多幾個漂亮的行話。它更像是三條非常根本的反轉,而今天大量新出現的詞——context engineering、memory、harness、eval、planner、subagent——很多時候,本質上都只是這三條反轉被逼出來的新語言。

Stateless ↔ Stateful 的反轉

過去很長一段 software engineering 的歷史,其實都在處理 state。從 local variable、instance variable、database、cache,到 distributed system,我們花了非常多年在學的事情,本質上都是:如何管理狀態、封裝狀態、控制狀態失控。換句話說,傳統工程很大一部分,是在研究:「怎麼把 state 包好。」

但 agent 時代,事情反過來了。LLM 本身通常是 stateless 的。每一次 request,本質上都像重新開始。模型不是真的記得你,它所表現出的「記憶」,很多時候其實只是外部系統(harness、memory layer、context injection)每次重新把 relevant context 塞回去。

所以我們突然進入一個新的工程命題:

「怎麼把一個沒有持續 state 的核心,包裝得像有 state。」

這也是為什麼 Context Window、Context Engineering、Memory、CLAUDE.mdAGENTS.md、Compaction、Handoff、Subagent 這些詞開始重要。它們表面上不同,但底層都在處理同一件事:state 沒有消失,而是被 externalize 到 model 外部。

Martin Fowler 團隊裡的 Birgitta Böckeler 對 Context Engineering 給出一個我覺得最精準的定義:「curating what the model sees so that you get a better result」——你不再寫 state machine,你在策劃「下一次推理該看到什麼」。以前我們主要設計的是程式內部狀態;現在我們更常設計的是——哪些資訊該被重新帶進下一次推理。

AI Agent 的時代,state 的位置改變了。

Code ↔ Architecture 的反轉

過去,Code 可以慢慢 Refactor 出架構。資深一點的工程師會先打出架構——決定資料庫、service boundary、bounded context、identity model、trade-off——然後工程師再把它實作成 code。也因此,像 ADR(Architecture Decision Record)這種東西很重要,因為架構決策往往比 code 壽命更長。

但 agent 時代開始不同。今天只要丟一句「幫我做一個股票追蹤系統」,Agent 很可能瞬間就替你決定 React、Tailwind、Supabase、folder structure……也就是說,它不只是寫 code,它同時在做 architecture decision。

而最危險的地方在於:很多時候,這些決策發生得太快,以至於我們甚至沒有真正 review(或是說,太龐大了,也不需要 line by line review 了)。這也是為什麼我越來越覺得,AI 時代的新技術債,不一定首先來自 code quality,更可能來自:「未被審視的架構決策。」

Code 可以重寫,超廉價,但錯的 bounded context、錯的 identity assumption、錯的 service ownership,通常代價更高。所以我現在覺得,ADR 這類傳統工程紀律變得超·級·重·要。因為以前主要在寫 code;現在越來越像是在:

「設計一個怎麼寫 code 的系統。」

Deterministic ↔ Non-deterministic 的反轉

傳統 software engineering 長期追求 deterministic:同樣 input → 同樣 output;同樣測試 → 同樣結果;同樣 deploy → 可重現。

但 LLM 的核心天性,就是機率模型。它有創造力,但也有漂移;它有適應性,但也可能「幻覺」。你想要它強,就必須接受某種程度的不確定性。

“Traditional software automates what you can specify. LLMs automate what you can verify.”

這句話背後代表的範式轉移非常龐大。以前常精確指定「怎麼做」;現在越來越常設計的是:「做完之後怎麼驗證。」因此,Eval、Guardrails、Reflection、Self-Verification、Sandbox、Hooks 這些詞開始變得重要。

本質上,我們不是把 non-deterministic 核心消滅,而是在它外面建立 deterministic boundary。以前 deterministic 比較像 code 本身的特性;現在 deterministic 越來越像治理層(Harness)的特性。

Bounded Context 重新變成支點

把這三條反轉放在一起看,我認為最值得注意的一件事,就是:Bounded Context 的價值正在被重新放大。因為不管 context engineering 多進步、memory system 多成熟、agent 多強,你最不能完全外包給 agent 的,通常都不是 implementation,而是「邊界」本身。

User、Billing、Identity、Notification、Analytics……這些大的 bounded context,最好仍然由人定義。因為一旦邊界切錯,agent 很可能不是幫你解決問題,而是更高速地放大問題。我甚至認為,跟 Coding Agent Planning 第一步,就是 Bounded Context 的切分,才進入 Tech Stack、Test Flow、Iteration Flow 等等。

這個觀察其實不只是我個人的體感,Sebastian Sigl 今年初寫過一篇《Bounded Contexts as Cognitive Boundaries for AI and Humans》,文中說 bounded context 的真正價值,是同時提升「人類跟 AI agent 在同一份 codebase 上的 Signal-to-Noise Ratio」。

所以我現在越來越相信:在 AI Agent 時代,人類真正保留的核心主權/護城河,是所有 Design Pattern 書在追求的目標——abstraction。抽象能力就是傳統軟體工程師的護城河,Vibe Coder 是不可能輕易超越的,因為他們無法跨過複雜度的坎。

你可以把 execution 外包。你可以把 implementation 外包。但你不能完全把 context boundary 與 abstraction 外包。

Bounded Context 是 Agentic Engineering 的第一步

“You can outsource your thinking, but you can’t outsource your understanding.”

我自己的翻譯是:

  • 可以外包 execution
  • 不能外包 abstraction

必須要有 Bounded Context 的概念,必須知道 LLM 天生無狀態。Context 是新時代的狀態設計,Harness 是新時代的 Deterministic。

理解「軟體工程」的本質,必須理解「事物」的本質。理解事物的本質,必須理解「溝通」的本質。

#AI#Agent#LLM#Hook#prompt