![]()
有這樣一種「Agent 玄學」: 你已經把任務背景寫清楚了,把流程拆清楚了,把常見坑、API 用法、示例代碼、注意事項都塞進去了,甚至還專門寫了一份長長的 Skill 文檔。可下一次同類任務再來,模型還是可能在同一個地方犯錯。
這套路徑有一個共同前提:經驗作為一份內容被存儲、召回、調用,再重新喂給模型,就會帶來提升。
深挖這個現象,是一個有趣、有用、但「反直覺」的問題:包羅萬象的詳細文檔,不等于高質量控制對象。
行業真正看錯 Skill 的地方,就在這里。大家把 Skill 當成了智能復用的終點,卻忽略了模型并非 “閱讀” 一份文檔,而是在有限推理預算里尋找下一步策略、哪些行為必須避免、什么約束優先級最高。
對人類工程師來說,完整性意味著安全感與規范;但對模型來說,完整性很多時候意味著信號被稀釋、重點被沖淡、控制被背景材料淹沒。也就是說,Skill 的強項恰恰建立在它服務人類理解之上,而不是服務模型在當下任務中的決策
最近,EvoMap 團隊(Infinite Evolution Lab × 清華大學)圍繞這個問題做了系統研究,提出了一個極具記憶點的新概念:Gene(基因)。靈感源于生物學中,基因是編碼蛋白質的 DNA 片段,源自千百年來傳承的共同記憶和經驗,而 Agent 的基因則是通過 GEP 協議的機制沉淀下來可驗證可復用的知識資產
![]()
- 論文標題:From Procedural Skills to Strategy Genes: Towards Experience-Driven Test-Time Evolution
- 作者:Junjie Wang, Yiming Ren, Haoyang Zhang
- 機構:Infinite Evolution Lab(EvoMap)× 清華大學
- arXiv:https://arxiv.org/abs/2604.15097
- Evolver(進化引擎):https://github.com/EvoMap/evolver
- CritPt 任務復現倉庫:https://github.com/EvoMap/critpt-openclaw-reproducible-70
![]()
論文用45 個科學代碼場景下的 4,590 次受控實驗+ CritPt benchmark 上的端到端驗證向我們展示了:
當同一份底層經驗被分別注入模型時,完整 Skill 包反而低于無指導基線,而十多倍更短的 Gene 對象穩定取勝。
這個偏好不只出現在「寫 Prompt」那一刻,它一路傳導到了「Agent 在測試時如何持續進化」這件事的設計原理上。很多時候決定 Agent 是否聰明的,不是「你存了多少經驗」,而是「經驗回到模型那一刻,長什么形狀」。
這啟發了什么?今天行業談起 Agent 優化,關鍵詞永遠是:更強基模、更長上下文、更高級的 RAG、更復雜的 memory 系統。但 Gene 揭示了經驗復用的關鍵,不是給模型更多內容性的提示,而是把經驗做成一個緊湊、面向控制、可持續進化的對象。這件事在過去幾乎被整個 Agent 圈忽視了。
![]()
What is Gene?
EvoMap 團隊研究發現:給模型用的經驗對象,應該按「控制密度」而不是「文檔完整性」來設計。
但團隊并未止步于這一經驗觀察,在 4,590 次受控實驗里把現象固化后,EvoMap 團隊定義了一套可復制、可變異、可遺傳的解決方案策略,Gene 是其中完整的對象層三層 framework 的一部分:
Gene :含 keywords + summary + strategy + AVOID 四類信號,能直接當 test-time 控制片注入
為 Agent 的可復用進化策略模板。它定義了「在什么情況下、做什么事、遵守什么約束」—— 相當于先驗知識的編碼。
一個完整的 Gene 包含 signals strategy constraints validation 等字段和唯一的 asset_id
在極短的 Token 限制下,具備極高的控制密度,明確了模型參考的觸發信號「支持子串匹配、正則和多語言別名」,有序的可執行步驟與執行驗證和安全邊界「限制變更范圍和禁止觸碰的路徑」以及基于 SHA-256 的內容尋址哈希,不可篡改。
Capsule:被驗證過的任務級執行路徑 + 審計記錄;
Event:不可變的進化日志。
這三件套被一個六階段循環串起來,構成 GEP(Gene Evolution Protocol)協議:
![]()
詳見:https://evomap.ai/wiki/16-gep-protocol
用大白話來說,整套操作流程是這樣的:
- 先將過去的失敗、成功、修復路徑蒸餾成 Gene(不是寫文檔,而是寫可溯源控制信號);
- 新任務進來時,Scan 任務上下文 → 匹配最相關的 Gene → 當 System Instruction 注入
- 執行完之后,把這次結果以 Event 形式寫回,觸發對 Gene 的 Validate / Mutate / Solidify—— 讓 Gene 池本身在不更新基模參數的前提下持續進化。
Gene 如何 “降維打擊” Skill
所有數據都來自同一套實驗管線:在 Gemini 3.1 Pro Preview(Pro)和 Gemini 3.1 Flash Lite Preview(Flash)兩個固定模型上,用沙盒執行 + Checkpoint 通過率作為指標,溫度 T=0.05,最大輸出 16,384 token。
Skill 輸給 Gene,輸的不是質量,是形態
論文先做了最直接的對比:同樣的底層經驗,分別打成~2,500 token 的 Skill 包和~230 token 的 Gene 對象。
![]()
完整 Skill 包在兩模型平均水平上低于無指導基線 1.1pp,更短的 Gene高出 3.0pp。絕的一點是:Skill 不是均勻地差,它在弱模型 Flash 上有提升(41.8→49.0),但在強模型 Pro 上狠狠拖后腿(60.1→50.7)—— 長 Skill 把 Pro 的固有能力直接壓住了。
procedural skill”,也就是今天最常見的文檔式經驗包。它通常包含:overview、workflow、pitfalls、error handling、API notes、examples、scripts,而通過實驗看到底是哪一段在起作用:
![]()
只有 Workflow 一段在認真起作用,Overview 反而是全文最大的負貢獻。Skill 的有用信號是稀疏的、集中在一小段程序性內容里,其余大量「為人類可讀性服務」的材料,反而稀釋甚至污染了控制信號。
Skill 輸給 Gene,輸的不是知識量與信息密度,而是受控對象選擇。
給人看的東西塞進模型的執行預算,反而會成為控制噪聲。
Gene 不僅僅是 “少則全,多則惑” 的提示詞
讀到這里,最容易冒出的反駁是:「Gene 贏,不就是因為它短、不搶上下文嗎?」
實際上 Gene 針對失敗有三種分類的進化意圖:
![]()
論文專門中用預算對齊實驗把 Skill 的有效部分截短到和 Gene 一樣的 230 token:
![]()
預算完全相同——Gene 仍然碾壓。剪短確實讓 Skill 不再倒貼分,但它怎么剪都打不到 Gene 的高度
論文還做了漸進式構造,看 Gene 內部到底是哪一層在起作用:
![]()
注意第二行:keywords + summary 反而回到無指導基線。真正把表現拔起來的是 strategy 這一層。同樣的字數,組織成「摘要」沒用,組織成「策略」才有用。
Gene 不是更短的 prompt,是不一樣形態的對象。決定模型行為的是控制結構,不是 token 多少;strategy 這一層不可省。
論文的擾動實驗里,最反直覺的一條是:用過時算法范式寫的 stale_paradigm Gene 拿到了 56.6%,比 clean Gene 的 54.0% 還高;但換錯算法掉到 48.8%、換錯領域掉到 49.4%—— 掉分條件就在隔壁。
這兩個結果合起來才完整,Gene 的有效條件是「保留任務相關的控制框架」,而不是「寫得多新」。過期的方法只要框架對仍然好用;新方法如果框架錯,反而拖累。這一對比也提示了 Gene 的魯棒性邊界:結構上很寬容,語義上很挑剔。
總結失敗的最優形態,不是日志,是蒸餾過的警告
所有做 Agent 系統的人都在面對一個問題:失敗該怎么存?
長 trajectory?Reflection summary?Error log?
EvoMap 團隊看向的關鍵問題是:如果工程預算有限,失敗該用什么形式回到模型那里?
論文同時跑了兩組對照。
對照一:失敗放在不同載體里
![]()
把失敗往 Skill 或自由文本里塞,全部低于無指導基線。
Gene 是唯一的正貢獻載體 —— 但即便如此,Gene + 失敗仍然不如 Gene 單獨(54.0 → 52.0)。
失敗原樣附加,反而稀釋了 Gene。
對照二:失敗和策略以什么形態混合
![]()
最強的不是「失敗 + 策略」混合體,也不是「策略 only」,而是failure warnings only——把失敗蒸餾成一句句獨立的「AVOID xxx」,反而比保留策略本體還強。
也就是說,對 Agent 真正有用的失敗經驗,不長成「日志」,而長成這樣(來自論文 UV-vis 譜學場景的真實 AVOID):
- AVOID 把 min_distance 當成波長值傳給 scipy.signal.find_peaks,要先轉成采樣點單位
- AVOID 把 peak_widths 的原始輸出直接當 FWHM 上報,要先換回波長單位
這背后的原則非常明確:失敗經驗的累積應該是選擇性壓縮,不是加法式堆疊。
Gene 長什么樣?一個最小可驗證工件
講到這里,應該看一眼一個真正的 Gene 長什么樣。下面是論文 UV-vis 場景的注入示例:
Domain keywords: uv-vis, peak detection, FWHM, unit conversion
Summary: Detect peaks and compute wavelength-domain peak properties correctly
Strategy:
1. Detect peaks with prominence-based criteria
2. Convert min_distance into sample-index units before peak detection
3. AVOID: Report FWHM only after converting peak_widths outputs back to wavelength units
約 230 token,5 個字段。它的對照物是同一份經驗的 Skill 包:
約 2,500 token,包含 overview、workflow、pitfalls、API notes、examples、scripts 等子章節,整體形態接近一份 README。
兩者在論文實驗里使用同一個 systemInstruction 注入槽和同一套 sandbox 評測腳本—— 也就是說,控制條件完全一致,差別只在于「這一段被注入的內容長什么形狀」。
GEP 協議則把這個原始 Gene 進一步規范化為帶 id/schema_version/signals_match/strategy/constraints/validation/asset_id 等字段的可校驗對象—— 目的是讓它能被匹配、替換、修訂、組合,而不是停留在「一段格式好看的 prompt」。
協議層的規矩也變了
Gene最絕的一點,是沒有把「經驗對象」局限在一個討巧的 Prompt 技巧上,而是直接殺到了協議層
在測試時控制(Inference)階段,邏輯非常順滑:同一道科學代碼題,把~2,500 token 的 Skill 包換成~230 token 的 Gene 控制片,模型立刻算得更準。
但在協議層(Protocol)這件事上,EvoMap 團隊拋出了一個更本質的判斷:經驗對象在多 Agent 之間被交換的時候,它必須是一個對象,不能是一段文檔。
為什么?因為沒有協議,Gene 仍然只是一段 prompt—— 邊界不穩、字段無法比較、不能累積。一旦協議化,Gene 就從「提示片段」變成可匹配、可替換、可修訂、可組合的對象,可以被持續修訂、被審計追溯、在多 Agent 之間以一致的方式被使用。
GEP 不是格式細節,而是讓 Gene 從測試時控制對象升格成持久策略優化接口的那一層協議。
實驗結果:CritPt 排行榜的「白嫖式」智能黑馬
為了拿數據說話,EvoMap 團隊把 Evolver 直接拉到 CritPt 這個公開的前沿物理基準上跑端到端結果。
CritPt 是動態的,嚴格模擬真實物理科研過程的數據集,Benchmark 官網:https://critpt.com/
Evolver 是「基模 + Gene 池 + 進化引擎 + 工具鏈」的完整系統
(其中 OpenClaw 作為 host runtime,Evolver 作為進化引擎,Gene/GEP 作為對象與協議層);近期爆火的 Hermes Agent 也在一定程度上 “借鑒” 了 Evolver 的設計理念
Benchmark70 任務的全量復現答案見 (https://github.com/EvoMap/critpt-openclaw-reproducible-70)。
![]()
可以看到:
- Evolver (Gene) 2026-02-16:基模 A 9.1% → 18.57%,+9.47pp
- Evolver (Gene) 2026-03-26:基模 B 17.7% → 27.14%,+9.44pp
不更新一個參數、不加任何 SFT/RL、純靠經驗對象層的進化 —— 同一基模直接被抬升 +9pp 量級。同時,token 消耗從 100 美金降低到不到 1 美金。
![]()
2 月 16 日 Gemini3.0 底模實驗結果
Gene,給行業帶來了什么?
EvoMap 團隊構建的 Gene,把一種飄渺的‘直覺’,打造成了一套可定義、可審計、可演化、面向測試時控制的經驗表示方法論。
對應用層,把「寫給同事的 Skill 文檔」和「運行時注入給模型的控制信號」分離開,這可能是一個幾乎沒有成本、見效極快的「魔法」。對做 Agent 長期記憶、做 Reflection 的研究者:失敗的最佳沉淀形態不是 trajectory log 或 reflection summary,而是 AVOID 警告。GPU 吃緊時,留什么經驗不只看采集得對不對,還得看它是不是足夠接得上模型當前的執行預算。
而在多 Agent 經驗交換的設定下,比起傳輸 Skill 文檔,傳輸結構化的 Gene 對象更適合作為協議層載荷—— 因為只有可被匹配、可被修訂、可被驗證的對象,才能在多方之間真正累積和進化。
結論
Gene像一面鏡子,照出了 Agent 經驗復用的本質:
Agent 不是在「讀一份說明書」,而是在「有限推理預算里尋找下一步該怎么做、什么必須避免」。
然而這是雙向的 —— 你給 Agent 喂的經驗對象長什么樣,反過來定義了它能進化成什么樣。
當整個 AI 圈都在為了更長的 context、更花哨的 RAG、更復雜的 memory 系統無腦卷生卷死時,EvoMap 團隊輕巧地給出了一條無比樸素的線索:
讓 Agent 持續變強的捷徑,不是把提示詞寫得更完整,而是把執行經驗做成一個更緊湊、更可控、更可進化的對象。這在 CritPt 這種硬基準上有用,在協議層的多 Agent 經驗交換上更有用,為未來的 A2A 群體智能指明了一條通路。
Agent 時代,下一階段的競爭,不僅是更大的模型和更長的上下文,更是誰能率先針對智能算力的利用效率找到更好的通解
Haoyang Zhang(張昊陽):95 后連續創業者,EvoMap 創始人 & CEO,GEP(Genome Evolution Protocol)協議作者。OpenClaw 社區現象級開發者,其開發的 Evolver 插件 10 分鐘登頂 ClawHub 榜首、72 小時斬獲 3.6 萬次下載,是最廣為人知的「自進化」工具,后續圍繞這一方向創辦 EvoMap。
Junjie Wang(王軍杰):EvoMap 首席科學家,研究方向:Agent 自進化、協議層、經驗對象設計。早稻田大學博士,清華大學博士后,長期圍繞「Agent 如何在測試時持續變強」展開系統研究,Evolver 主要開發者之一。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.