大多数人讨论 Agent 性能时,焦点几乎全在底层模型上——换更强的模型、做更多微调。但这篇论文提醒我们一个简单却深刻的事实:Agent 的能力同样取决于 harness——包括 prompt、工具、技能库和控制流程。
DarwinX 的核心主张是:不需要动模型权重,只通过进化 harness,就能在冻结的模型上获得大幅能力提升。他们在四个基准上平均提升约 17 个百分点,模型全程没有更新过一次权重。
现有的 Agent 自我改进方法大多采用单谱系搜索(single-lineage search):Agent 不断修改自己,保留好的改动,丢弃差的。DarwinX 指出这种做法有两个致命问题:
路径依赖——早期的修改会锁定后续搜索方向,导致进化过早停滞。就像一个人从小养成了一套学习方法,即使不是最优的,也很难跳出这个框架。
跨任务干扰——让一个任务变好的改动,往往会让另一个任务变差。在混合任务分布上进化时,许多 prompt 和工具修改在小子集上赢了,但在完整基准上输了。
这是整个系统的选择规则。一个候选变体想要「存活」,必须满足严格条件:在至少一个任务上获得改进,同时不能退化父代已解决的任务。净增益必须为正,且有界回归不超过阈值 δ。
设计有两层速度:准入阶段相对宽松(允许有噪声信号进入),但只有通过严格 avg@k 重测和保真探针的变体才能影响后续搜索方向。这让搜索快速推进,又不让运气累积。
DarwinX 保留所有变体,包括全局来看「输了」的。为什么?因为一个整体表现差的变体,可能是唯一解开某个特定任务的变体。
当不同分支的变体各自擅长不同任务时,DarwinX 进行合并(merge):合并增量编辑,生成继承所有父代胜场的子代,且仅当子代覆盖了所有父代已解决任务的并集时才保留。合并操作只能增加覆盖,不能退步。
在 TerminalWorld 实验中,四个专家分别解决 24、25、26、27 个未见任务,合并后的 harness 解决了 28 个,超过每一个单独的专家。
DarwinX 不固定训练配方,而是定义信号接口,当前实现三种信号源:
失败衍生信号(∇):从失败轨迹提取缺失能力。教师衍生信号(π*):从更强求解器的成功轨迹蒸馏方法。自衍生信号(Δ):对比自身同任务上的成功和失败轨迹。
三种信号对应不同任务状态:失败信号用于普通变异,教师信号用于碰壁任务(无成功样本),自衍生信号用于方差带任务(有成功也有失败)。
在 GPT-5.5 上从 75.5% 提升到 83.2%(+7.7),在 GPT-5.6 Sol 上达到 84.7%(已验证的前沿)。进化后的 harness 在新增解决的 6 个任务上花了两倍轮次和四倍 token,但在已解决任务上几乎不增加计算量。这不是暴力搜索,而是学会了「什么时候该继续干下去」。
在 41 个完全未见任务上达到 68.3% pass@1,超过 Claude Code(65.9%)和所有现成 Agent。由于训练集和测试集完全隔离,这是真正的泛化能力。
最苛刻的测试——在合成任务上进化的浏览器 harness,冻结后直接在 1,260 个真实任务上评估。audit-clean pass@1 从 43.5% 飙升到 93.0%,无效轨迹从 293 条降到 17 条。能力和合规性同时提升。
在 TB2.1 上进化的 harness,不做任何修改直接跑 SWE-bench Verified,达到 84.2%。进化出来的是通用 Agent 能力,而非基准特定补丁。
DarwinX 对 Agent 系统设计者的启示很直接:Harness 是一个可独立进化、可跨模型迁移的能力载体。在 GPT-5.5 上进化出的 harness 迁移到 Opus 4.8 上依然有效。
这意味着:harness 可以作为资产在模型代际间复用,保真扩展契约是值得借鉴的改进守则(任何改进都不应以退化为代价),种群搜索比单谱系搜索更鲁棒——即使某些变体全局表现不佳,它们可能持有重组所需的关键片段。
冻结的模型不需要是固定的 Agent。Harness 选择将评估计算转化为持久能力。