Neodrop
Create
FeedDiscoverMy ChannelsAuto-publishJoin Our Discord
FeedDiscoverCreateMy Channels
3 天 10 次迭代没突破,4.7 小时 12 次达标:美团把 AutoResearch 从单线程 LOOP 换成图探索
2026-10-22

3 天 10 次迭代没突破,4.7 小时 12 次达标:美团把 AutoResearch 从单线程 LOOP 换成图探索

美团把 Karpathy 的 AutoResearch 原型搬进企业云端,三个月重写三次,从单线程 LOOP 走到图探索;这篇拆开三次重构各自解决了什么,以及 18 倍、85% 与 83%、12/12 这几个读数各自的分母。

大模型团队论文与博客解读
大模型团队论文与博客解读@wei
10 月 22 日,美团技术团队发出一篇工程长文,讲内部那套自己找方向的算法研究系统,怎么在三个月里被重写了三次。1
先摆两个读数。两个业务建模项目,结构、目标、场景各不相同,单个训练任务的完成耗时比人工基线分别少约 85% 和 83%。
另一个多目标项目里,系统给出的方案在全部 12 个预估目标上超过人工。1
其中一个项目的方案已经推全上线,原文的说法是「取得线上收益」。收益有多大,文章没有给。
这套系统没有配论文,没有开源代码,用的哪个基座模型也没点名。它能提供的是另一种东西:一条从「让 agent 自动跑实验」走到「让它无人看管地跑几个月」的完整工程路径。
这篇文章的分量落在中间那层工程上。开头几个效率读数各有各的比较对象,得分开看。

原型只有三个文件,裁判被冻结

2026 年 3 月,Andrej Karpathy 开源了一个叫 autoresearch 的仓库。2
README 的描述是:给 agent 一套小而真实的训练环境,让它整夜自己做实验,第二天早上看实验日志和(希望是)更好的模型。2
仓库里真正要紧的是三个文件。prepare.py 负责数据准备与评估,不许改;train.py 是 agent 唯一能动的代码。
program.md 是人写给 agent 的研究规则。2
每次训练固定跑 5 分钟墙钟,指标是 val_bpb,即每字节验证位数,越低越好。2
固定时长换来的是可比性:模型大小、批量、架构怎么改,跑的时间一样长,分数能直接比。README 自己算过,这相当于每小时约 12 次实验,睡一觉约 100 次。2
让这个循环能自己转下去的,是两个机制。评估代码冻结,agent 改得动训练代码、改不动裁判;每轮结果要么 commit 保留,要么 reset 回滚,改进可审计、可回退。1
美团这篇博客把开源时间写成「2025 年底」。GitHub 记录这个仓库创建于 2026 年 3 月 6 日,README 落款也是 March 2026。2
差两个月不影响原理,但它决定了这条路线到今天只走了七个月。
把这个循环画出来,是一条单线程:读规则、改训练代码、跑训练、打分、决定保留或回滚,再从头开始。同一时刻只有一条时间线。

第一次输在上下文,第二次输在等待

搬进企业云端后,问题来得很快。规则全写在自然语言 prompt 里,模型幻觉会让执行不完整;本地单机与企业训练平台的差异要重新适配;单线程 LOOP 一次只能维护一条时间线。1
V1 的做法是定时任务加 Shell 脚本周期触发,一个 agent 串行走完检查、提取、分析、改代码,报告归档到云端协作文档。1
它卡住的地方很具体:上下文越滚越大,会话还要一直等训练结束。训练动辄几小时,一个会话活不了那么久。
V2 的解法是把状态从会话里搬出去:每次触发开一个全新会话,状态写进 JSON 文件。
它拆成 Monitor 与 Iterator 两个角色,靠状态文件里的 phase 字段互斥路由,同一时刻只有一个在工作。1
状态文件只留决策需要的最小信息,探索过程压缩成可复用的决策依据。这是针对 ML 迭代场景的定制,与通用图编排框架那种「全量状态」的思路不同。1
「无状态触发 + 有状态文件」是三次重构里唯一贯穿下来的设计。它带来三件事:随时可唤起,不等训练,换基座不必重写流程。1
原文第 3.3 节配图的状态机面板:定时触发器每小时唤起一个全新会话,先抢并发锁,再按状态文件里的 phase 判断这一轮该派活还是该收结果;写完状态文件就释放锁、结束会话,一小时后新会话回来查训练。裁自同一张官方配图。1

图探索的重点在收拢,不在并行

V3 把单线程换成 Spawn-Converge 三步。1
Spawn 是主 agent 把一个大问题拆成 3~4 个互斥的差异化假设,比如「特征不足」与「结构不足」,再派给执行层。
执行层的子 agent 各自改码、各自提交训练,上下文互相隔离,谁也不知道对方中途得出了什么。1
Converge 是训练跑完之后,主 agent 汇总几份独立结果、提炼洞察,决定下一轮的方向组合。1
三步缺一步就退回多开实验。原文自己的话是:并行只是手段,收拢才是关键。1
上下文隔离那一环最容易被忽略。子 agent 互不知情,就不会被彼此的中间结论带偏;汇总时主 agent 手上是几份独立结论,天然多一层交叉验证。
系统列了四个效率引擎:正交并行、汇总分发、边界探针、单变量控制。1
前三个是搜索策略,第四个落在可信度上:相邻两轮只动一个因素,归因链才短,下一轮才知道是哪个改动起了作用。
原文第 3.3 节的 V3 面板:主 agent 拆出互斥假设后派给三个上下文隔离的子 agent,各自改码训练、各自产出独立结果,再回到汇总决策并进入下一轮。右下角那句「并行只是手段,收拢才是关键」是原文标注。裁自同一张官方配图。1

能写进代码的约束,不写进 prompt

无人值守的循环里,agent 的不可靠分两类。1
一类是认知层幻觉:输出语言自洽、事实错误,不报错,只把后面几轮决策带歪。另一类是执行层偏差:接口超时、任务 ID 过期、日志字段缺失导致指标解析成空。1
治理原则只有一句:凡是能用代码表达的约束,一律不放在 prompt 里。1
差别是具体的。prompt 里写「不要重复已证伪的方向」,agent 仍可能认为这次情况不同;写进状态文件的硬约束列表之后,下一轮在代码逻辑层面就被直接跳过。1
执行层偏差在三处设防。关键状态以状态文件为唯一事实源,易过期字段每轮强制重读;平台调用封装成幂等工具,返回值做结构化校验,字段缺失即判失败。
第三处是故障分类:代码故障计入证伪记录,基础设施故障自动重试且不占轮次预算。1
这个分类值得多想一层。它等于承认「这次失败与方案无关」;两类故障混在一处,系统会因为机房抖动放弃一条好路线。
原始证据优先是另一条主线。每一轮的原始指标与原始代码 diff 都留着,agent 的分析可能有幻觉,指标和 diff 本身是真的。1
作者给的理由是幻觉的复合效应:一个错误结论被喂进下一轮上下文,后面就在错误前提上继续推理,步步错、步步看着合理。
能让它停下来的,是训练跑完之后那条曲线——模型可以幻觉「学习率太小」,曲线不会配合。1
交叉验证的成本高,所以按需触发:主 agent 置信度偏低、连续多轮指标同向恶化、归因涉及方向性决策,这三种情况才做。出现分歧时,两份结论都保留并转人工审查,不投票取多数。1
这条原则的边界值得先说清。可枚举的禁止项它拦得住,比如已证伪方向、轮次上限、退出条件。
需要判断的禁止项它拦不住,比如跨项目经验能不能迁移、某个归因是否成立——原文这两处都靠人工审核卡点。1
原文的 V3 全景图:左边五层依次是输入、决策、执行、事实、汇总,右边一栏是六条可信度与自进化机制——反幻觉双防线、三层验证、质量门禁、Skill 晋升链、硬约束通道、基础设施容错。这一栏的第 5 条「证伪记录→状态文件硬约束→代码层跳过」,就是上面那段原则的实现路径。1

四层记忆与一条晋升链

记忆被分成四层,各守一件事。1
L1 短期记忆存本轮实验结果、证伪记录、关键洞察与 Skill 草稿,保证本轮结论即时可用。
L2 长期经验存入库实验报告、可复用 Skill、已证伪方向列表、历史最优解,保证证伪路线不重复。1
L3 知识库存业务知识、论文检索结果、方法与基线、口径约束,保证方向有业务与论文依据。L4 时间线归纳存关键发现时间线、阶段结论、跨轮规律、待验证问题,保证规律可累积。1
Skill 的进入有门槛。系统把踩坑经验整理成草稿,过「系统初筛 + 人工审核」两级校验,才写进正式工具集;已入库的 Skill 之后还会在使用中继续被审核、继续完善。1
原文给了一个真实例子:早期批次里训练平台参数服务器连接异常的处置经验,被系统整理成 Skill 草稿,人工审核后反哺工具集。
此后系统自主应对了数百次同类基础设施故障,全程没有人工介入。1
这条晋升链的要点在顺序:经验先作为带证据的低层记录存在,满足复用规则并通过人工审核,才晋升为正式能力;未经外部验证的结论留在临时区,不进知识库。1
自进化系统最容易失守的就是这里。经验一旦凭「看起来有用」入库,下一轮就会把它当事实用。
原文的四层记忆图:L1 工作记忆、L2 结构化经验库、L3 外部知识库、L4 跨轮次时间线归纳,每一层下面写着它守住的那条。裁自同一张官方配图的中段。1

Harness 值多少分,外面有两个刻度

美团把套在通用 agent 外面、让它在生产流程里稳定行动的那组运行规则叫 Harness:状态文件、工具返回校验、失败恢复、经验库、硬约束、提示词,都算在里面。1
LangChain 有一句更短的定义:Agent = Model + Harness,凡是模型以外的东西都是 harness。3
LangChain 的编码 agent 叫 deepagents-cli,模型固定用 gpt-5.2-codex。
它只调 system prompt、tools、middleware 三个旋钮,Terminal Bench 2.0 的 89 道题从 52.8 提到 66.5,涨 13.7 分,榜上从 30 名外进到前 5。4
模型没换,换的只有外面那层。这一组读数的价值在于对照干净。
那篇文章还留了一个细节:全程只跑 xhigh 推理档反而只有 53.9%,因为 agent 在超时上栽了;换成 high 档是 63.6%。
最后用 xhigh-high-xhigh 的「推理三明治」,才到 66.5。4
OpenAI 那边是另一种量级:五个月里团队没写过一行手写代码,Codex 生成了约一百万行、开合约 1,500 个 PR。
三位工程师人均每天 3.5 个,约束靠自定义 linter 与结构测试机械执行,AGENTS.md 只当目录用。5
这层工程能撑到的规模,是另一回事。
原文把「与底层 Agent 基座解耦」写进设计理念,理由是基座升级系统免费受益。1
这条有一半站得住。状态、工具、Skill 都在模型外,换模型不必重写流程,前端入口换成 IM 机器人或自建沙箱也照常运转。1
另一半有反证。
LangChain 明确写 harness 要按模型调:他们为 Codex 调出来的那套,用更早一版跑 Claude Opus 4.6 只有 59.6%,低于 Codex 的 66.5%。4
所以「免费受益」的准确范围是流程层。prompt 与工具返回的处理那一层,换个基座仍要重调一轮。
原文的能力层级条:L0 单轮问答,L1 多步 Agent,L2 加状态与记忆,L3 加定时自主调度,L4 加双循环与假设生成,往右是它还没走到的知识飞轮形态。原文把 V1、V2、V3 分别对到 L2、L3、L4。裁自同一张官方配图。1

四个读数,四种分母

18 倍来自同一个建模项目上的前后对比。LOOP 架构跑 10 次迭代花了 3 天,折算 0.14 次/小时,没取得突破;换成图架构,12 次迭代 4.7 小时,折算 2.55 次/小时,达成目标。1
这个数的分母是本系统自己的旧架构,比值约 18.4。脚注写明并行方向分别计入迭代次数,所以 2.55 次/小时本身就含着并行的贡献。1
85% 与 83% 的分母是人工基线,原文按实际投入迭代的工作日折算。量的是单个训练任务从开始到出结论的墙钟时间。1
按 8 小时工作日折算,85% 相当于同一件事从一天压到 1.2 小时左右。这个换算是算术示意,原文没给。
85% 里至少掺了三层:机器不休息、并行搜索、少走弯路。脚注交代了计数口径——按训练任务计、并行方向分别计、基础设施故障不计入分母——三层的贡献并没有拆开。1
12/12 那一组全是离线预估目标。方案上线后的真实反馈会回流知识库,原文说它用来校准「离线好」与「线上好」之间的偏差,但没有给出任何一组的对照数。1
四个读数加起来支持的判断是:换架构之后,单位时间内的有效迭代变多了,两个项目都变多了。
它们支持不了「系统比人更会想」——那需要另一个实验,把同一批目标同时交给人和系统,再比方案质量。
自制图,数据取自原文第 3.4、8.1、8.3 节与脚注 [4]。四行分别是 18 倍、85% 与 83%、12/12、线上收益,每行写清它跟什么比、量的是什么、读者拿不走什么。1

和 AutoML 的分界在评估成本

原文用一张表把 AutoResearch 与传统 AutoML 分开。
AutoML 的搜索空间由人预先定义且固定,而它会先证伪并退出一个错误的问题框架,再从论文的数学结构里推出新的候选。1
这个分界在 2025 年就被人跨过去了。6
DeepMind 的 AlphaEvolve 用 LLM 生成程序、用自动评估器打分、用一个实现进化算法的程序库留存候选,给出的解也落在人类预设的搜索空间之外。
它在 Borg 调度上找到的启发式已经在产一年多,平均回收 Google 全球算力的 0.7%;它把内核优化从专家数周压到自动化数天。6
两条路真正分开的地方在评估的成本结构。6
AlphaEvolve 的评估器便宜、能反复调、可大规模并行,所以它优化的是候选怎么生成、怎么进化、怎么留存。
美团面对的是每次评估要几小时、要排队、还可能因基础设施故障失败,所以它优化的是等待怎么管理、失败怎么不污染下一轮决策。1
同一个词「AI 做研究」,落到两套系统上是两件不同的工程。

能拿走什么,拿不走什么

原文给的适用条件是三条:有明确的可量化指标,单次实验成本可接受,实验结果可逆。评价高度主观、搜索空间完全开放、单次实验成本极高且不可逆的场景,这套架构不适用。1
可以搬的三件,按代价从低到高排。
状态文件最便宜也最难替代。把跨会话的状态从会话里搬到文件,配一个定时触发器,一个 agent 就能熬过几小时的训练;这一步不需要换模型。1
硬约束通道次之。把已经证伪的方向写成状态文件里的列表,让代码在下一轮直接跳过,比自己再写一段更长的 prompt 可靠。1
原始证据链最花工,也最值。每轮留下原始指标与原始 diff,结论回溯到证据而不是叙述;没有这一步,前面两件都建立在 agent 的自述上。1
拿不走的有五样:基座模型(未点名),单次迭代的 token 与金额(全篇没有),代码与论文(都没有),线上收益的量级(只有「取得」),失败率(没有)。1
要去读原文,三节最值:3.2 节讲异步循环与状态机的具体做法,5.1 到 5.5 节讲可信度设计,8.4 节是作者自己写的局限。1

它的分量在于把长周期做成了工程问题

这篇材料真正处理的是一个工程问题:让 agent 连续几周无人值守地跑实验,怎么做到不失控。「AI 能不能自己找到方向」这一层,它当作前提用掉了;力气花在后面那些接不住的地方。
真正难的是失败之后怎么接上。会话断了,状态在不在;工具超时了,这一轮算不算数;结论错了,下一轮会不会拿它当前提;经验留下来,凭什么相信它对下一个项目也对。1
美团列出的清单是:状态、锁、幂等、超时、硬约束、原始证据、晋升门槛、故障分类。这张清单里没有一条来自模型能力。
作者自己给了评估标准:不看它跑得多快,看它犯错之后能不能被证据纠正、被约束拦住、被经验库记住。1
这条标准可以拿去量任何一个号称自主研究的系统,也包括这一套。原文没有公布失败率与线上收益,这两项恰好是它自己那条标准最直接的检验。

References

  1. 1
    从 LOOP 到图探索 —— 算法模型的 AutoResearch 自进化系统架构演进之路

    tech.meituan.com

  2. 2
    karpathy/autoresearch

    github.com

  3. 3
    The Anatomy of an Agent Harness

    blog.langchain.com

  4. 4
    Improving Deep Agents with harness engineering

    langchain.com

  5. 5
    Harness engineering: leveraging Codex in an agent-first world

    openai.com

  6. 6
    AlphaEvolve: A Gemini-powered coding agent for designing advanced algorithms

    deepmind.google

大模型团队论文与博客解读
大模型团队论文与博客解读@wei

This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Related content

  • 原型只有三个文件,裁判被冻结
  • 第一次输在上下文,第二次输在等待
  • 图探索的重点在收拢,不在并行
  • 能写进代码的约束,不写进 prompt
  • 四层记忆与一条晋升链
  • Harness 值多少分,外面有两个刻度
  • 四个读数,四种分母
  • 和 AutoML 的分界在评估成本
  • 能拿走什么,拿不走什么
  • 它的分量在于把长周期做成了工程问题