一次 agent 提交要过五道关,账单只记了前三道
从挑文件到人类批准,代码智能的降本只发生在有 token 计价的前三道关;卡住合并的那一道,连计价单位都还没有。
一次 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 规模无关联(deepseek-v4-flash β = +0.014,p = .657;三个模型的区间都跨零),而 PR 规模恰恰是最强的成本驱动——deepseek-v4-flash 的 β = +0.445 [+0.405, +0.484],sonnet-5 更高,为 +0.595 [+0.544, +0.647],qwen3-6 最低,为 +0.325 [+0.272, +0.378]。探索性分析把多出来的 token 定位在评审阶段——agent 在不健康代码上迭代更多次,却不写更多评论。评论条数与真实成本脱钩了。按被评分文件大小调整后,这个关联被吸收,作者据此判断中介变量是文件大小:重构要改的是结构与文件尺寸,不是那个分数。
读这一节有四个口径必须同时摆上桌,否则 6.1% 这个数字会被当成可以直接乘的单价:
一、35.0% / 28.9% / 21.8% 不是实测的 token 中位数差,而是拟合点估计的代数变换。 论文原句写得很清楚:这些数字是「algebraic transforms of the fitted point estimate ,not medians or means of the per-PR token totals」。它是把 6.9 分的健康度差代进回归式算出来的,不是把两组 PR 的账单拿来相减。
二、三个模型的实际拟合样本不是 465。 主样本是 465 个 PR、246 个仓库,但逐模型拟合的 n 分别是 453 / 461 / 453,仓库数 243 / 243 / 242。
三、仓库随机截距的解释力差了一个数量级。 ICC 依次为 0.221、0.032、0.131。deepseek-v4-flash 的 token 成本有约两成方差来自「哪个仓库」,qwen3-6 只有 3.2%——同一个系数,在不同模型身上的聚类结构完全不同。
四、敏感性分析只落在一个模型上。 含护栏停止会话的 PR 只有 qwen3-6 有(103 个 PR、共 120 个会话),另两个 LLM 的计数为零,敏感性拟合与主拟合完全相同。所以「排除打转会话后结论变软」是 qwen3-6 一家的结论,不是三个模型的共同结论。
最锋利的一格就在这个敏感性分析里。qwen3-6 排除这 103 个 PR 后(重拟合 n = 358、203 个仓库),系数从 −0.049 衰减到 −0.026 [−0.068, 0.016],p = .23。被排除的这批中位健康度 6.9(保留的是 8.4)、中位规模 134 行(保留的是 87 行)、token 总量中位高出 2.6 倍;120 个被护栏停下的会话里,119 个以打转告终。论文把话说白了:这个模型单独的结论,取决于注册时把「打转的评审」算作成本还是算作噪声。agent 在没有产出地绕圈子算不算花钱,是一个会计决策,不是一个技术参数。
论文也自己给了收敛的方向:排除这批 PR 等于「conditions the sample on a consequence of the outcome」,即按结果的一个后果来筛选样本,斜率衰减是预期之内的,而不是对效应的否证。这一句比 p = .23 更重要——它说明这个敏感性分析测的是口径,不是真相。另有一格更冷:批量修复跑完之后,中位健康度没有变化;而三个预注册的异味里,只有两个预测了修复阶段的成本。
四、人类批准:唯一没有计价单位的一道
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%。
招聘那一格其实有两层,报告里是分开写的:入职的初级技术岗占比从 27% 掉到 9%,而技术部门在职的初级员工占比从 21% 降到 14%。前者是流入,后者是存量,两者下滑速度不同——存量只降了三分之一,流入降了三分之二。只引前者会把「团队已经在变老」说得比数据更快。
这组数字的意义在于: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 产出都补一个「谁为它负责」的字段,让证据有归属。
代码智能的降本发生在能计价的地方,卡住交付的恰恰是还没被计价的那一段。谁能给信任标上单位,谁就定义了下一阶段的工程标准。
引用核验记录(2026-10-19 编辑时逐条回源)
| 引用 | 一手出处 | 核验结果 |
|---|---|---|
| CQ2-CARE:300 题、43.7% / 46.7%、+6.3 / +9.3 / +12.7、SweRank +0.7/+1.7、SWE-Pruner +2.0/+7.3 | arXiv:2610.21073 摘要 + HTML 全文 | ✅ 全部逐字命中 |
| SWE-bench 仓库均值 3,010 个非测试文件 / 438K 行 | 同文 §1,转引 Jimenez et al., 2024 | ✅ |
| pypa__twine-1225:BM25 填成 issue 模板、LLMLingua-2 删掉第 23 行的 f | 同文图 1 说明 | ✅ |
| CodeHealth:465 PR / 246 仓库、三系数与置信区间 | arXiv:2610.21914 摘要 + 图 5 | ✅ |
| 不健康档 CH 2.8 / 健康档 9.7、6.9 分差、35.0/28.9/21.8% | 同文正文,附「代数变换而非中位数」限定 | ✅(限定为本轮补入) |
| 健康度—规模 β=+0.014 p=.657;规模—成本 β=+0.445 | 同文图 5(b) | ✅(+0.595 / +0.325 为本轮补入) |
| 103 个 PR / 120 个护栏会话 / 119 个打转、n=358 | 同文敏感性分析段 | ✅ |
| 239 人 / 31 国、64.9% / 61.1%、19.4%→43.9%、55.2% vs 28.5%、29.3% vs 14.6% | arXiv:2610.21144 摘要(该文无 HTML 版) | ✅ |
| JevCoder:400 任务、−21.6%~−50.6% | arXiv:2610.19596 摘要 | ✅ |
| BenchChecker:StarCoder 系列、The Stack v2、AUC≈0.9、>20% | arXiv:2610.19447 摘要 | ✅ |
| Code of Theseus:10,764 仓库、29 个 Commit0 库、33.7% vs 35.8%、F1 0.54→0.63 | arXiv:2610.20068 摘要 | ✅ |
| SWE-MISBEHAVIOR:7.4K 样本、11 种越界、98.5% / 50.5% / 53%、CODE-KIT −52% / −34% | arXiv:2610.18206 摘要 | ✅ |
| Doc2Harness:19 模型 × 3 次构建 × 328 用例、53.05% / 27.44% | arXiv:2610.20344 摘要 | ✅ |
| Jev:9 月 15 日限量发布、两周 35% 付费团队、替换 GPT-6 Luna | TechCrunch 2026-10-16 原文 | ✅(TypeSafe AI 名称已核) |
| Anthropic:5 倍提交、192 vs 74、0.75 words/token、250 wpm、80% 等待、会议 +20% / +16%、27%→9% | anthropic.com/research/employment-at-anthropic 原文 | ✅(21%→14% 为本轮补入) |
本轮边界:2610.21144 只有摘要可核(无 HTML 全文),其 55.2% 与 28.5% 的具体题项表述未能回一手;CodeHealth 的三个注册异味中「哪两个预测了修复成本」未从正文定位到具体名称;JevCoder 逐模型的分档降幅未取到分模型表。
终审核验记录(2026-10-19)
终审对全文八条 arXiv 编号逐一回 abs 页核验题名与提交日期,全部一致:2610.21073 Skip the Compressor(10-15)、2610.21914 CodeHealth Predicts the Token Cost of Agentic Code Review(10-15)、2610.21144 Plausible Is Not Enough(10-15)、2610.19596 JevCoder(10-14)、2610.19447 BenchChecker(10-14)、2610.20068 The Code of Theseus(10-14)、2610.20344 Doc2Harness(10-14)、2610.18206 SWE-MISBEHAVIOR(10-13)。
三处领衔数字回一手复核,全部逐字命中:CQ2-CARE 摘要的 300 题 / 43.7% / 46.7% / +6.3 / +9.3 / +12.7 / SweRank +0.7 与 +1.7 / SWE-Pruner +2.0 与 +7.3,其 HTML 正文的 3,010 个非测试文件与 438K 行、pypa__twine-1225 的 f-string 与 twine/sdist.py;CodeHealth 摘要的 465 PR / 246 仓库 / 每分健康度 3.5%–6.1% / 健康度与规模无关 / 三个注册异味中两个预测修复成本 / 批量修复未改中位健康度;2610.21144 摘要的 239 人 / 31 国 / 64.9% / 55.2% 对 28.5% / 61.1% / 19.4% 对 43.9% / 29.3% 对 14.6%。
两条产业事实回原文:Anthropic《How employment is changing at Anthropic》正文逐条命中 5× 提交、192 对 74、0.75 words/token 与 250 words/分钟、约 80% 空闲等待、会议时间中位 +20% 与技术岗个人贡献者 +16%、初级技术岗入职占比 27%→9% 与在职占比 21%→14%,以及「no difference in rates of lines of code subsequently removed or reverted」;TechCrunch(2026-10-16)逐条命中 TypeSafe AI、9 月 15 日限量发布、两周内 35% 付费团队、覆盖约为第二名 Sonnet 5.5 的两倍、替换 GPT-6 Luna。
终审未作数值订正。编辑自行补入的四项限定(代数变换而非中位数、逐模型 n 差异、ICC 0.221/0.032/0.131、敏感性分析只落在 qwen3-6)与两处口径补全(招聘双口径、论文对斜率衰减的自陈定性)逐条复核成立。