Hyperagents 深度解析:當 agent 開始改寫「自己怎麼進化」的那行程式碼

Hyperagents 深度解析:當 agent 開始改寫「自己怎麼進化」的那行程式碼


Agent 在 paper review 和 robotics reward design 學到的「自我改進邏輯」,零次學習丟到 Olympic 等級的數學閱卷任務,imp@50 拿到 0.63;同樣設定的 DGM baseline 是 0.00。

這是 Meta、UBC、Edinburgh、NYU 一群人 2026 年 3 月放上 arxiv 的 paper,叫 Hyperagents(2603.19461),ICLR 2026 已 accept,code 在 facebookresearch/Hyperagents

它真正做出來的不是「更聰明的 AI」,而是讓 frozen 的 LLM 在外面那層 scaffold 上自己長出更好的工具。要看清楚為什麼這個小區別重要,得從 2025 年 5 月的 DGM 講起。

DGM:只能改自己的 code,也只用在 coding 任務

DGM(Darwin Gödel Machine)是 Sakana AI 跟 UBC Clune lab 在 2025 年 5 月做的:Jenny Zhang、Shengran Hu、Cong Lu、Robert Lange、Jeff Clune。setup 很乾淨:

  • 一個 frozen 的 foundation model(不動權重)
  • 一份 Python codebase,這份 code 就是 agent 本人
  • 一個 bash + file editor 工具集
  • SWE-bench / Polyglot 兩個 coding benchmark

Loop 是:agent 讀自己的 source code,想出一個改進,改完跑 benchmark,分數有上去就把這個 variant 存進 archive,下一輪可以從 archive 任意一個 variant 繼續演化(不只是從最強的那個分支)。archive 結構是從 open-ended evolution 借來的,目的是讓「目前看起來不那麼強但有潛力」的點子能被保留。

結果不錯:

  • SWE-bench:20.0% → 50.0%
  • Polyglot:14.2% → 30.7%(手調 Aider agent 是參考線)

DGM 自己長出來的具體改進,包括:給自己加 patch validation 那一步、改寫 file viewer 讓 LLM 一次能看到更多上下文、加「先生成多份解、再 rank 選最好那份」的 ensemble、開始記錄「之前嘗試過什麼、失敗在哪」並在下一輪做決定時引用。

這些改進不會驚訝你。它們就是任何寫過 coding agent 的人,在 sub-agent loop、retry 邏輯、context management 上摸個幾個月會自己摸出來的設計。DGM 的有意思之處不是改進有多新,而是它在沒人 review 的情況下,把這些東西摸出來了。

但 DGM 有個致命假設:它的任務領域必須跟「自我修改技能」對齊。它會的事是寫 code,要做的也是寫 code。SWE-bench 跟 Polyglot 都是 coding 任務,所以「會寫 code」既是評估目標、也是 self-mod 的工具。換成一個非 coding 任務,這個對齊就斷掉。

Hyperagents 整篇 paper,本質上就是在拆這個假設。

Hyperagents:把 task 跟 meta 合進同一份可改寫的 code

陣容換了。Zhang 跟 Clune 還在 UBC,新班底是 Meta(Foerster、Devlin、Jiang、Shavrina)、Edinburgh 的 Bingchen Zhao、NYU 的 Wannan Yang。Sakana 沒在這篇上。

論文的關鍵動作是:把 task agent 跟 meta agent 合進同一份可編輯的程式碼。

DGM 的結構大致是:task agent(變化的部分),meta-level rule(fixed)。Hyperagents 拿掉這道內牆。task agent 的 code,跟「怎麼改 task agent」的 code,在同一個 program 裡。Meta agent 改 task agent 的時候,也可以改自己改 task agent 的方式。這就是論文 abstract 那句 the meta-level modification procedure is itself editable 的字面意思。

但要把話說準:論文只拆掉了內側那道牆。最外面那層——parent selection 用什麼策略、evaluation pipeline 長怎樣、archive 怎麼維護——還是人類手寫死的,論文自己在 limitations 列為 fixed outer-loop components。所以是兩層被合進一個可編輯 program,第三層還在外面釘著。

實作上其實相當乾淨:把整份 agent codebase 開放給 LLM 編輯,不要特別保護 meta loop 的那段就好。

這個小改動的後果是:self-improvement 不再要求 task domain 跟 self-mod skill 對齊。Agent 可以在做 paper review 的時候,學到一條「我下次該怎麼設計 evaluation pipeline」的 lesson,把這個 lesson 寫進它自己的 meta procedure,下一個任務帶著走。

跑完幾輪以後,agent 自己長出來的東西,論文 qualitative analysis 列了一串。第一個是一個叫 PerformanceTracker 的 class,負責記錄跨世代的指標。然後是:

  • 帶時間戳的 persistent memory,存「我覺得這個改進為什麼會 work」的因果假設
  • compute-aware planning:剩下多少 budget,就調整 exploration 的廣度
  • label-bias detection,跨 evaluation set 比較分數分佈
  • prompt template 系統 + 標準化 rubric
  • 結構化 decision checklist + error-correction 流程

第一次掃過這份清單我笑出來了。它不是任何單一新技術,它就是任何認真寫過 LLM agent 的人,在工程上都會自己加的一套基礎設施。它學到的是更高一階的東西:「想自我改進的話,先把這幾個東西建起來。」

數字長什麼樣

論文跑了四個 domain。先看數字,再看哪些得打折。

Domain起點Hyperagents對照
Polyglot(test)0.0840.267DGM-custom 同量級
Paper review0.0000.710(CI 0.59–0.75)AI-Scientist-v2 ≈ 0.63;DGM-custom ≈ 0.59
Robotics reward design0.0600.372(CI 0.36–0.44)DGM-custom ≈ 0.35
Olympic math grading(transfer)imp@50 = 0.63DGM baseline imp@50 = 0.0;ProofAutoGrader 專家 baseline 0.67

imp@50 是他們新提的 metric:在 50 個 generation step 內,最強的 agent 比起點高多少。

兩個必要的折扣得放在桌上:

第一,前三個 domain 的 in-domain 分數,DGM-H 比 DGM-custom 是統計上不顯著(p > 0.05)。表上看起來 0.71 比 0.59 大很多,但 paper 自己用 bootstrapped CI + 5 seed 跑 significance test,差距沒過門檻。這不是說 Hyperagents 沒用,而是 in-domain 的進步幅度不該被當作主要 sell point。

第二,Olympic 數學的 0.63 是 imp@50,不是絕對分數。Hyperagent 的 transfer agent 跑完整個 50 步以後絕對表現是 0.640,比起 ProofAutoGrader 這個手刻專家 baseline 的 0.670,還是輸。Hyperagent 贏的是「從零起步、不用人類調 prompt,50 步內能爬到的高度」這件事。

把這兩點放回去看,Hyperagents 的招牌結果其實只剩一件——也就只需要剩這一件——meta layer 從零做到 0.63 的 imp@50,DGM baseline 在同一個 task 上 imp@50 = 0.00。手刻 DGM 在這個任務上完全找不到改進方向,Hyperagents 從 paper review + robotics 帶來的方法論知道怎麼開始:先建一個 PerformanceTracker、先寫一份 rubric、先做 label-bias check。它沒成為 SOTA,但它知道改進的入口在哪。

這就是為什麼即使前三個 domain 的 delta 不顯著,這篇 paper 還是值得認真讀。

我自己怎麼讀這個結果

先說結論:這不是模型在變聰明,是 scaffold 在變聰明。

整個 setup 裡,foundation model 的 weights 是 frozen 的。沒有任何梯度回傳到 model 本身。所謂的 self-improvement 全部發生在 model 外面那層 Python code——prompt、memory schema、tool wiring、retry 邏輯、ensemble 策略。

論文自己也沒主張 model 在變強。它的 contribution 一開始就是 frame 在 scaffold 層。我這裡只是把這個含義講白:外面的人看到 self-improving AI 容易自動補進 recursive self-improvement、takeoff、改寫 weights 這些東西,Hyperagents 一個都不是。

換個角度說:他們做的事不是讓 LLM 學到新技能,而是讓 LLM 發現自己已有但沒在用的好習慣。Foundation model 已經知道怎麼寫 PerformanceTracker、怎麼設計 rubric、怎麼做 cross-validation,但你不告訴它這場任務需要這些,它就不會主動長出來。Hyperagent 的 search loop + archive 是一個外部記憶體 + 外部目標函數,逼 LLM 把它本來就會的好工程習慣 externalize 成可重用的程式碼。

跨領域 transfer 之所以 work,正是因為這些東西本來就是 domain-agnostic 的軟體工程基本功。memory + logging + rubric + budget control,在 paper review 跟在數學評分裡長得幾乎一樣。

這個解讀有兩層意思。

一是這個工作的價值被低估了。「frozen model 就能做出這個」聽起來不夠 sexy,但寫 agent 的瓶頸從來不是模型,是 scaffold。我自己最近在 OpenHealth 的 worktree 裡跑 Claude Code,一週至少要手動把三四條經驗寫進 CLAUDE.md。那其實就是我在做 hyperagent 的 meta agent 該做的事——只是我做得很慢,而且只跨我自己這幾個 repo。Hyperagents 把這個流程自動化、跨領域化了。

二是「self-improving AI」這個詞被講得太通膨。這篇 paper 沒有 takeoff,沒有 recursion,沒有改寫 weights,沒有任何讓 GPT-N 變成 GPT-(N+1) 的東西。它做的是讓 GPT-N 在外面那層 Python 上長出更好的工具給自己用。這個區別決定了你應該用這個技術做什麼。

這篇論文我可能讀錯的地方

論文自己列的 limitations,篩出實質的幾條:

  • Outer-loop 還是 fixed:parent-selection、evaluation protocol、archive 維護都是手寫的。Meta-meta 那層人類沒放手。
  • Fixed task distribution:系統不會自己生成新任務或新 curriculum。所謂「任意可計算任務」其實還是要人類先準備好 task spec。
  • Saturation effects:論文承認 0.7 → 0.8 比 0.0 → 0.1 難太多。imp@50 在已經很強的領域不會繼續快。
  • Frozen FM weights:模型本身的能力是天花板,scaffold 進步抵不過模型升級。
  • Evaluation 用 LLM-as-judge:paper review 跟 math grading 都靠另一個 LLM 評分,沒做 blinded human validation。Bias 是內建的。
  • Safety 沒有 formal guarantee:自我編輯 code 的 capability whitelist、syscall guard、catastrophic edit detection 都沒有。Sandbox + 人類 oversight 是唯一一層保護。

我自己另外的兩個疑問:

第一,archive 的 garbage collection。open-ended evolution 那邊借來的 archive 是會無限長大的。這篇實驗的 scale 還在 lineage 能裝進記憶體的範圍,一旦 scale 上去這就是 blocker,論文沒談。

第二,robotics 只在 simulation、單一 morphology;paper review 跟 math grading 的測試集,跟 FM pretraining data 之間的 overlap 沒辦法檢驗。這兩條 paper 沒明列為 limitation,但對 transfer claim 的可信度都有影響。

對我自己日常的影響

短期我不會直接拿 DGM-Hyperagents 套到 OpenHealth。recursion + archive 的 compute 跟我那幾個 repo 不成比例。

但這篇 paper 改了我兩件事的優先順序。

第一,我自己手動維護的那條讓 Claude Code 跨 session 累積記憶的 toolchain(workspace 裡叫 Hermes Agent / Adaptive Agent Skill),方向是對的,只是粒度太粗。Hyperagent 給的提示是:meta-level 的模式(PerformanceTracker、rubric、budget control)比 task-level 的記憶(這個 PR 的 reviewer 是誰)更值得跨 session 保留。後者很容易過期,前者跨領域 reusable。

第二,下次我再做 R&D 流程的 agent 化(比方說我那條 BCI 文獻 review 的 pipeline),我會更早放棄「先把 prompt 調好」這條路,更早寫一個外部 evaluation rubric + memory + budget tracker 的 frame,把 LLM 放進這個 frame 裡讓它自己迭代。Hyperagents 的最強訊號就是這個:好 agent 的差異不在 prompt 寫得多漂亮,在 scaffold 結構長得對不對。

它把「scaffold 也可以自己長」這件事在四個 domain 上做扎實了一輪,順帶把「frozen model 還能擠出多少剩餘性能」這個天花板拉高了一截。對 2026 年的 agent 工程,這個訊號比模型升級更實用。

References