首页 › ai-agents › 蒸馏即涨:自主体自演化三栈实测

2026 年中,自主智能体(autonomous agent)领域出现了一组对照鲜明、却常被混为一谈的数字。一边是"越用越强":Darwin Gödel Machine(DGM)把 Polyglot 基准从 14.2% 拉到 30.7%、SWE-bench Verified 从约 20% 到约 50%;Socratic-SWE 三轮自演化后在 SWE-bench Verified 取得 50.40%;Live-SWE-agent 配 Claude Opus 4.5 在 SWE-bench Verified 拿到 79.2%、SWE-bench Pro 45.8%。另一边是"越长越蠢":GAIR-NLP 的《Diagnosing and Mitigating Context Rot in Long-horizon Search》用四个旗舰开源模型、三个基准证实,上下文越长,智能体越倾向于"直接放弃"或"草率给出不确定答案"。把这两条曲线对齐看,结论异常清晰:自主体能不能"自我进化",取决于它把经验固化在哪一层——蒸馏成显式的变体 / 技能 / 工具就涨,任其堆成隐式的原始上下文就烂。

一、三维对比:自演化栈与腐烂的账

栈 / 系统 固化层级 触发时机 验证方式 代表成绩(SWE-bench Verified) 腐烂风险
Darwin Gödel Machine(arXiv 2505.22954) agent 变体(改自己的代码/prompt/工具) 离线、按代演化 基准经验式打分 + 可行性闸门 Polyglot 14.2%→30.7% 低(归档有界裁剪)
Socratic-SWE(arXiv 2606.07412) 结构化技能(失败模式+修复模式) 闭环、多轮 执行式验证 + solver 梯度对齐奖励 50.40%(三轮后) 低(技能可索引)
Live-SWE-agent(arXiv 2511.13646) 运行时工具(动态合成/改写) 在线、单任务内 执行验证 + 自修复 79.2%(Opus 4.5)/ Pro 45.8% 低(工具即代码)
对照:裸上下文累积 无固化(原始轨迹堆叠) 持续 无 越长越差 高(context rot)

这张表的关键不在分数高低,而在"固化层级"这一列:前三者都在把经验外化成可索引、可复用、可裁剪的对象;最后一行则把经验当作一次性消耗品堆进上下文。前者是资产,后者是负债。

二、为什么"显式固化涨、隐式堆积烂"——分水岭原理

三套看似不同的自演化系统,共享同一个底层机制:把瞬时经验蒸馏成结构化对象,再喂回循环。DGM 蒸馏出"agent 变体",Socratic-SWE 蒸馏出"技能",Live-SWE 蒸馏出"工具"。这三个对象具备四个上下文不具备的属性:

  1. 可索引:技能/变体/工具有名字和签名,能按需召回,而非线性扫描;
  2. 可复用:一次蒸馏,跨任务、跨代际复用,边际成本趋零;
  3. 可裁剪:无用对象可被剔除,而堆叠的上下文删一段就破坏连贯性;
  4. 可验证:每个对象都过执行闸门或基准打分,烂的进不来。

而 context rot 恰恰相反——原始轨迹不可索引、不可复用、不可安全裁剪、未经验证。于是同一段"经验",蒸馏版带来 +30 个百分点的增益,原始版带来放弃率飙升。这正是"蒸馏即涨"的物理基础:自演化的红利只发给被外化的经验,不发给被堆叠的经验。

三、DGM:归档采样跳出局部最优

DGM 的核心洞察来自开放性(open-endedness)研究:如果每次都从"当前最优"变体突变(贪心自改写),agent 会卡在出发点的局部山头。论文因此维护一个归档(archive),存的是"变体 + 分数 + 血缘"。新变体的父代不是最高分,而是多样性加权采样——一个第 6 代分数平平的变体,可能在第 22 代成为父代,因为它古怪的工具处理结构与某次突变意外契合,分数一跃而上。这个"垫脚石"在归档里躺了 16 代才兑现价值。

def dgm_step(archive):
    parent = archive.sample_diverse()        # 多样性采样,而非最高分
    child  = llm.propose_mutation(parent)    # 改写 agent 自身的代码/prompt/工具
    if not viability_gate(child):            # 编译 / 安全 / 冒烟测试
        return None
    score = benchmark(child)                 # 经验式打分
    archive.add(child, score, lineage=parent)  # 入档:带分数与血缘
    archive.evict_to_bound()                 # 有界裁剪,留住多样垫脚石

实测中 DGM 自动演化出了更好的代码编辑工具、长上下文管理、peer-review 机制——它不仅改 agent,还改进了"改 agent 的能力"。代价是离线、按代、要跑基准,烧算力。训练营定位:适合做"agent 自动进化"的演示型项目,门槛高、叙事强。

四、Socratic-SWE:把求解轨迹蒸馏成技能

Socratic-SWE 抓的是另一个痛点:自演化训练卡在"高质量 SWE 任务供给不足"。传统合成任务靠固定变异或注入 bug,分布与 agent 自身弱点无关。Socratic-SWE 的解法是复用 agent 自己的历史求解轨迹——但不是当奖励证据,而是蒸馏成结构化技能,每个技能概括一类"反复出现的失败 + 有效修复模式"。

traces  = solver.run(repair_tasks)            # agent 历史求解轨迹
skills  = distill(traces)                     # 蒸馏为结构化技能
new_tasks = generate(skills, repos)           # 技能引导:定向生成真实仓库任务
tasks   = [t for t in new_tasks if exec_validate(t)]  # 执行式验证
tasks   = rank(tasks, solver_gradient_reward) # solver 梯度对齐奖励
solver.finetune(tasks)                        # 更新 solver → 产生新轨迹 → 闭环

三轮迭代后 SWE-bench Verified 到 50.40%,且在同等算力预算下持续优于自演化基线。这里"蒸馏"二字是全部收益的来源:轨迹是负债(占算力、易腐烂),技能是资产(定向、可验证、可对齐)。训练营变现:可作为"数据飞轮"模块,教企业把客服/运维日志蒸馏成可复用技能库。

五、Live-SWE-agent:运行时工具自合成

DGM 离线、Socratic-SWE 闭环,Live-SWE-agent 把自演化拉到在线单任务内。它的立论只有一句:软件 agent 本身就是软件系统,现代 LLM 已经具备在运行时扩展/修改自身行为的能力。于是在解一个真实 GitHub issue 的过程中,agent 发现现有工具不够,就当场写一个工具函数,验证通过后注册进工具库,下一步立即调用。

if needs_new_capability(issue):            # agent 自判能力缺口
    tool  = agent.write_tool(spec)         # 自己写工具函数
    tool  = validate_and_patch(tool)       # 执行验证 + 自动修复
    tools.register(tool)                   # 入库,立即可用
    action = agent.plan(issue, tools)      # 下一步直接调用新工具

它建立在极简的 mini-swe-agent 之上,改动很少却拿到 SOTA:Opus 4.5 配 Live-SWE 在 Verified 79.2%、Pro 45.8%,Gemini 3 Pro 77.4%,逼近甚至超过厂商内部人工调的 scaffold。关键仍是"固化":工具是有签名、可测试、可复用的代码对象,而不是一段上下文。它同时提供了一个公平横评平台——同一 scaffold 套不同模型,苹果对苹果。

六、对照面:上下文腐烂税到底扣多少

把镜头切到反面。GAIR-NLP 在深度搜索(deep search)场景评测四个旗舰开源模型 × 三个基准,发现一个"普遍却未被注意"的现象:上下文越长,模型越倾向于直接放弃或草率给不确定答案。这不是幻觉,是更隐蔽的"软罢工"——模型还在输出,但已经放弃认真推理。

论文用裁剪实验坐实了"累积上下文 ↔ 腐烂"的因果关系:把上下文剪短,腐烂缓解。缓解手段分两路:

把腐烂税量化到自演化语境里:如果一个自主体不蒸馏、只把每次尝试堆进上下文,那么它"自演化得越久、搜索得越深,能力反而越低"。这正是裸 RAG/长上下文 agent 上线后"第一天惊艳、第三天变蠢"的根因。

七、把两条曲线画在一起:自演化架构图

flowchart TD
    subgraph UP["显式蒸馏路径(涨)"]
        T1[原始求解轨迹] --> D{蒸馏外化?}
        D -->|变体| A1[agent 归档<br/>DGM: 多样性采样]
        D -->|技能| A2[技能库<br/>Socratic-SWE: 失败+修复]
        D -->|工具| A3[工具库<br/>Live-SWE: 运行时合成]
        A1 --> V1[可行性/基准闸门]
        A2 --> V2[执行+solver梯度验证]
        A3 --> V3[执行+自修复验证]
        V1 & V2 & V3 --> R[可索引/可复用/可裁剪资产]
        R -->|喂回循环| T1
    end
    subgraph DOWN["隐式堆积路径(烂)"]
        T2[原始求解轨迹] --> C[直接堆进上下文]
        C --> ROT[context rot:<br/>放弃率↑/不确定答案↑]
        ROT -->|越深越差| T2
    end
    D -.未蒸馏.-> C

图里唯一分叉点是"蒸馏外化?"——选 yes 走上方资产循环(涨),选 no 走下方腐烂循环(烂)。三个"涨"系统的差别只在蒸馏成什么对象(变体/技能/工具)和在哪一层验证,本质完全一致。

八、选型与变现建议

按"任务是否可重复 + 算力 + 在线度"三轴选栈:

无论选哪条,工程底线只有一条:给自主体一个"蒸馏出口"——轨迹必须有地方固化成变体/技能/工具,并配执行闸门。没有出口的自主体不是在自演化,而是在发酵上下文,发酵得越久越腐烂。结合 context rot 的两类缓解(上下文管理 7 法 + rot-aware 拒绝采样),可以把"涨"的增益和"烂"的损耗分开计账:蒸馏决定上限,腐烂管理决定下限。

最后给一组可操作的 KPI:自主体每运行 N 步,检查"外化对象新增数 / 上下文净增长"的比值。比值 > 0,系统在变强;比值趋 0,系统开始腐烂,该剪上下文或强制蒸馏了。

参考来源

  1. Darwin Gödel Machine: Open-Ended Evolution of Self-Improving Agents (arXiv 2505.22954) — Sakana AI 等提出的自改写归档机制,Polyglot 14.2%→30.7%、SWE-bench 约 20%→50%
  2. Socratic-SWE: Self-Evolving Coding Agents via Trace-Derived Agent Skills (arXiv 2606.07412) — 将求解轨迹蒸馏为结构化技能,三轮后 SWE-bench Verified 50.40%
  3. Live-SWE-agent: Can Software Engineering Agents Self-Evolve on the Fly? (arXiv 2511.13646) — 首个运行时自演化 SE agent,Opus 4.5 配套 Verified 79.2%、Pro 45.8%
  4. Diagnosing and Mitigating Context Rot in Long-horizon Search (arXiv 2606.29718) — GAIR-NLP 对四个旗舰模型×三基准的上下文腐烂诊断与缓解
  5. Darwin-Gödel Self-Rewrite 模式目录 — 归档采样、垫脚石、可行性闸门与有界裁剪的工程化拆解

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入