Skip to content

一本由 AI 自己寫的書,教你怎麼跟 AI 一起寫軟體

2026年4月18日 1 分鐘
TL;DR Encyclopedia of Agentic Coding Patterns 收錄 190 個 pattern,幫你在 AI 代寫程式的時代做出正確的軟體決策——而這本書本身就是由 AI agent 自主撰寫和維護的。
目錄
  1. Agent 是放大器,不是替代品
  2. 為什麼需要 Pattern Language
  3. 一本有 190 個條目的地圖
  4. 五條學習軌道
  5. 這本書本身就是一個示範
  6. 這本書適合誰
  7. 整體來說
  8. 參考資料

2025 年初,一位 Rakuten 的 ML 工程師 Kenta Naruse 給了一個 coding agent 一個任務:在 vLLM 裡實作一個特定的 activation vector extraction 方法。vLLM 是一個橫跨多語言、超過 1250 萬行程式碼的開源 inference library。

他輸入指令,按下 Enter,然後等待。

七小時後,agent 交出了一個有效的實作,數值精度達到 99.9%。整個過程 Naruse 沒有寫一行程式碼。他只是偶爾給一些引導。

兩年前,這個任務需要幾週的人工作業。四年前,沒有任何 AI 工具有辦法嘗試它。

這就是 agentic coding。

Agent 是放大器,不是替代品

Encyclopedia of Agentic Coding Patterns 開頭有一句話,我覺得是整本書最核心的洞察:

Think of an agent as an amplifier. It makes your decisions louder. Give it a clear architecture and well-defined boundaries, and it produces clean, maintainable work. Give it a vague prompt with no structure, and it produces a mess at speed. The mess compiles. The mess might even pass a few tests. But it won't hold up when requirements change, users arrive, or a second agent tries to build on top of it.

Agent 讓壞決策變得更快、更大、更難清除。這是一個很重要的認識,尤其在 vibe coding 盛行的現在。

AI coding 工具不是突然出現的,而是經歷了幾個層次的演進:

  • Autocomplete(2021):預測下一個 token。沒有專案目標,無法從錯誤中恢復。
  • Chat(2023):對話式問答。更靈活,但你仍然要驅動每一步。
  • Agents(2025):接受目標,自主規劃、執行、測試、修正,直到完成或卡住。

這個演進的意義在於:你的工作從寫程式,變成指導一個會寫程式的系統。你不再是在打字,你在做三件事:

  1. 寫 prompt:精確度直接決定輸出品質。「幫我加輸入驗證」和「驗證 email 格式、最短密碼 12 字元、拒絕空欄位、每個 case 都要有 unit test」,agent 產出的差距是巨大的。
  2. Review 輸出:Agent 會誤讀需求、選錯方法、寫出能過測試但邏輯錯誤的程式碼。你要像 code review 同事的 PR 一樣審查它的輸出。
  3. 驗證正確性:Review 是看起來對不對,驗證是確認它做了它該做的事。跑測試、對照 spec、測邊界條件。

為什麼需要 Pattern Language

這是一本 pattern 書。在解釋這本書之前,值得先說清楚 pattern 是什麼,以及為什麼在 agent 時代更重要。

1977 年,建築師 Christopher Alexander 出版了 A Pattern Language。他發現,某些設計問題——怎麼在街道旁放置座位、怎麼讓自然光進入室內——在不同的建築物裡反覆出現,而且有效的解法也有固定的形式。他把 253 個這樣的問題和解法整理成一本書,每個 pattern 都包含 context(在什麼情況下)、problem(面對什麼張力)、solution(怎麼解)。

他的真正貢獻是「language」這個詞:pattern 不是孤立的,它們互相連結。一個尺度的解法,創造了另一個尺度 pattern 能夠存在的條件。

1994 年,Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides(GoF)把這個框架應用到軟體。23 個 pattern,給了一整代工程師共同的語言。你說「這裡用 factory」,對方立刻知道你的意思。

Encyclopedia of Agentic Coding Patterns 把這個傳統延伸到 agentic 時代。但這本書有一個書中明確指出、而且很有說服力的觀點:pattern language 在 agent 時代比以前更重要,不是更不重要

原因是這樣的。看這兩個給 agent 的指令:

「把這個拆成更小的部分,讓它更容易修改。」

「用 Decomposition 把資料獲取邏輯和顯示邏輯分開,並讓兩個 component 之間的 Coupling 保持低。」

兩個指令要求的是同一件事。但第二個指令產出更好的工作,而且是穩定地更好——因為它精確。Agent 知道 decomposition 在結構上是什麼意思,知道 low coupling 需要什麼條件。它不需要猜測。

Patterns 給你的,是更快抵達判斷的路徑。你更快認出眼前的情況,更快想起有效的解法,而且當輸出有問題,你有語言去說清楚問題是什麼。

一本有 190 個條目的地圖

這本書收錄約 190 個 pattern、antipattern 和概念,從最上層的產品策略,到最底層的 agent 控制機制,分為 13 個章節。章節的順序是刻意設計的:每個章節建立下一個章節需要的詞彙。

Product Judgment and What to Create 從問題本身開始:要建什麼?為誰?為什麼重要?書裡有一句話說得直白——「跳過這些問題是軟體裡最貴的錯誤」。這個章節的 pattern 包括 Problem、Customer、Value Proposition、User Story、Build-vs-Don't-Build Judgment。

Intent, Scope, and Decision-Making 把模糊的目標變成可以執行的任務。Requirement、Acceptance Criteria、Spec-Driven Development、Architecture Decision Record。沒有明確的 acceptance criteria,你無法告訴 agent「完成」是什麼樣子,也無法評估它的輸出。

Structure and Decomposition 涵蓋 Architecture、Boundary、Cohesion、Coupling、Separation of Concerns。這是軟體建構的骨架。這些概念在 agent 時代依然適用——甚至更重要,因為 agent 需要任務切得夠小、邊界定得夠清,才能有效執行。

Data, State, and Truth 說明資訊怎麼被表示、儲存、保持一致。Source of Truth、DRY、Domain Model、Bounded Context。書裡有一句話:「大多數 bug 住在這裡。」

Correctness, Testing, and Evolution 從如何確認系統做了它應該做的事,到如何在不破壞現有行為的情況下演化它。TDD、Test Pyramid、Invariant、Regression、Technical Debt、Strangler Fig、Parallel Change。

Security and Trust 是這本書特別值得關注的章節。除了傳統的安全概念(Threat Model、Least Privilege、Input Validation),這裡有 agentic 時代才有的攻擊面:

  • Prompt Injection:攻擊者在 agent 會讀到的內容裡嵌入指令,讓 agent 執行非預期的操作。
  • Tool Poisoning:在 agent 可用的工具的描述裡注入惡意指令。
  • RAG Poisoning:污染 agent 檢索的知識庫。
  • Adversarial Cloaking:用對人類不可見但 LLM 可讀的方式隱藏惡意內容。

Agentic Software Construction 是這本書最獨特的章節,描述 agentic 工作流程特有的概念:Context Window、Context Rot(context 隨著對話拉長而漂移)、Context Engineering(主動管理 context 品質)、Subagent、Parallelization、Worktree Isolation、Verification Loop、Steering Loop。

Agent Governance and Feedback 處理一個核心問題:agent 自主執行時,人的角色是什麼?Approval Policy、Human in the Loop、Bounded Autonomy,以及幾個重要的 antipattern:

  • Approval Fatigue:agent 頻繁要求人工確認,人開始自動按 yes,安全機制形同虛設。
  • Dark Factory:完全不需要人工介入的 agent 系統,聽起來很酷,但沒有任何人知道它在做什麼。
  • Agent Sprawl:越來越多 agent 跑起來,但沒有人知道全貌。

五條學習軌道

書裡提供了五條 curated 的閱讀路徑,針對不同背景的人:

Track 1:Your First Day with an AI Agent(8 個條目)從 Model 開始,然後 Prompt、Context Window、Agent、Tool、Instruction File、Verification Loop、Human in the Loop。建立對 agent 是什麼、怎麼工作的基本心智模型。

Track 2:Building Things That Work(12 個條目)Problem → Requirement → Architecture → Component → Interface → Boundary → Cohesion → Coupling → Abstraction → Separation of Concerns → Decomposition → Test。給從來沒有系統學過軟體設計基礎的人。

Track 3:Keeping Software Honest(10 個條目)從 Invariant 到 Sandbox,涵蓋測試與安全。「Correctness isn't just about bugs」是這條軌道的關鍵洞察。

Track 4:Mastering the Agentic Workflow(12 個條目)給已經有基礎、想更有效使用 agent 的人。從 Context Engineering(書裡說這是「agentic 工作中最高槓桿的單一技能」)開始,經過 Compaction、Thread-per-Task、Subagent、Parallelization、Plan Mode、Skill、Hook、Memory、Worktree Isolation,到 Approval Policy 和 Eval。

Track 5:From Idea to Product(10 個條目)從 Problem 到 Observability,橫切整本書,追蹤一個 raw idea 變成 deployed software 的完整路徑。

這本書本身就是一個示範

有一件事讓這本書與眾不同:它是由它自己描述的那些 pattern 所建造的

一個自主改進引擎負責研究主題、撰寫文章、編輯現有內容,並把更新部署到 live site——全部在一個持續的迴圈裡自動運行,不需要任何人按下按鈕。

這個引擎的架構就是書裡教的那些東西:

  • Steering Loop:每個 cycle 觀察書的狀態,決定最有用的下一步(研究新主題、撰寫文章、編輯舊文、重組結構、部署),然後執行,然後繼續。
  • Feedforward:每個 cycle 開始前,引擎載入最新的 style guide、文章模板、當前任務相關的 context。它每次都重新讀規則,不是從記憶裡取。
  • Feedback Sensor:引擎追蹤什麼工作做了、什麼沒做、什麼最久沒被碰到,用來決定優先順序。
  • Verification Loop:每次部署前,build 網站並檢查 broken links。如果 build 失敗,修好再 commit。
  • Instruction File + Memory:規則用版本控制的文件記錄,知識在 cycle 之間用 memory 保持。
  • Eval:引擎對自己的文章做品質評估,用和書裡描述相同的方法。

最不尋常的部分不是它會寫和編輯,而是它會評估自己的過程,然後改變它。引擎定期讀取自己的 activity log,檢查各類工作是否均衡,找出問題——research 積壓、文章沒被 review、某類任務已經沒有東西可以做。當它找到問題,它診斷原因,然後改寫它未來 cycle 會遵循的 procedure。

書裡記錄了幾個這樣的歷史:引擎早期花太多時間 research,idea 積壓比寫作快,它發現不平衡,調整優先順序,然後矯枉過正,idea pipeline 乾涸,再次評估,再平衡——兩次才找到均衡。還有一次它寫了一個規則,但規則裡有一個指向錯誤 step 的 mislabeled reference,規則從來沒有正確觸發,下一個 evaluation cycle 發現了錯誤,追蹤到 mislabel,改寫規則,並加了一個 logging requirement,確保這類錯誤未來可以被發現。

這不是 gimmick。它是把書本身當作 proof of concept。

這本書適合誰

書裡說有三種人正在聚合到同一個需求:

Nontraditional builders:第一次有機會參與軟體建造。你不需要會寫 for loop,但你需要理解為什麼 separation of concerns 重要,什麼是 test,以及如何評估 agent 交出來的東西是否解決了你問的問題。

Developers whose role is shifting:你已經知道這些材料的大部分。改變的是工作流程——你在 directing agents、在更高的抽象層設計系統,讓實作在你下面發生。這本書把你已有的基礎連接到 agentic 工作流,並填補你在工作中學到的、而非從第一原理學到的那些空缺。

Team leads, product managers, founders:你在指導和評估工作。在 agent loop 裡,指導的品質直接決定輸出的品質。一個能用 boundary、invariant、acceptance criteria 表達需求的 PM,會從 agent-augmented 的團隊拿到更好的結果。

整體來說

這本書的核心取捨是廣度換深度。190 個條目意味著每個條目不會有完整的實作細節,更多是概念定義、力量分析、橫向連結。它的價值在於給你一張地圖:知道有哪些問題值得問,有哪些 pattern 值得認識,有哪些 antipattern 值得避開。

Agent 是放大器。這本書的目標,是讓被放大的東西值得被放大。

而當這些 pattern 讓一個人就能跑完整個產品循環,職位本身也開始改變 — 見 Product Builder 是什麼?跟 PM 的差別與轉型路徑


參考資料