蚂蚁开源AntOmniEvo:让AI自己调AI系统,失败候选也不扔
每个做 AI 系统的人都经历过这个阶段:效果上不去,又不知道往哪使劲——读轨迹、改 prompt、调配置,靠人一轮轮试,一试就是好几天。能不能让「优化 AI 系统」这件事本身,也交给 AI?为此,蚂蚁灵矽大模型应用平台团队开源 AntOmniEvo,一个自动优化 AI 系统的框架。AntOmniEvo 框架代码:htt
做过 AI 系统的人多半都碰过这种局面:分数卡住了,不知道该从哪儿下手。翻轨迹、改 prompt、动配置,全凭人一遍遍试,几天时间就这么耗进去。
那换个思路——把「优化 AI 系统」这活儿本身交给 AI,行不行?
蚂蚁灵矽大模型应用平台团队给出的答案是 AntOmniEvo,一个用来自动优化 AI 系统的开源框架。
AntOmniEvo 框架代码:https://github.com/ant-research/AntOmniEvo
核心算法 Mara Chain 论文:https://arxiv.org/abs/2609.35855
需要你出的只有四样:系统里「可修改部分」(prompt、规则、脚本、配置,组织成一个目录的真实文件,相当于待优化系统的映射,即下图左侧的 artifact)、评估数据、打分标准,以及系统定义(系统怎么跑)。其余环节都由框架驱动 AI 自动完成:改 prompt、改规则、改配置、改脚本,在「改文件 → 打分」的循环里 7×24 不停转,直到分数被抬上去。
一张图能看清它的价值分布:左侧是你提供的四样东西,中间是它 7×24 自己跑,右侧交付的是可直接部署的最优 artifact,外加每处改动的病历。核心价值可以用一句话概括:把「调系统」这种最吃老师傅经验的活,变成定好目标就能自动跑完的事——你当甲方,它当 7×24 干活的算法工程师。
核心价值一共四条:
省力:预算设好、启动之后就不用管了。你下班,它加班,你只负责最后收货。
交付物能直接上线:优化产物就是一个目录的真实文件(prompt、规则文档、脚本、配置),系统运行时 load 的正是它们——改文件就等于改系统行为,替换回去就等于上线。每处改动都能 diff、能 review、能回滚。
过程全白盒:每个候选版本、每次运行轨迹、每条评分都完整落盘,还配了一个「龙虾健身房」可视化器(下文有图)——谁在进步、谁在退步、哪一版修好了哪道难题,全程都能围观。
一个框架通吃:Agent 的 skill、agent harness、检索管线的配置和节点脚本,三种形态共用同一套优化循环,团队的目标是 optimize anything。
它怎么做到的
分两层来讲:一层是系统怎么组织,另一层是算法怎么改进。
系统层叫 tunable artifacts——优化就是改文件。系统里「可以改的部分」(prompt、规则、脚本、配置)被映射成一个真实的文件目录,这就是 tunable artifacts;系统运行时 load 的就是这些文件,所以改文件等于改系统行为,优化系统也就等于让 coding agent 在「改文件 → 跑评估 → 看分数」的循环里把这个目录往前推。
跟目录一起给出的还有一份声明(目录树长什么样、每个文件管什么、哪些允许改)——它既是框架和 AI 动手的边界,也会 render 成 prompt,按需注入干活的 agent:
接入也照这个边界来设计:框架把「通用机器」和「任务相关插件」严格切开,共 7 个可插拔组件,分三类——目标侧有 System(你的系统怎么跑)、Evaluator(输出怎么打分)、DataInst(评估数据怎么加载);优化器侧有 Optimizer(进化主循环)、Proposer(动手改文件的 coding agent)、EvolutionAlgorithm(选谁变异、淘汰谁);持久化这块是 CandidateStore(所有状态落盘,想上云就换它)。
接入自己的系统,一般只要实现 System 和 Evaluator 两个接口,其余都有默认实现,特殊场景再按需替换,换任务不用动主循环。
算法层有两个关键设计,一个负责「修」、一个负责「选」,配合起来出效率。先看一轮迭代的完整流程:
Mara Chain 的做法是失败不丢弃。常见路子是改一版、不达标就扔、下一代重新想——预算大量浪费在重复踩坑上:同一个错误被反复诊断、反复尝试,rollout 越加越多,分数却纹丝不动,团队把这堵墙叫作顽固失败壁垒(persistent failure barrier)。
AntOmniEvo 反着来:没及格的候选带着诊断记录留下来,给定一个试错预算,一代接一代接着修,同一个坑不踩第二次。
训练 AI 系统,也许该更有耐心,给一些试错空间。失败的候选为什么值得留?团队的观察是,一个没及格的候选,失败通常逃不出三种情况:
修好了一半:改动本身有效,只是没修完——下一代能在部分修正的基础上接着修,不必从零开始;
方向对,但实现有 bug:改的方向没错,是实现里的 bug 拖累了分数——下一代只需修掉实现,不用推翻方向;
有些尝试走不通,本身也是一种收获。路线被证伪,后来者就不必再往同一个方向撞。下一代拿着这份结论换条道走,省下的正是重复踩坑的时间。
前提是证据不能丢。Mara Chain 把功夫下在每一代的上下文搭建和继承上:动手之前,AI 先把链上此前各代攒下的四类东西调出来——逐题分数历史,记录哪一代在哪道题上拿了多少分;历代诊断报告,写明此前判定错在哪、该动哪个文件、怎么动;逐代改动记录,把每处改动对应的文件和理由记清楚,能和分数变化一代代对上账;还有原始运行轨迹,分数只回答「变没变」,轨迹才回答「为什么」。
这样下一代就不用从零猜起,而是踩在所有失败尝试上往前走:部分修对的接着修,方向对、实现有 bug 的修 bug,确认走不通的就果断换路。失败的积累拧成一股劲,直到把卡住分数的那堵墙撞开。
失败也不是无限期留着。框架给的是一个有限的修正窗口:新候选没能超过起点时,就沿同一条链继续精修,每一步都继承此前所有代的证据,最多修到预设的链深;精修收尾后取链里最好的一版,只有它真超过起点,才进验证集定分,超不过就整条链放弃。
差一步就让它补上,连着几步都补不上就收手。试错本身也有额度。
Mara Chain 的具体细节如下图:
论文里给了一个直观案例(sanitize-git-repo):任务要求连续修正多个互相依赖的问题,没有一个候选能一步到位。
没有 Mara Chain 时,系统一遍遍提出「只修好一半」的候选——补规则、调搜索方式、提醒别截断结果,可短期分数没涨,这些候选很快就被丢掉,下一轮换个方向重来,相似的诊断反复出现,任务始终迈不过去。
有了 Mara Chain,失败的候选会在同一条链上被接着修:从文字规则推进到可执行脚本,再顺着脚本暴露出的问题继续补,直到任务通过。
一句话:不是「永远不淘汰」,而是别淘汰得太早——等证据更充分了再做选择。
pareto-filtered top-N selection:偏科生不会被误杀。只按总分排名,「总分一般、但某道难题全场最强」的候选会被系统性淘汰,这道题的最优解也就从种群中消失,后代没得学。框架的进化淘汰模块先按逐题 Pareto 过滤,把这类候选留下来,再按总分做 Top-N 截断,防止种群膨胀。
两个设计缺一不可。消融实验里,关掉任一机制,爬到同一分数分别要多花约 1.5 倍和 2.3 倍的 rollout,终态也都够不到 0.87;TerminalBench 上同样明显——关掉 Mara Chain,通过率从 71.9% 掉到 57.3%,差 14.6 个百分点,任务越难,它的增益越大。
效率是几个机制配合出来的,不是哪一个的功劳。
工程能力:一次建设,处处复用
自动优化是重计算活——几十小时、成百上千次 rollout,光有算法跑不起来,底下还得有一套工程基建撑着。
这些能力和具体业务无关,在框架里只做一遍,所有接入方直接继承;框架升一次级,已接入的场景免费受益,不用每个业务各自重造轮子:
五维预算控制:迭代数、rollout 数、系统运行数、token、墙钟时间,哪一项撞到上限就软停止——不再开新任务,在跑的跑完,成本不会烧穿。
成本监控:每次系统运行、每次 AI 干活的 token 用量都逐条记账落盘,累计花了多少随时能查,「烧到哪了、还能烧多少」一直有数。
进度监控:每轮迭代的分数、候选增减、预算消耗都写进统计——爬到哪了、涨没涨、预算还剩多少,随时可查。
断点续跑:候选、运行、改动记录全部落盘,机器挂了重启接着跑,几十小时的长任务不怕中断。
多 slot 并发:多个候选同时各走进化循环、共享候选池,进化时间因此缩短。
全程可审计:每处改动强制落 changelog——动了哪个文件、为什么动、修的是哪条失败证据,诊断报告先过一道自检质量门;连动手改文件的 AI 自己的轨迹也照样落盘。被优化的系统是白盒,干活的 AI 也是白盒。
验证集硬隔离:验证集对干活的 AI 是禁区,运行时硬拦截,看不到任何验证集轨迹;训练集决定「改动值不值得留」,验证集决定「候选排第几」。偷看考题这条路被堵死,分数才可信。
可视化界面能看的内容挺多:家谱树上,谁是谁的后代、各代分数涨了多少,都摆在那里;点开任一候选,能看到它的祖先链,每次运行的原始记录也能下钻查看;覆盖网格上,哪道题只有某个候选能做对,一眼就能看出来。整个进化过程被做成了一间可以围观的「龙虾健身房」,下一节要讲的主角就是它。
围观它干活:龙虾健身房
有意思的是,框架里带了一个可视化器,整个优化过程被渲染成一间「龙虾健身房」(Lobster Gym)。每个候选版本就是一只在练级的龙虾,分数对应段位,强的进黄金大厅,弱的留在地下室接着练。
拿一次真实运行来看:家谱树从根节点的 0.5550 起步,一路爬到第 9 代的 0.9050,谁是谁的后代、每一步涨了多少,树上都标得清楚。统计页一页就能看完 623 轮迭代、34 个候选入选、590 个被淘汰,总耗时 2 天 3 小时,全程没有人值守。任意点开一个候选,祖先链、分数、每次运行的原始记录都能下钻审计。
效果:三个基准,三种形态,全部第一
这三个基准分别对应一种系统形态(skill / harness / 检索管线)。同一套框架、同一个循环跑下来,每一列的最好成绩都归 AntOmniEvo。
设置上用一句话交代:每个基准都拉来同赛道的专门方法当基线,skill 对 GEPA / ACE / SkillOpt-Lite,harness 对 AHE / Meta-Harness。被优化系统的模型全程冻结(默认 GLM-5,跨模型的情况见本节末尾),对比都在同一模型、同一评测环境下进行。
AppWorld 属于 skill 形态,585 个任务 = 168 Normal + 417 Challenge。四项测试指标(TGC 即任务完成率、SGC 即场景完成率)全部第一,分别为 89.9 / 83.9 / 76.7 / 59.0,比未优化基线最高高出 +48.2pp(Normal SGC),比最强前作相对提升最高 +20.5%。
更能说明问题的是样本效率:爬到验证集 0.8,AntOmniEvo 只花了 3,280 次 rollout,大约是最强前作 GEPA(9,514 次)的 1/3。换成墙钟时间,差距一样——11.9 小时对 35.8 小时。
ACE 和 SkillOpt-Lite 全程都没摸到 0.8,终态分别封顶在 0.770 / 0.665。终态分数也更高:AntOmniEvo 最终爬到 0.870,GEPA 停在 0.805。
TerminalBench 2.1 是 harness 形态,89 个任务,同样用 GLM-5、同样给 100 小时优化预算。AntOmniEvo 通过率 71.9%,比未优化基线(51.7%)高出 20.2 个百分点。对比之下,两个专门的 harness 优化器都没能超过未优化基线:AHE 51.7%,与基线打平;Meta-Harness 49.4%。
MuSiQue 考的是检索管线形态。这一回被优化的不是 agent,而是一条检索管线的配置、节点脚本和 prompt。现有优化器没有可直接对比的检索管线实现,基线就用了人工手写的默认管线。
test 集上,nDCG@10 从 0.301 升到 0.405(+0.104),Recall@10 从 0.329 升到 0.460(+0.131)。验证集口径下提升同样成立(+0.134 / +0.210),而且测试集与调优用的验证集并不相交——说明提升是真泛化,不是背题。
这一格的意义不止于数字:这套方法并不局限于 agent 系统。
换底座模型同样成立。GLM-5 / DeepSeek-V4-Pro / Qwen3.5-397B 三个模型族各自优化、各自与未优化基线配对比较,四项指标平均分别提升 +40.3 / +32.7 / +23.4pp。被改进的是系统本身,不绑在某个特定模型上。
不过,眼下的优化效果还没有覆盖所有任务。已开展的 Text2SQL 测试中,性能提升尚未观察到,原因和改进方向都还在探索。
更多结果放在论文里展开,包括消融实验、算法 mara chain 案例研究、实验协议与超参。
最后
AntOmniEvo 可以三句话总结:
全面:能优化的形态都覆盖——Agent 的 skill、agent harness、检索管线的配置和节点脚本,系统里「能改的部分」都能映射成一目录文件,交给同一套循环去优化,目标是 optimize anything。
高效:三个基准、三种形态全部第一,而且更省——爬到同一分数,rollout 和耗时都约为最强前作的 1/3。
用起来也省事:你只要按约定把指定模块做出来,框架里的算法(Mara Chain、Pareto 淘汰)连同工程基建(预算、监控、续跑、审计、可视化)都能直接接着用。好与不好的标准由你来定,它自己 7×24 跑下去,最后交出一目录能直接上线的文件,每处改动都能 diff、能 review、能回滚。
它值夜班,你只管收货。
如果你的 AI 系统也有「效果上不去、不知道往哪使劲」的时候,欢迎来试,代码和论文链接在文中。也欢迎关注我们的工作,在评论区聊聊你的场景。
团队介绍
蚂蚁集团灵矽大模型应用平台团队做的是内部的 Agent 研发平台,面向复杂业务场景自建并反复打磨,能力覆盖 Agent 的构建、调试、评测、优化,一直到上线运营整条链路,蚂蚁多条业务线的大规模 Agent 应用落地目前就靠它支撑。
AntOmniEvo 正是这一过程中沉淀出的 Agent 自进化技术框架。我们把内部反复验证过的 Agent 自主迭代进化能力抽象出来、剥离业务后开源,希望与外部开发者一起推进 Agent 自进化方向的探索。