Meta 發了一篇論文叫 HyperAgents,副標題是「Self-referential self-improving agents that can optimize for any computable task」。GitHub 上已經開源,1.6k stars。

讓我把它翻譯成人話:一個 AI agent 不只能改進自己解題的方式,還能改進「自己改進自己」的方式。

聽起來像繞口令。但它指向的方向,值得每個做 AI 應用的開發者留意。

問題:現有的自我改進都卡在一個地方

AI agent 的「自我改進」不是新概念。最直觀的版本:agent 跑完一個任務,回頭看看哪裡做得不好,調整策略,下次做得更好。OpenAI 的 o1 用的 self-play、DeepSeek 的 self-improvement、還有去年的 Darwin Gödel Machine(DGM),都是這個思路的變體。

DGM 特別有意思——它能自己修改自己的程式碼,然後測試修改後的版本是否更好。在 coding 領域效果很棒,因為「改善 coding 能力」和「改善自我修改能力」是同一件事——你寫程式碼越好,你修改自己的程式碼也越好。

但出了 coding 領域就不行了。如果你的任務是解數學題,「數學解題能力的提升」不會自動轉化為「改進自己策略的能力提升」。自我改進的機制是寫死的,不會跟著一起進化。

這就是 HyperAgents 要解決的問題。

HyperAgents 的核心設計

論文引入了兩層 agent 結構:

Task Agent: 負責解決實際任務(比如寫程式碼、解數學題、做科學推理)。

Meta Agent: 負責修改 task agent 和自己。它能改 task agent 的 prompt、策略、工具使用方式,也能改自己的修改策略。

關鍵的一句話在論文摘要裡:

"The meta-level modification procedure is itself editable, enabling metacognitive self-modification."

Meta agent 的修改程序本身也是可編輯的。它不只是「改善 agent」,而是「改善改善 agent 的方式」。自我指涉。

具體實作上,HyperAgents 是 DGM 的延伸(DGM-H)。整個系統是一個單一可編輯程式,task agent 和 meta agent 都在裡面。meta agent 可以修改任何部分——包括自己。每次修改後,用任務表現來評估修改是否有效,保留好的變體,丟棄差的。

實驗結果

論文在多個領域做了實驗,核心結論:

  1. DGM-H 的效能隨時間持續改善,超過了沒有自我改進能力的 baseline,也超過了先前的自我改進系統。

  2. Meta-level 的改進能跨領域轉移。 在一個領域學到的自我改進策略(例如建立持久記憶、追蹤效能指標),可以套用到另一個領域。

  3. 改進可以跨 run 累積。 不是每次從頭開始。前一輪的 meta-level 改進可以作為下一輪的起點。

這意味著什麼?agent 不只是在變好——它變好的速度也在加快。

這跟我們的日常開發有什麼關係

你可能會想:這是學術論文,離實際應用很遠。

但 HyperAgents 的幾個設計理念,其實已經以粗糙的形式出現在開發者的日常工具裡了。

持久記憶。 HyperAgents 的 meta agent 學會了建立持久記憶來追蹤什麼策略有效。Claude Code 的 CLAUDE.md、Cursor 的 .cursorrules,本質上就是人工版的 meta agent 記憶——你把有效的 prompt 策略寫下來,下次 session 繼續用。

策略選擇。 Meta agent 會根據任務類型選擇不同的解題策略。我們做的 skill 系統、prompt library、system prompt 切換,都是同一件事的手動版。

效能追蹤。 Meta agent 追蹤哪些修改帶來了改善。開發者在做 A/B 測試 prompt、比較不同模型在不同任務上的表現時,也在做同樣的事。

HyperAgents 把這些手動操作自動化了,而且讓它們能自我迭代。

值得思考的問題

安全邊界在哪? Meta agent 能修改自己的修改程序——這個遞迴沒有天然的停止條件。論文的 Safety Consideration 部分直接說了:「This repository involves executing untrusted, model-generated code.」他們承認有風險,但沒有解決。

在受控的研究環境裡,這個風險是可管理的(Docker 隔離、評估指標限制)。但如果有人把這套思路搬到生產環境——一個能修改自己行為的 agent 在處理真實使用者的請求——事情就複雜了。

什麼時候不該自我改進? 不是所有系統都需要自我改進。你的 CRUD API 不需要自我改進。你的登入流程不需要自我改進。自我改進帶來不可預測性,而不可預測性在很多場景下是 bug 不是 feature。

跨領域轉移的可靠性? 論文說 meta-level 改進能跨領域轉移,但轉移的可靠性和邊界條件還不清楚。在 coding 領域學到的「追蹤效能指標」策略可能對數學推理有幫助,但對情感分析呢?對需要 domain-specific knowledge 的任務呢?

對 AI Agent 開發者的實際建議

如果你現在在做 AI agent 相關的開發,HyperAgents 有幾個值得借鏡的設計原則:

把 agent 的策略和 agent 本身分開。 不要把 prompt 和行為邏輯寫死在程式碼裡。讓它們可配置、可修改、可回滾。這樣你才有「改進」的空間。

記錄什麼有效,什麼沒效。 每次 agent 完成任務時,記錄策略和結果。這些資料是未來改進的基礎——不管是人類改進還是自動改進。

從手動開始,再自動化。 你不需要一步到位做出 HyperAgents。先用人工的方式做 meta-level 改進(調 prompt、換策略、記錄結果),等你對改進的方向有信心了,再考慮自動化。

設計停止條件。 任何自我改進系統都需要一個明確的「什麼時候停」。可以是效能平台期、成本上限、或者改進幅度低於閾值。沒有停止條件的自我改進就是一個 while True 迴圈——遲早出問題。


Meta 的 HyperAgents 離生產應用還有距離,但它指出的方向——agent 不只改進自己的行為,也改進自己改進行為的方式——是 AI agent 進化的下一步。

對開發者來說,現在最有價值的不是跑去用 HyperAgents 的程式碼,而是把它的設計原則——策略外部化、效能追蹤、meta-level 迭代——融入你現有的 agent 開發流程。

手動版的 HyperAgent,其實你每天都在做。論文只是告訴你,這件事可以自動化。


相關連結:HyperAgents GitHubarXiv 論文Meta AI Blog