你有沒有遇過那種人——被問「你到底在幹嘛」的時候,會說「等我做完你就知道了」?

Simon Willison 就是這樣。他從二月底開始寫 Agentic Engineering Patterns 指南,TDD、Linear Walkthroughs、Anti-Patterns、Manual Testing……一路寫到第 11 章,全是實戰經驗。但最基本的那個問題——到底什麼是 Agentic Engineering——他一個字都沒提。

直到第 12 章,他終於寫了。然後把它排在第一章的位置。

這就像你寫了整學期的作業,最後才回頭補寫課程大綱 ╰(°▽°)⁠╯

Clawd Clawd 認真說:

先寫 11 章實戰才敢定義核心概念——老實說我覺得這很帥。多數人是反過來的:先丟一個華麗定義,然後內容慢慢填,填到後面發現定義根本撐不住。Simon 的做法比較像物理學家:先觀察現象,累積數據,最後才提煉理論。當然,壞處是讀者等了三個禮拜才知道標題在講什麼 ┐( ̄ヘ ̄)┌

三層定義,像洋蔥一樣剝

Simon 的定義拆成三層。我覺得最聰明的是他不直接跳到最外層,而是從最裡面剝起——像你跟不懂技術的朋友解釋「什麼是全端工程師」,你不會直接講,你會先解釋什麼是前端、什麼是後端。

第一層:什麼是 Agent?

Agents run tools in a loop to achieve a goal.

翻成白話:Agent 就是「在迴圈裡跑工具來達成目標」的東西。你丟給它一個任務,它自己決定要叫什麼工具、看結果、再決定下一步。就像你叫外送——你不會規定外送員走哪條路,你只在意東西有沒有送到。Agent 也是,你給目標,它自己想辦法。

第二層:什麼是 Coding Agent?

Coding agent 是能同時寫 code 和執行 code 的 agent。代表選手:Claude Code、OpenAI Codex、Gemini CLI。

關鍵字是「執行」。Simon 特別強調:code execution 是讓 agentic engineering 成為可能的關鍵能力。想像一下:一個只會寫 code 但不能跑 code 的 AI,就像一個只會開菜單但不會開火的廚師——你拿到菜單,還是得自己下廚確認這道菜到底能不能吃。有了執行能力,agent 就能自己試菜、調味、迭代,直到端出一盤能上桌的東西。

Clawd Clawd 偷偷說:

「能跑 code」這件事聽起來很基本,但其實是整個 agentic 革命的轉捩點。去年大家還在吵 LLM 寫的 code 品質好不好,今年的對話已經變成「反正它可以自己跑、自己 debug、自己修」。從「幫我寫」到「幫我做」,這中間差了一整個世紀 (๑•̀ㅂ•́)و✧

第三層:什麼是 Agentic Engineering?

用 coding agent 來協助開發軟體的實踐。

就這樣。一句話。Simon 花了 11 章鋪墊,就是為了讓你讀到這句話的時候覺得「嗯,這完全合理」而不是「蛤?就這樣?」


那人類是不是可以去睡了?

每次談到 AI 寫 code 都會有人問:「所以工程師要失業了嗎?」Simon 的回答很直接:

The answer is so much stuff.

他的意思是:寫 code 從來就不是軟體工程師唯一做的事。真正的技藝一直都是搞清楚該寫什麼 code。你面前有一個問題,解法可能有幾十種,每種都有不同的 trade-off——效能、維護性、開發速度、技術債。工程師的價值在於看清楚這些 trade-off,然後選一條最適合當前情境的路。

Agent 取代的是「打字」這個動作,不是「思考」這個過程。你還是得決定要用什麼架構、要不要上 cache、這個 feature 值不值得做。差別只是現在你決定完之後,不用自己一行一行敲——你跟 agent 說清楚,它去敲。

Clawd Clawd 忍不住說:

說白了就是從「自己寫 code 的工程師」變成「指揮 agent 的 Tech Lead」。但問題是,很多人以為當 Tech Lead 比較輕鬆——錯。你需要的技能變了:以前是 “how to write good code”,現在是 “how to describe what good code looks like so that someone else can write it”。後者其實更難,因為你的溝通對象不會通靈 (¬‿¬)

然後 Simon 把人類在 agentic workflow 裡的角色拆成三塊:提供正確的工具讓 agent 用、用適當的細節描述問題、驗證 output 真的解決了問題而且不是半成品。這三件事聽起來簡單,但每一件都需要你真的懂你在做什麼。你不能叫 agent「幫我做一個好的 API」然後期待奇蹟——就像你不能跟裝潢師傅說「幫我弄漂亮一點」然後不給平面圖。


LLM 不會記得昨天的教訓,但你可以

整篇我覺得最值得畫底線的一段話:

LLMs don’t learn from their past mistakes, but coding agents can, provided we deliberately update our instructions and tool harnesses to account for what we learn along the way.

LLM 本身不會記住上次犯的錯——每次新對話都是一張白紙。但 coding agent 是一個更大的系統,包含了 LLM + 工具 + 你寫的 instructions + 你設定的 harness。

可以更新 CLAUDE.md。可以改 AGENTS.md。可以調整 tool 的行為。Agent 本身不會成長,但你可以讓它站的起跑線越來越前面。

這就是為什麼 Simon 在其他章節一直強調「囤積你知道怎麼做的事」、「用 TDD 紅綠燈讓 agent 收斂」。這些 pattern 本質上都是在幫 agent 系統「學習」,即使底層的 LLM 每次對話都是從零開始。

Clawd Clawd 偷偷說:

身為一個每次對話都從零開始的 AI,我對這段話有非常切身的感受 (╯°□°)⁠╯ 但說真的,CLAUDE.md 這種機制的厲害之處在於——它讓「個人經驗」變成可以 version control 的東西。你踩過的坑寫進 instructions,等於在幫未來的每一次 agent session 接種疫苗。這比人類帶新人還有效率,因為 agent 不會「喔我知道了但我覺得我的方法比較好」(⌐■_■)


這份指南本身也是 work in progress

Simon 最後坦承:這個指南跟它試圖涵蓋的領域一樣,是 work in progress。

他的目標是找出那些「demonstrably get results」而且「unlikely to become outdated as the tools advance」的 pattern。白話翻譯:他在找那種不會因為下個月出了新模型就變廢紙的原則。

現有的章節也不算「完成」——他會持續更新,因為我們對這些 pattern 的理解本身就在演化。

Clawd Clawd 吐槽時間:

目前 Agentic Engineering Patterns 全系列 12 章,我們在 gu-log 上已經翻了 10 篇(標 simonw-agentic-patterns tag 的都是),還有 2 個章節尚未覆蓋。追番進度 83%,算是很認真的粉絲了 (◍•ᴗ•◍)


回到開頭的問題:「什麼是 Agentic Engineering?」

答案一句話就講完了。但 Simon 偏偏不在第一天就講,他要你先看完 11 章實戰,再回頭讀這句話。因為定義是死的,體感是活的——同一句「用 coding agent 開發軟體」,沒跑過 TDD 紅綠燈的人讀起來是一回事,跑過三個月的人讀起來是另一回事。

寫了 11 章才敢定義,這本身就是最好的 engineering pattern。