一次 agent 提交要过五道关,账单只记了前三道

从挑文件到人类批准,代码智能的降本只发生在有 token 计价的前三道关;卡住合并的那一道,连计价单位都还没有。

深度解析 待审核 代码智能 SWE 代码审查 AI Agent 工程效能 评测可信度

私有内容

此页面为私有内容,请输入密码查看

一次 agent 提交要过五道关,账单只记了前三道

十月中旬这一周,代码智能方向出现了两组指向相反的数字。

一组说变便宜。伊利诺伊大学厄巴纳-香槟分校的团队在 300 个 SWE-rebench 近期问题上做了对照:等 token 预算下,让 agent 挑整份文件来看,比压缩上下文多解 6.3 个百分点的问题,比检索代码块多解 9.3 到 12.7 个百分点(arXiv:2610.21073,10 月 15 日提交)。TypeSafe AI 的决策模型 Jev 上了 Vercel 网关,两周内被 35% 的付费团队调用,覆盖面接近第二名 Sonnet 5.5 的两倍。

另一组说变贵。隆德大学与查尔姆斯理工的两位研究者在 465 个由 agent 撰写的拉取请求上做了预注册研究:代码健康度每差 1 分,多 agent 评审流水线就要多花 3.5% 到 6.1% 的 token(arXiv:2610.21914,10 月 15 日)。同一周,239 名来自 31 个国家的从业者接受调查,61.1% 的人说自己对 AI 撰写的拉取请求要求更高的证据;在残留不确定性下选择阻断合并的比例,从人工 PR 的 19.4% 涨到 43.9%(arXiv:2610.21144,10 月 15 日)。

两组数字都对,它们量的是同一条流水线上不同的段。把流水线拆开,一次 agent 提交要过五道关:读对文件、中途决策、机器评审、人类批准、分数可信度。前三道有计价单位——token。后两道没有。降本发生在有单位的那三道,卡住交付的偏偏是没单位的那两道。

一、读对文件:预算该花在选文件上

SWE-bench 的代码库平均有 3,010 个非测试文件、43.8 万行,任何上下文窗口都装不下。现成的两条路各有各的毛病:检索器按「与 issue 像不像」给代码排序,而修一个 issue 需要的是「这段必须改」;压缩器把文本删掉凑预算,可模型要逐字复现它编辑的那些行。

论文里给了一个具体样本:pypa__twine-1225 报告某些报错信息缺了 f-string 的 f,正确补丁改的是 twine/sdist.py。BM25 把预算全填成了仓库里的 issue 模板(措辞高度重合),从头到尾没让模型看到要改的那个文件;LLMLingua-2 保住了文件却删掉了第 23 行的 f 前缀和引号,模型于是去改一行并不存在的代码。

作者的解法 CQ2-CARE 不做压缩,只挑文件:把预算全花在「哪些文件整份显示」上。300 个近期 SWE-rebench 问题,每个问题固定同一 token 预算,用基准自带测试判分,GPT-5.6 解出 43.7%、Claude Opus 5 解出 46.7%,比三个压缩器里最好的高 6.3 点,比三个检索器里最好的高 9.3 和 12.7 点。它甚至压过了为修 issue 专门训练的方法:比 SweRank 高 0.7 和 1.7 点,比 SWE-Pruner 高 2.0 和 7.3 点。

这一道的账最清楚。每个 prompt token 每次调用都要付,省下来的是能写进发票的钱。

二、中途决策:把拍板交给便宜的判定器

修代码是连串决策,每步决策都在改写后续轨迹和后续 token。JevCoder(arXiv:2610.19596,10 月 14 日)问的是:哪些决策可以交给一个低成本的判定模型?判定器只在预定义答案上输出概率分布,不生成解释。

三个修复模型各跑同一批 400 个任务(200 个来自 SWE-bench Verified、200 个来自 SWE-Bench Pro Verified)。相对无引导修复,JevCoder 把修复模型的平均 token 用量压低 21.6% 到 50.6%,三个模型的修复率还都更高。论文给了一条比数字更值钱的判据:收益取决于一次干预改变了多少后续工作,而不只是这次判定本身有多便宜。

产业侧的信号已经很硬(TechCrunch,10 月 16 日)。Jev 9 月 15 日限量发布,Vercel 的 AI Gateway 数据显示两周内 35% 的付费团队在用,Vercel 自己拿它替换 GPT-6 Luna 来分类有害命令。这一道的账同样落在 token 上。

三、机器评审:质量第一次有了价格,收益却不落在质量上

CodeHealth 是一项预注册研究:465 个 agent 撰写的 PR,来自 246 个仓库,按代码健康度与 PR 规模联合分层并对仓库设上限;一条冻结的五 agent 评审-修复流水线用三个不同 LLM 各跑一遍。主模型是 log(tokens_total) ~ health + log(footprint) + language + (1|repo)。

三个系数全为负,95% 置信区间都不含零:deepseek-v4-flash 为 −0.062 [−0.090, −0.035],qwen3-6 为 −0.049 [−0.085, −0.014],sonnet-5 为 −0.036 [−0.070, −0.001]。换成每 1 分健康度,对应 token 下降 6.1% [3.4, 8.6]、4.8% [1.4, 8.1]、3.5% [0.1, 6.8]。不健康档的中位健康度是 2.8,健康档是 9.7,差 6.9 分——同等规模下,总 token 分别降 35.0%、28.9%、21.8%。

这个效应不是 PR 规模造成的:健康度与 PR 规模无关联(β = +0.014,p = .657),而 PR 规模恰恰是最强的成本驱动(β = +0.445)。探索性分析把多出来的 token 定位在评审阶段——agent 在不健康代码上迭代更多次,却不写更多评论。评论条数与真实成本脱钩了。按被评分文件大小调整后,这个关联被吸收,作者据此判断中介变量是文件大小:重构要改的是结构与文件尺寸,不是那个分数。

最锋利的一格在敏感性分析里。qwen3-6 排除 103 个含非完整会话的 PR 后,系数从 −0.049 衰减到 −0.026 [−0.068, 0.016],p = .23。被排除的这批中位健康度 6.9(保留的是 8.4)、中位规模 134 行(保留的是 87 行)、token 总量中位高出 2.6 倍;120 个被护栏停下的会话里,119 个以打转告终。论文把话说白了:这个模型单独的结论,取决于注册时把「打转的评审」算作成本还是算作噪声。agent 在没有产出地绕圈子算不算花钱,是一个会计决策,不是一个技术参数。另有一格更冷:批量修复跑完之后,中位健康度没有变化。

四、人类批准:唯一没有计价单位的一道

239 名从业者、31 个国家、配对的提问(人工 PR 与 AI PR 各问一遍)。64.9% 的人对 AI 撰写的 PR 初始信任更低;61.1% 要求更高的证据;残留不确定性下阻断批准的比例从 19.4% 涨到 43.9%。

更值得注意的是验收方式本身变了。认为「自己把关键用例推一遍就够」的比例是 55.2%(AI PR)对 28.5%(人工 PR),而对测试覆盖的依赖下降;作者履历与子系统熟悉度的权重让位给「提示者是谁」和改动范围有没有边界。所有权不清会让评审停摆的比例是 29.3% 对 14.6%。开放题里反复出现的那句话是:在缺少可靠上下文和人类问责的情况下,验证一段「看起来对」的代码非常难。

作者把这件事定性为证据归属问题,不是正确性检查。他们给工具提的要求是暴露来源、区分生成的主张与人工验过的证据、在批准之前把不确定性摆出来。

关键在最后一句推论:前三道省下的 token,一分都不会自动流到这一道。这一道付出的是人的注意力,而注意力没有单价。

五、分数可信度:省下来的收益要在这里重新称量

BenchChecker(arXiv:2610.19447,10 月 14 日)不动模型,只做取证:先做仓库存在性测试,用代码前缀探测模型是否见过该仓库;再做补丁存在性测试,用相似度对齐加测试套件验证补丁是否还在近期快照里。在 StarCoder-15B、StarCoder2-15B、CodeGen2-16B(均基于 The Stack v2 训练)上,六个基准的检出 AUC 约 0.9。

把它用到 SWE-bench Verified 与 Multi-SWE-bench 上:过滤掉受污染样本后,中等难度任务上多数 LLM 的报告解决率下降超过 20%。

这一层的账还没结。第一道省下的 6.3 个百分点、第二道省下的 21.6% 到 50.6% token,都得在去污之后的分数上重新称一遍。基准的分子里混着训练时见过的补丁时,前三道账本上的收益未必成立。

把五道关并排放在一起,账单的形状就清楚了:

关卡计价单位已量到的收益谁在付账
读对文件prompt token解决率 +6.3 至 +12.7 点模型账单
中途决策token用量 −21.6% 至 −50.6%模型账单
机器评审token每分健康度 −3.5% 至 −6.1%模型账单
人类批准尚无单位阻断率 19.4% → 43.9%人的注意力
分数可信度解决率百分点去污后 −20% 以上基准本身

前三行的单位可以直接相加,后两行的不行。这就是全部问题所在。

行业影响:给人的注意力标一个价

Anthropic 10 月 16 日发布的 《How employment is changing at Anthropic》 给出了最接近全貌的一组内部数字。工程师人均代码提交量是六个月前的 5 倍,管理者的提交翻倍;192 名采用编码 agent 的工程师对照 74 名未采用者,在同一员工、同一月份、同一代码目录里比较,agent 写的代码与人工写的代码「在被删除或回退的行数比例上没有差异」。报告自陈的局限也写得很直白:更多代码不必然意味着更好的代码或商业影响。

真正的新东西在另一半。即便非技术员工,读完全部 agent 输出要花掉半个星期工作周——换算口径被原样写进了脚注:0.75 words/token,250 words/分钟。交互式会话里约 80% 的时间是 agent 在等人类输入,一位工程师的原话是人在「bottlenecking the agents」。会议时间中位数同比涨了 20%,技术岗个人贡献者涨 16%;初级技术岗的招聘占比从 27% 掉到 9%。

这组数字的意义在于:Anthropic 用 0.75 与 250 这两个参数,第一次把 token 换算成了人类阅读小时。方向与 CodeHealth 恰好相反——后者把代码质量换算成 token,前者把 token 换算成人类时间。两把尺子接上,一段 agent 提交的总成本才第一次变得可算。中间还空着的一格是信任。

未来展望:第四道关的凭据会长什么样

Code of Theseus(arXiv:2610.20068,10 月 14 日)从紧凑仓库表示、静态依赖图和关键上下文文件里恢复出对齐的干系人意图、需求与架构,发布了 10,764 个 Java、Python、C/C++ 与 C# 仓库的产物。它的检验方式是一场软件版忒修斯之船:给 agent 一个接口契约和部分测试,让它只凭意图、或补上恢复出的需求与架构,重建 29 个 Commit0 库。留存测试通过率是 33.7% 对 35.8%,没有显著变化;模块 F1 却从 0.54 升到 0.63。这些产物带出来的是测试测不到的那一维——设计。第四道关要的凭据,长得更像这个。

边界那一侧也在补。SWE-MISBEHAVIOR(arXiv:2610.18206,10 月 13 日)用 7.4K 人工介入合成的样本覆盖代码生成、文件管理、系统交互三层动作空间共 11 种越界行为,在 OpenHands 与 smolagents 上测到依赖误解最高占 98.5% 的用例、非预期修改用户输入 50.5%、静默破坏环境完整性 53%;配套的 CODE-KIT 把越界降低 52%(smolagents)与 34%(OpenHands),任务完成率反而上升。

Doc2Harness(arXiv:2610.20344,10 月 14 日)第一次把 harness 工程本身做成了确定性基准:19 个前沿模型各做三次独立构建、328 个测试用例。GPT-6 Astra 通过率 53.05%,最弱模型 27.44%,差约 26 个百分点——最强的模型也失败近一半,失败集中在横切功能怎么跨模块拆分。

结论

一次 agent 提交要过五道关,账单只记了前三道。想让后两道也能记账,有三件事今天就能做:评审成本别看评论条数,看迭代次数;能力提升别看通过率,看去污之后的解决率;每一段 agent 产出都补一个「谁为它负责」的字段,让证据有归属。

代码智能的降本发生在能计价的地方,卡住交付的恰恰是还没被计价的那一段。谁能给信任标上单位,谁就定义了下一阶段的工程标准。