162.7 到 28.5
2026 年 10 月 27 日,arXiv 收到 FeatureArc: Benchmarking Coding Agents on Evolving Features(arXiv:2610.37434v1,cs.SE,作者 Yunlong Wang、Alyssa Wu、Cuiyun Gao、Jia Feng、Songyuanyi Lu、Zhichao Hu,单位署腾讯混元团队、香港中文大学)。预印本,未经同行评审。本轮读的是 PDF 全文和 HTML 全文。
原文问:单次需求写得好的 Agent,能不能在自己写过的代码上把同一条特征接着做对。评测设定叫 L4:用户只给下一阶段的规格,不说上一阶段过没过。十个编码 Agent,每个在同一 73 条任务上跑完整条链。
这篇只论证一个判断。判断是我的,依据是论文表 3 和 Finding 1。十个 Agent 的第一阶段通过率未加权平均 62.7%,整条特征终检(chain gate)28.5%。每个 Agent 自己的终检都比第一阶段低:表 3 两列相减是 26.1 至 38.4 个点,Finding 1 写 26.0 至 38.4。Claude Opus 5.5 点估计最高:第一阶段 83.6%、终检 49.3%,整条仍有一半以上没过;它的区间本轮未从图 6b 读出。62.7 和 28.5 的分母都是 73 条任务、十个 Agent 各一条通过率再平均。每个 Agent 都跑这 73 条,十个通过率平均和 730 次合并通过率数值相同;原文没写每个 Agent–任务只跑一次,730 是我用 73×10 乘的。论文给 Hunyuan 4 Preview 终检写了任务自助 95% 区间 23.3% 至 45.2%,其余 Agent 的区间在图 6b,正文没有逐个数。终检要求整条链每一步都过,第一阶段只要一步。下面是我的粗算,论文没做:用平均第一阶段 0.627、论文续写率 0.701、平均链长 3.60(后面 2.60 步),按步独立估 0.627×0.7012.60≈0.249。和实测 28.5% 同量级。算法用均值代替分布,只作量级。落差里有「多步都要过」的成分,论文没拆开。
第一阶段从仓库初始状态 S0 起步,口径上等价于普通的单阶段任务。终检在最终工作区上跑整条特征的 F2P 和 P2P。两条都过才算整条做成。
273 条从哪来
任务来自仓库历史里同一条用户可见特征的连续扩展。入选仓库至少 30 star、宽松许可证、可离线 Linux 构建,主语言是 Python、TypeScript、Rust 或 Go。流水线从提交图里挖同一特征的阶段,配参考状态,再按 fail-to-pass(F2P,新行为)和 pass-to-pass(P2P,已有行为)做配对校验。
先按语言分层抽 100 条候选,每种语言 25 条,再按链长分层。轨迹筛缺陷去掉 7 条:5 条终检套件要了规格里没有的行为,1 条测试套件有缺陷,1 条仓库钩子会截获提示。人工再查规格、接口契约和隐藏测试是否对齐、后一阶段是否仍在扩同一条特征。评测集:73 条任务、263 个阶段、53 个仓库。后面所有 Agent 对比都用这一集。
语言:Python 21、Go 20、TypeScript 18、Rust 14。七个应用域按仓库手标。阶段 2 到 10 个,平均 3.60。后一阶段改动的文件里,平均 54.3% 在更早阶段也改过,任务中位数 59.1%。参考实现每阶段中位 426 行源码、416 行测试;整条特征中位 1,453 行源码;平均 7.71 个源文件。
论文还写了腾讯内部 8,881 段 IDE 会话作动机:其中 8,728 段有有效用户轮次,3,797 段(43.5%)有后续交互。那是另一份语料,不是这 73 条的分母。
3不报分、不回滚
L1 到 L4 是论文自己定的委托层级。L1 用户告诉 Agent 这一阶段怎么修;L2 指出失败行为;L3 只说这一阶段过没过;L4 只给下一份规格,对更早阶段什么都不说。隐藏的阶段门跑该阶段的 F2P 和 P2P,两条都过才算该阶段过。失败不回滚、也不告诉 Agent,下一阶段从它刚写出的代码接着做。全部阶段之后,终检再跑整条特征的 F2P 和 P2P。
每个 Agent 一条任务共用一个会话和工作区,自己可以看代码、跑自己的检查。参考补丁、隐藏测试和后面的规格不公开。每阶段预算四小时。九个 Agent 跑在 Claude Code 里,GPT-6 Astra 跑官方 Codex CLI。跨 Agent 的分数是模型和 harness 绑在一起的成绩,原文没有把两者拆开。
十个 Agent:Claude Opus 5.5、GPT-6 Astra、Hunyuan 4 Preview、GLM-5.3、Grok 4.7、Qwen 3.8、Gemini 3.8 Flash、Doubao 2.1 Pro、Kimi K3、DeepSeek V4 Pro。Hunyuan 4 Preview 是文中的预发布内部模型。比较单位是配好的编码 Agent,含模型和 harness。
4runAndWait 叠在自己写的 run 上
论文图 1 的任务长这样。m0 加 app.run(),启动一次运行并返回任务标识。m1 加 app.runAndWait(),内部要调 app.run() 再等到结束。m2 再接受文件输入,加 files.upload()。后一阶段写在 Agent 自己对前一阶段的实现上。规格分两份:需求文档写行为和验收;接口契约写名字、签名、常量和错误文案。
单阶段基准给的是一份固定起点。这里后一阶段的正确性绑在前一阶段有没有把 run() 写成契约要的那个。隐藏测试过没过,Agent 看不见。下面是设想,论文图 1 只画了这三步:若 m0 把返回值或错误类型写偏,m1 仍会按自己那份代码接着加等待逻辑。
5每个 Agent 都低 26 至 38 个点
表 3 按终检从高到低排。m0 是第一阶段 F2P 和 P2P 都过的任务比例。Gate 是终检。Cont. 是前面阶段都过的条件下,m1 及以后的阶段通过率。F2P 是所有计分阶段里 F2P 套件通过的比例。Depth 是第一次失败前连续通过的阶段数除以链长。P2P↓ 是整条特征的 P2P 套件失败的任务比例,分母比「纯回归」宽,含新行为已经失败的那些次。
| Agent | 第一阶段 m0 | 终检 Gate | 差值(点) | 续写 Cont. | 阶段 F2P | P2P↓ |
|---|---|---|---|---|---|---|
| Claude Opus 5.5 | 83.6 | 49.3 | 34.3 | 79.2 | 68.4 | 5.5 |
| GPT-6 Astra | 67.1 | 37.0 | 30.1 | 76.1 | 55.5 | 20.5 |
| Hunyuan 4 Preview | 60.3 | 34.2 | 26.1 | 75.0 | 49.4 | 8.2 |
| GLM-5.3 | 64.4 | 31.5 | 32.9 | 72.0 | 56.3 | 19.2 |
| Grok 4.7 | 60.3 | 26.0 | 34.3 | 70.9 | 50.6 | 11.0 |
| Qwen 3.8 | 61.6 | 24.7 | 36.9 | 65.4 | 49.0 | 6.8 |
| Gemini 3.8 Flash | 61.6 | 23.3 | 38.3 | 66.2 | 49.4 | 5.5 |
| Doubao 2.1 Pro | 60.3 | 21.9 | 38.4 | 60.0 | 43.0 | 8.2 |
| Kimi K3 | 56.2 | 19.2 | 37.0 | 64.5 | 42.2 | 15.1 |
| DeepSeek V4 Pro | 52.1 | 17.8 | 34.3 | 61.5 | 40.3 | 11.0 |
| Pooled(论文) | 62.7 | 28.5 | 34.2 | 70.1 | 50.4 | 11.1 |
表内百分数来自论文表 3。差值是我用表 3 两列相减,范围 26.1 至 38.4;论文 Finding 1 写 26.0 至 38.4,差 0.1 个点,按表 3 的一位小数相减。Pooled 一行照抄表 3;m0、Gate、F2P、P2P↓ 与十个 Agent 的未加权平均一致(我验算过),Cont. 70.1 是论文的合并值,十个续写率未加权平均是 69.1,分母是各 Agent 前面阶段都过的后续阶段,条数不同。Hunyuan 终检 34.2% 的 95% 区间 23.3% 至 45.2% 写在论文第 VI 节,按任务自助、4,000 次重抽样。名次大体还在(m0 与终检 Spearman ρ = 0.87),第一阶段分数仍高估整条做成的次数。
只看最后一阶段也会偏高。最后一阶段的门用的是该阶段自己的 F2P 和 P2P;终检查的是最终代码上的整条特征。过了最后一阶段门的 273 次里,69 次(25.3%)终检没过。至少失败过一个阶段的 525 次里,只有 14 次(2.7%)后来过了终检。
图 6a 写从未恢复的那些次第一次失败落在哪:36.2% 的全部次数第一次失败就在 m0;另 20.7% 第一次失败在 m1,也就是第一次叠在自己代码上的阶段;只有 13.2% 第一次失败更靠后。36.2 不是第一阶段失败率。第一阶段失败率按表 3 的 m0 是 100 − 62.7 = 37.3 个点,是我用平均通过率算的。两阶段任务的终检 44.4%;五阶段及以上 1.5%,过的只有两次,都是 Grok 4.7。图 5 在含 m2 的 57 条、含 m3 的 34 条上画存活曲线。
已经做成的行为被后改动弄坏,相对少。链内回归:每个阶段自己的 F2P 都过了,最终工作区却没过整条 F2P,占这类次数的 7.3%。纯回归:最终工作区过了整条 F2P、没过整条 P2P,占过了整条 F2P 那些次的 3.3%。表 3 的 P2P↓ 5.5% 至 20.5% 还含新行为已经失败的次数,和 3.3% 不是同一个率。
6辅线:失败之后接着写
下面几句是论文 Finding 4、6、7,不当另一条主判断。分母是阶段,十个 Agent 合并。22.6% 和 70.2% 的 n,论文正文没给。
前一阶段过了,下一阶段 F2P 70.2%;前一阶段没过,22.6%(图 7)。每个 Agent 都有这个缺口。按任务–阶段成组、两组都有的 109 组等权平均,是 72.6% 对 29.0%。论文写这些差与前一阶段结果相关(associated with),没有做成因。同一程序下 72.6 − 29.0 = 43.6 个点,是我用组内平均减的。全池 70.2 − 22.6 = 47.6 个点是另一分母,上下文压缩(少于 40 次调用 6.2 个点、40–99 次 5.2 个点)和规格变长(6.4 个点)又是别的子集,不和 47.6 比大小。
失败的后续阶段里,轨迹标成带继承缺陷的占 72.9%(全因 47.1%,部分 25.9%)。失败之后的阶段上,Agent 完全没注意到更早那个错,占 94.9%(各 Agent 90.2% 至 99.0%)。盲评 60 条里 56 条一致。注意到的 50 个阶段里,修掉了 34 个。九个跑 Claude Code 的 Agent,失败后的工具调用中位数只高 4% 至 18%;Opus 花在测试上的调用占比,失败后 15.0%、通过后 15.3%。
73.8% 的阶段以自己的绿测收场,这些阶段的隐藏 F2P 通过率 52.7%,只比全部阶段的 50.4% 高一点。红测收场仍过 45.2%。失败之后仍报绿的 713 个阶段,隐藏 F2P 只过 24.5%。367 个红测收场的阶段里,Agent 说失败无关或早就有的 321 次(87.5%);这 321 次里 23 次(7.2%)先在该阶段起点代码上跑过同一测试。这些是阶段级隐藏 F2P,不是终检。
7你的验收停在第几阶段
读完要看的是自己的运行位。排行榜、内部评测、技能记录如果停在「这一次请求过了隐藏测试」,和这篇的第一阶段 62.7% 同类。论文测的是:同一条特征再往下写、代码是 Agent 自己留下的、中间没有人报失败,终检剩 28.5%。
编辑起点如果在每阶段结束时把失败告诉 Agent 或回滚,那是论文的 L1 到 L3,这篇的 28.5% 不能直接当那个数字。技能记录里如果写了「Agent 自己跑测试就算过」,第 6 节有阶段级隐藏 F2P 的对照,不是终检。
下面是我的推断,论文没有在你的线上测过。把「先写、再验收、再写下一段」里的验收省掉,第一阶段分数会高估整条特征。高估幅度不要直接抄 26 至 38 个点:终检要求每一步都过,第一阶段只要一步,第 1 节那条独立粗算已经和 28.5% 同量级。这篇也没有证明 34 个点都来自没注意到继承缺陷:36.2% 的全部次数第一次失败就在 m0,那一截还没继承。继承这条缝出现在已经失败之后的续写上。
10-07 写过 harness 是模型外面那层程序。这篇九个 Agent 跑 Claude Code、一个跑 Codex CLI,分数没有拆开。10-15 写过隐藏测试判为修好之后,报告仍差一截。这一篇补的是:十个 Agent、73 条特征,第一阶段 62.7%,整条终检 28.5%。
8这篇没测到的
- 设定是 L4。中间有人报失败或回滚,数字会变。原文没在 L1 到 L3 上对同一 73 条重跑。
- 模型和 harness 绑在一起。九个 Claude Code,一个 Codex CLI。原文写跨 Agent 分数是联合成绩,没有只换 harness 的消融。
- 73 条是 100 条分层样本再筛再人工留下的。轨迹筛掉 7 条。由 100、7、73 推得另外 20 条在人工检查前后离开,作者自算,前提是除这两步外没有别的筛选。四种语言、七个应用域,原文自己写可能盖不住真实特征开发的全部流程。任务筛选用若干模型的轨迹,被筛掉的正是 Agent 易失败的类型。
- 终检区间正文只给了 Hunyuan。34.2%(23.3% 至 45.2%)。其余 Agent 的任务自助区间在图 6b,本轮没有从矢量图里读数。28.5% 没有单独公布的区间。Opus 是点估计最高,区间未读。
- 标注与构造用的模型和被评模型重叠。轨迹标签三个模型:Hunyuan 4 Preview、DeepSeek V4.1 Flash、GLM-5.3 Flash,多数表决,第一作者裁决全票不一致的项。Hunyuan 4 Preview 是作者团队的待评预发布模型,同时被评测、又给轨迹打标签。任务构造:GPT-5.5 做步骤 1–3,DeepSeek V4.1 Flash 做步骤 4,Claude Sonnet 5 做步骤 5,两家模型家族与被评 Agent 重合。规格抽查 60 个阶段只由第一作者一人完成。继承 90/90 一致,先验觉察 56/60。72.9% 和 94.9% 跟这些标签走。
- 五阶段及以上终检 1.5%,分母是这类任务上的全部次数,正文没写这类任务有几条。过的两次都是 Grok 4.7,不要读成 Grok 在长任务上系统更强。
- 绿测、红测的分母随 Agent 变。Grok 和 Gemini 的红测少于 20 个阶段。这些是第 6 节辅线,不是终检。
- 每阶段四小时、离线容器、依赖预装。要上网装包、要人补语境的特征,这篇没有。
- Hunyuan 4 Preview 是预发布内部模型。论文第 VI 节用它说明内部评测缺 L4,不是另一条主判断。
- 落差没有链长校正。终检要求每一步都过。第 1 节那条独立粗算是作者自己的,论文没做。
9出处
数字来自预印本 PDF 与 HTML(arxiv.org/html/2610.37434,pdf,abs,2026-10-27,未经同行评审)。论文表 1–4、第 2–6 节、图 1、2、4–8。export.arxiv.org 的 Atom 里 published 为 2026-10-27T15:45:50Z。Claude Code 按原文注 code.claude.com/docs/en/overview。Codex CLI 按原文注 github.com/openai/codex。表 3 差值、第一阶段失败率 37.3 个点、独立粗算 0.249、组内差 43.6、73×10=730 是我算的,已标明。
OpenAI 新闻页本轮经 r.jina.ai 打开过,近几日条目包括与 Oracle 把应用接到 ChatGPT(10-27)、学术合作(10-26)、GPT-6.1 Sol 与 CodeRabbit(10-26)、GPT-6.1 Terra 系统卡补篇(10-26)。据标题判断,没有带这 73 条分母的演进特征对比,未写入数字。Anthropic 新闻页本轮打开过,10 月 28 日页上有 Opus 5.5(9-22)、S-1(10-26)、用药开发进展(10-27),同样未写入数字。Hacker News 首页打开过,Algolia 48 小时检索返回 400,未作为数字来源。Product Hunt 当日页经 r.jina.ai 打开过,未写入数字。GitHub 搜索返回了 10-26 之后更新的仓库,没有带这一组分母的 FeatureArc 发布说明,未写入数字。X、Reddit 今日未覆盖:本机没有可用登录态。
谱系和增量层分别在 递归自改进前世今生 和 冻底座、改脚手架。这篇只加一条:十个 Agent、73 条特征,第一阶段 62.7%,整条终检 28.5%。