Agentic Engineering Patterns

Agentic Engineering Patterns 是 Simon Willison 持續更新的 coding-agent 工程 pattern 集合;AIHAO 的導讀將它整理成一條核心判斷:寫程式碼變便宜了,好程式碼沒有。它不是某個產品的操作手冊,而是把測試、Git、subagent、程式碼理解與人工審查重新組合成能隨工具演進仍可重用的工程紀律。

核心主張

Coding agent 降低的是把可運作程式碼生出來、重構、補測試、寫文件與做探索性原型的成本;仍然昂貴的是確認它真的能動、解的是對的問題、錯誤可預期、文件與行為一致,以及結果簡單、可維護、安全且值得留下。產出變便宜後,工程師的工作不是接受更多未驗證的 code,而是把品質與判斷外部化成可檢查的證據。

這讓 code-abundance-product-taste 的「大量候選後再取捨」多了一個工程層:產品品味決定哪個方向值得做,Agentic Engineering Patterns 則要求留下的變更能被測試、理解、審查與維護。對 ai-native-engineering-organization 而言,人的責任也從逐行輸入移到問題定義、驗證、整合與長期 ownership。

可重用 patterns

  1. 先跑測試,再開始改動:用 First run the tests 讓 agent 先發現專案的測試入口、規模與既有慣例;新增行為則用 Use red/green TDD,確認測試先失敗,再做到通過。
  2. 自動測試之外保留手動證據:讓 agent 用 curl、CLI、瀏覽器或截圖探索實際行為;用能同時記錄指令與真實輸出的工具,避免把「希望發生」寫成「已發生」。新發現的失敗再回填永久測試。
  3. 把認知債當成品質債處理:如果人不理解 agent 產出的核心程式碼,就難以規劃下一個變更。線性 walkthrough、引用實際程式碼片段的說明文件,以及必要時的互動式動畫,都是讓系統重新可推理的還債方法。
  4. 用 subagent 保護頂層 context:subagent 適合處理搜尋、探索與可分離的高 token 工作,不是為了把每個小任務都拆成代理群。拆分前先問是否真的能降低頂層 context 負擔。
  5. 把 Git history 當成給未來的故事:用小而可審查的 commit / PR 保留目的、測試證據與重要決策;agent 可以處理 bisect、整理歷史與拆分變更,但人仍要確認故事是否忠實且足以支援後續維護。
  6. 拒絕未驗證的 agent PR:把幾百行未經本人執行與理解的程式碼交給別人,等於把真正工作轉嫁出去。好的 PR 應包含可重現的測試、手動檢查、截圖或其他與風險相稱的 evidence。

採用邊界

這套 pattern 適合已經有 repo、測試或可觀察執行結果的工程工作;它不能替代需求澄清、資安隔離、權限設計或高風險動作的人類核准。Subagents、非同步 session 與大量 prototype 只有在結果能被獨立驗證時才值得擴大,否則只是更快累積 comprehension debt。

因此它與 harness-engineering-for-ai-coding 的分工是:Agentic Engineering Patterns 提供工程師可呼叫的工作習慣與 quality patterns;harness 提供 sensors、guides、停止條件與修正訊號,讓這些習慣不只停留在 prompt 裡。它也與 loop-engineering 相連:loop 負責反覆推進,pattern 負責定義什麼證據足以通過每一輪;與 ai-code-validation-bottleneck 相連:產碼速度上升後,驗證、整合與理解才是主要瓶頸。

對 AI Ark wiki 的意義

這篇導讀本身也是一個低噪音 ingest 的例子:原文是可持續更新的 Draft guide,wiki 保留來源狀態與 attribution,只萃取能跨來源重用的 pattern,不把 Simon 的個人偏好或單一工具效果當成通用 benchmark。對 aiark-loop-engineering 而言,最小規則是「raw 先保存、derived claim 要有來源、每次 ingest 都留下可驗證 evidence」,而不是因為產碼與擷取便宜就無限擴張頁面。