012 · 打造能自我優化的 AI agent
講者以 Nearform 的專案經驗,說明如何借助 coding agent 自動優化其他 AI agent,分別處理 evals 表現差與真實用戶回饋不佳兩類問題。
原標題:Agents Building Agents - Alfonso Graziano, Nearform
重點摘要
- 用 evals 抓兩類失敗講者把 agent 常見的問題分成兩類──在 golden dataset 這種 evals 上表現差,以及在真實使用者的 live data 上表現差,整場圍繞這兩類問題分別給解法。
- golden dataset 是非決定性系統的測試集跟領域專家一起定義輸入與期望輸出(可能是答案,也可能是「該呼叫哪個工具」),再配上 scorer 算出準確率,作為改進的基準線。
- AutoAgent:讓 coding agent 自動優化 agent受 Andrej Karpathy 的 AutoResearch 啟發,講者做出 AutoAgent,讓 coding agent(示範用 Claude Code)自動跑 evals、改程式碼、寫新提示詞、造新工具;一個沒有工具的 naive agent 在約 10 輪迭代內準確率衝到 83%,一個已經被人力優化過的正式 agent 也再提升 10%。
- 靠 branch 與 report 記錄每一輪迭代每一輪開新 branch、提假設、跑 evals,依結果決定沿用或退回上一個 branch,並把過程寫成 report.md 與全域 memory file,方便事後追溯哪個假設有效。
- live data 回饋走另一條流程收集使用者的讚/倒讚留言與 SME 對 trace 的標注,累積到一定量後用 agent workflow 做失敗模式分群與根因分析,產出報告後仍要人工分流,決定修現在、修以後還是不修。
- 背後撐著的是 harness engineering講者把整套做法收在這個概念下,核心是給 coding agent 足夠的限制、任務、回饋迴圈與治理,包括 spec-driven development、品質關卡與 observability。
時間軸
時碼點下去會跳到影片的那一段。
| 時碼 | 段落 | 重點 |
|---|---|---|
| 00:00 | 開場 | Alfonso Graziano 是 Nearform 的技術主管,也是 O'Reilly 書籍作者;開場說明這場要講如何靠 coding assistant 與 spec-driven development,打造可靠又安全的 agent。 |
| 01:57 | Agent 三要素 | Agent 可以拆成 LLM、工具、context 三塊,跑在 agentic loop 裡;這場要處理兩類失敗:evals 表現差、live data 表現差。 |
| 03:25 | golden dataset 定義 | golden dataset 是跟領域專家一起訂出的輸入與期望輸出配對,用來在非決定性系統上當測試集,再靠 scorer 算出準確率當基準線。 |
| 05:12 | 示範 naive agent | 用 Mastra 搭一個沒有工具、只有基本指令的 naive agent,配一個「輸出有沒有包含正確答案」的 naive evaluator,一跑 evals 準確率只有 18%,幾乎全靠模型內建知識答對。 |
| 06:47 | 三個改善方向 | 常見的改善方向有三個:補齊 agent 缺的工具、修正系統提示詞、補上 context retrieval,才能讓 agent 真正查得到答案,而不是靠瞎猜。 |
| 08:18 | 引用 AutoResearch | 拋出核心問題──agent 能不能自己改進另一個 agent;舉 Andrej Karpathy 的 AutoResearch 為例,證實 coding agent 確實能自動把機器學習模型的準確率愈調愈高。 |
| 09:43 | 打造 AutoAgent | 講者依同樣的想法做出 AutoAgent,讓 coding agent 自動跑 evals、改程式碼、寫新提示詞、造新工具;一個沒有工具的 naive agent 在約 10 輪內準確率衝到 83%。 |
| 11:29 | AutoAgent 運作機制 | coding agent(示範用 Claude Code)負責寫 target agent 的程式碼,再由 target agent 的 evals 與 trace 回饋給它;人類只負責一開始設好邊界,例如不准為了過關而改 golden dataset。 |
| 12:56 | 迭代與退回機制 | 流程是先寫一份 markdown 格式的 optimization job(目標、對象、指標),跑一次 evals 建 baseline report,之後每輪迭代都開新 branch、提假設、跑 evals,依結果決定沿用還是退回上一個 branch。 |
| 18:04 | 正式 agent 案例 | 在一個真實的正式 agent 上跑約 10 輪迭代,準確率一路推進到 86%,靠的是抓邊界案例、改系統提示詞、補工具描述、修工具邏輯,並不是取巧過關。 |
| 18:53 | 第二類問題 | 第二類問題是 agent 在 live data(真實使用者與 SME 提供的資料)上表現不好,解法跟 evals 那套不一樣。 |
| 19:33 | 收集使用者回饋 | 完整流程從使用者開始:先讓使用者實際用系統、收集所有 trace,再請使用者給讚/倒讚加留言的回饋,或讓 SME 直接進平台標注某筆 trace 該有的表現。 |
| 23:14 | 分群與根因分析 | 累積到一定量的 trace 後,用講者做的一個 skill 指揮 coding agent 做失敗模式分群,再做根因分析──因為 coding agent 能同時看到 target agent 的程式碼與每筆 trace 的細節,最後產出一份含正負回饋、分群、根因與修法建議的 markdown 報告。 |
| 25:20 | 人工分流決策 | 報告出來後還沒結束,要跟 SME 一起分流:哪些現在修、哪些以後修、哪些不修;確定要修的失敗模式會被寫進 golden dataset,讓 eval suite 以後能立刻抓到同類回歸。 |
| 27:39 | 收尾:harness engineering | 講者把整套方法收在 harness engineering 這個概念下:給 coding agent 足夠的限制、任務、回饋迴圈與治理,包含 spec-driven development、品質關卡(linting、單元測試、evals、LLM code review)、context engineering 與 observability。 |
值得記的話
名詞與人物
| Nearform | 講者任職的服務型公司,主力協助客戶做 AI agent 專案。 |
|---|---|
| golden dataset | 跟領域專家一起訂出的輸入與期望輸出配對,用來在非決定性系統上當測試集,再靠 scorer 算出準確率當基準線。 |
| Mastra | 講者示範時使用的 agent 開發框架,用來搭建這場的 naive demo agent。 |
| AutoResearch | Andrej Karpathy 做的迴圈,自動改機器學習程式碼與超參數,證實 coding agent 能自行把模型準確率調高。 |
| AutoAgent | 講者依 AutoResearch 的想法做出的系統,讓 coding agent 自動跑 evals、改 target agent 的程式碼、提示詞與工具。 |
| Claude Code | 講者示範中使用的 coding agent,負責寫 target agent 的程式碼,也讀取 eval 與 trace 回饋來自我修正。 |
| harness engineering | 講者收尾提出的概念,指打造一個讓 coding agent 能可靠工作的環境:給足限制、任務、回饋迴圈與治理。 |
延伸
- 講者提到自己是 O'Reilly 書籍《Learning AI Native Software Engineering》的作者,但沒有進一步介紹書的內容。
- spec-driven development 被列為 harness engineering 的第一根支柱,講者只用一句話帶過,沒有展開細節。
- 品質關卡(linting、單元測試、evals、LLM code review)被提到是 harness engineering 的一環,但沒有逐項說明怎麼落地。