全部場數

049 · 七步打造更聰明的 harness

講者用同一段修 bug 任務,讓同一顆模型換上七種不同的 harness,示範表現如何從完全不能動手一路進化到能自我優化。

2026-07-0732:03Aditya Bhargava(Etsy)Agent開發工具評估安全看原片

原標題:What if the harness mattered more than the model? - Aditya Bhargava, Etsy

重點摘要

  • 好模型不代表可以省略 harness講者觀察到業界流行「模型夠強、harness 可以做簡單」的說法,但他認為方向反了:好的 harness 才能讓便宜、能在本機跑的開源模型追上頂尖模型的表現。
  • Harness Bench 量出 20 個百分點的差距一份評測用同一顆模型換上不同 harness,分數從 52.4% 一路跳到 76.2%,而且模型越弱,harness 帶來的差距越明顯。
  • 現有框架不夠用,索性自己做語言講者花六個月打造一個叫 agency 的新語言,語法接近 TypeScript,把工具、安全機制、sub-agent 都做進語言層級。
  • 同一個修 bug 任務,七個版本只給模型不給工具連檔案都讀不到,接著加讀寫工具卻不安全,再靠 handler 加上人工核可、partial function application 讓 agent 自動又安全,最後靠推理迴圈真正把程式修好。
  • sub-agent 用來分工,不是拿來炫技換一個任務時,讓 coding agent 跟負責查 Wikipedia 的 sub-agent 平行工作,各自帶自己的工具集,減少單一 agent 要塞進去的 context 與工具數。
  • 自我優化取代亂試agency 內建的 optimizer 能自動改寫陽春的 prompt,用量測分數取代人工試錯,讓 harness 的進步有系統可循。

時間軸

時碼點下去會跳到影片的那一段。

時碼段落重點
00:00開場Etsy 的 staff engineer 拋出反主流看法:業界覺得模型夠強、harness 可以做簡單,但方向可能反了。
01:49Harness Bench 數據同一顆模型換不同 harness,分數從 52.4% 跳到 76.2%,模型越弱、harness 帶來的差距越大。
03:53決定自造語言 agency覺得現有框架都做不到想要的效果,花六個月做出一個叫 agency 的新語言,直接把 harness 需要的功能做進語言層級。
05:50示範任務說明用同一段「修中位數函式錯誤」的程式與同一顆模型,讓 harness 依序升級七次,觀察表現如何跟著變好。
09:07第一版:只有模型只把 prompt 丟給模型,沒給任何工具,模型直接回覆看不到程式碼、無法動手修正。
11:29加工具但不安全給 agent 讀寫檔案的工具後可以動手改程式,但因為沒設防護,agency 預設擋下並丟出未處理的錯誤。
13:05handler 補安全用 handler 接住錯誤、讓使用者逐步核可每個讀寫動作,安全了,但每一步都要人手動同意,速度變慢。
15:43PFA:安全又自動用 partial function application 把可存取的目錄鎖死在工具參數上,agent 不用再問人也不會跑出目錄外。
17:57加推理迴圈修好導入「推理、行動、觀察」的迴圈,讓 agent 讀檔、跑測試、看到失敗再改一次,最後測試真的通過。
21:29換題:sub-agent 分工讓 coding agent 跟一個查 Wikipedia 的 sub-agent 平行工作,各自帶自己的工具集,減少單一 agent 要處理的 context。
25:25自我優化取代試錯agency 內建的 optimizer 自動改寫兩段很陽春的 prompt,用量測分數一路把目標往上推,不用再靠人工亂試。
29:19agency 語言特色整理 agency 提供的東西:簡單的工具語法,以及能真正暫停、之後從原處恢復執行的中斷機制。
31:31結語與試用方式用套件安裝指令就能試用,最後把結論收成一句:agent 等於模型加 harness,好 harness 才是效能關鍵。

值得記的話

名詞與人物

agency講者利用個人研究時間、花六個月打造的新程式語言,語法接近 TypeScript,把工具定義、安全機制、sub-agent 都做進語言層級,用來寫 agent。
Harness Bench用來比較不同 harness 表現的評測,同一顆模型換上不同 harness,分數落差可以超過 20 個百分點。
partial function application(PFA)借自函數式編程的技巧,把工具函式的某個參數(例如可存取的目錄)先鎖死,讓 agent 拿到工具時看不到、也改不了那個參數。
ReActReason and Act 的縮寫,讓 agent 不斷「推理、行動、觀察結果、再推理」的循環模式。
GEPA optimizeragency 內建的自我優化功能,能自動改寫標記過的 prompt,用量測分數取代人工試錯。
Wikipedia agent範例裡的一個 sub-agent,帶著查詢 Wikipedia 的工具,跟 coding agent 平行工作、各自處理自己的任務。
Aditya Bhargava這場講者,Etsy 的 staff engineer,也是該公司 agentic commerce 專案的負責人,agency 語言的作者。
Alan Kay電腦科學家,講者引用他「simple things should be simple, complex things should be possible」這句話,說明 agency 的設計哲學。

延伸

  • 講者另著有《Grokking Algorithms》這本書,也做過一系列 illustrated posts,開場帶過,沒有進一步展開。
  • agencylang.com 官網與講者的 BlueSky 帳號,只在結尾提過,方便延伸追蹤。
  • GEPA optimizer 背後的演算法邏輯,這場只展示執行結果,沒有細講原理。