Databricks 实测:在数百万行复杂代码库中,到底哪种模型和 Harness 框架性价比最高、用起来最顺手

同一个模型换个外壳,成本差两倍;开源的 GLM 5.2 和 Opus 4.8 打平,每题便宜三成。考题是从自家已合并的 PR 改的,网上搜不到。
作者:Databricks07-22 · 9 分钟⚑ 厂商通稿 · 立场提示
研究解读 · 小互解读
一分钟速览
  • Databricks 把主流 AI 编程助手拉到自家几百万行代码上考了一遍,考题从工程师已经合并的 PR 改造而来,网上搜不到、模型没背过
  • 最反直觉的一条:按 token 单价挑模型会挑错。Sonnet 5 每 token 比 Opus 4.8 便宜 1.7 倍,一道题做下来反而更贵($2.09 对 $1.94),分还低 6 个点
  • 外壳比模型更影响花销。同一个模型同一个思考档位(thinking effort),换个外壳成本能差两倍以上,差别在每轮往模型嘴里塞多少上下文:Opus 走 claude code 每题累计 742k token,走 pi 只要 236k
  • 开源模型进了第一梯队:GLM 5.2 质量和 Opus 4.8 打平(都是 87%),每题 $1.28 对 $1.94
  • 思考档位不是越高越好:Opus 4.8 拉到 max 档,每题 $3.6 只拿 82 分,比 high 档的 $0.93、85 分又贵又差
⚑这是 Databricks 发在自家博客的内部测试报告,所有数据由他们自己采集、自己判卷。文中提到的 Omnigent 和 Unity AI Gateway 是他们自家产品,文末也预告了后续要讲自家的智能路由。数据按此阅读,正文不再逐处标注。

这是 Databricks 官方发的一份内部实测总结,要回答的问题是:在一个几百万行的大型代码库里,哪种 AI 编程 Agent(模型 + 运行框架的组合)性价比最高、用起来最顺手。7 月 8 日发布,五位作者里包括他们的 CTO、Spark 的作者 Matei Zaharia。

先说说 Databricks 是谁

做数据和 AI 平台的公司,2013 年由 Apache Spark 的原班人马创立。Spark 是大数据处理领域用得最广的开源引擎之一,全世界的企业拿它跑数据管道和机器学习任务。这家公司现在给一万两千多家企业提供数据平台,2026 年 2 月完成 L 轮融资,估值 1340 亿美元,年化收入 54 亿美元。

$1340 亿2026 年 2 月 L 轮融资后估值
$54 亿年化收入,同比增长超过 65%
12000+企业客户
几百万行自家代码库规模,横跨十几种语言

作者分量。五位署名作者里有两位是 Databricks 的联合创始人:Matei Zaharia 是 Spark 的作者、现任 CTO,Patrick Wendell 同为联合创始人。

代码库够复杂。Scala、Go、Rust、Java、Python、TypeScript、Bazel、Protobuf 都在用,工程师每天合并上千次代码改动。这种复杂度是公开测试集模拟不出来的。

动机是省自己的钱。他们做这套测试是为了让自家工程团队用 AI 更划算,属于内部体检,做完把方法和数据一起公开了,不是对外的产品评测。

做法说起来不复杂:拿自家工程师平时写的真实代码改造成考题,跑一遍主流的模型和框架组合,看谁做得对、各花多少钱。得出的几条结论,和大部分人现在的选型习惯是反着的。

每题成本与通过率的散点图,红色虚线是帕累托前沿
全部结果:横轴是每做完一道题花多少钱,纵轴是通过率。越靠左上越划算,右下角的点意味着又贵又差。红色虚线连起来的七个点是当前"花这么多钱能买到的最好结果"。图片来源:Databricks

下面是六条结论,最后一节是可以照着做的部分。

1核心干货

模型分成了「三大梯队」,没必要凡事都用最贵的

他们没有盯着名次看,因为几个点的差距在真实任务里会被拉平。有用的是分组:所有模型和外壳的组合,清楚地落进三个能力档。

档位通过率里面有谁
第一档82–90%Opus 4.8、GLM 5.2、GPT 5.5 的高配组合
第二档71–82%Sonnet 5、Sonnet 4.6、GPT 5.5 中配、GPT 5.4
第三档51–60%GPT-5.4-mini、Haiku 4.5

日常小活不用顶配。改个开关、更新个配置这类操作,中低档模型完全够用,而且便宜得多。但他们过去的默认设置一直是最贵的那些。

分工比升级更划算。看完数据,他们决定把更多任务推给 Haiku 和 GPT 5.4 Mini 这一档,只有复杂的架构探索和深层排错才调最聪明的模型。

模型按通过率聚成三个能力档
三个能力档:82–90%、71–82%、51–60%。右侧标注的是每档内部的价差倍数,第一档内部最大能差 2.2 倍。图片来源:Databricks

该把哪些活推下去,先看日志算出来

动手之前,他们先把所有 AI 编程会话的日志捞出来,看工程师到底在让 AI 干什么。

AI 编程会话按任务复杂度的分布
AI 编程会话按任务复杂度的分布。四档从上到下为:极简单 7.6%、低难度 19.3%、中等难度 61.1%、高难度 12.1%。图片来源:Databricks

约四分之一是低复杂度的活,六成是中等难度,真正需要深度设计探索的只有 12.1%。而默认配置里用的一直是最贵的模型,这中间的浪费是明摆着的。

2核心干货

开源/国产模型崛起,完全能当日常「主力机」

第一档里坐着一个开源模型:GLM 5.2,智谱做的。

质量和 Opus 4.8 打平。两者的通过率都是 87%,统计上分不出高下。

每题便宜约三成。GLM 5.2 每道题 $1.28,Opus 4.8 是 $1.94。

正在往主力位置上放。此前已有内部开发者拿它做日常开发试用,这次的分数和这些人的反馈对上了,据此他们判断可以开始把它铺开当日常主力。

87% / 87%GLM 5.2 与 Opus 4.8 的通过率,统计上打平
$1.28 / $1.94同上两者的每题成本
2.2×第一档内部的最大价差
3核心干货

「单 token 便宜」不等于「最终省钱」

挑模型时几乎所有人都在看同一个数字:每百万 token 多少钱。这个数字预测不了你最后要付多少。

该看的是每做完一件事花多少钱。它和 token 单价之间隔着一个变量:模型为了做完这件事,到底要读多少、想多久。

反直觉的例子在 Sonnet 5 身上。它的 token 单价比 Opus 4.8 便宜约 1.7 倍,但每道题花 $2.09,Opus 4.8 花 $1.94。单价便宜的那个,总账更贵。

贵出来的钱花在绕路上。Sonnet 5 读更多文件、想更久、来回更多轮,吃掉 1.9 倍的 token,通过率还低 6 个点(81% 对 87%)。

1.7×Sonnet 5 的 token 单价比 Opus 4.8 便宜的倍数
$2.09 / $1.94但每完成一道题,Sonnet 5 花得更多
1.9×Sonnet 5 为做完同样的题多烧掉的 token
81% / 87%两者的任务通过率
4核心干货

运行框架(Harness)对成本的影响巨大

同一个模型、同一个思考档位,只换外壳,每题成本能差两倍以上,质量基本没动。大部分人根本没把外壳当成一个可以选的东西。

外壳(harness)是什么:它是把模型的输出变成实际操作的那层软件,决定每一轮给模型看多少代码、能调用哪些工具、失败了怎么重试。Claude Code、Codex、pi 都是外壳,底下换成谁家的模型都能跑。英文材料里一律叫 harness,中文没有统一译法,本文用「外壳」。

同一个厨师在不同的厨房里做同一道菜,出菜速度和成本能差一倍,厨房就是外壳。

成本差两倍,质量基本不动。pi 在每一组对照里都更便宜,倍数从 1.20 到 2.08;六组里五组的通过率差在 3 个点以内。

差别全在上下文管理上。每完成一道题累计喂进模型的内容,Opus 4.8 走 claude code 是 742k token,走 pi 只要 236k。

不同外壳每题重新喂给模型的上下文总量
每完成一道题,累计重新喂给模型的上下文总量(中位数)。上面一组是 Opus 4.8:走 claude code 742k、走 pi 236k,差 3.2 倍;下面一组是 GPT 5.5:走 codex 1235k、走 pi 665k,差 1.9 倍。图片来源:Databricks
pi 与各家原生外壳的成本和质量对照
红点是 pi,空心圈是各家原生外壳,横轴是每题成本。每行右侧标注两者的通过率。图片来源:Databricks
模型 · 思考档位pi 便宜通过率(pi / 原生)
Opus 4.8 · high2.08×85% / 87%(−2)
Opus 4.8 · xhigh1.46×90% / 88%(+2)
Opus 4.8 · max1.20×82% / 89%(−7)
GPT-5.5 · medium1.54×83% / 80%(+3)
GPT-5.5 · high1.22×81% / 83%(−2)
GPT-5.5 · xhigh1.44×78% / 80%(−1)
六组里五组的通过率差在 3 个点以内,Databricks 的结论是"质量保持不变";最高的 max 档是 82% 对 89%,差 7 个点。另:「少喂 3 倍上下文」这个说法在原始博客里是按每轮讲的,配图标的是每题总量中位数,且 3.2 倍只对 Opus 成立,GPT 5.5 那组是 1.9 倍。

pi:工具箱里只有四件东西的编程助手

pi 和 Claude Code、Codex 是同一类东西:装在自己电脑上,在终端里跑,你用一句话说清要干什么,它自己去翻代码、改文件、跑测试,做完了告诉你。

整个工具箱只有四件。读文件、写文件、改文件、执行命令。别的能力等真用上了再临时加载。

常驻说明书不到 1000 个 token。大约五六百个汉字的量。

谁做的。Armin Ronacher 和 Mario Zechner。前者在 Python 圈子里很有名,Flask 和 Jinja2 这两个被用了十几年的框架都是他写的。项目开源免费,GitHub 上大约 5.4 万颗星,接哪家的模型都行。

薄,就是它省钱的全部原因。每一轮对话,外壳都要把一批东西重新塞给模型:常驻说明书、所有工具的用法、之前聊过的内容、这次要看的代码。工具越多、说明书越长、留存的历史越全,这一坨就越大,而它每轮都要重新付一次钱。

功能齐全的外壳 pi 常驻说明书(长) 十几个工具的用法说明 (搜索、待办、子任务…) 之前聊过的全部内容 大段代码上下文 说明书 · 不到 1000 token 四个工具:读 / 写 / 改 / 执行 只留还用得上的那部分 742k 236k 每题累计送进去的 token 同一个模型,同一批题
同样跑 Opus 4.8,两种外壳每题累计送进模型的内容量。左侧各块的构成为示意,右下两个数字来自 Databricks 的实测。

少喂的那部分信息并没有丢,等模型真需要的时候,它自己调「读文件」去取。这套做法能成立,前提是模型肯主动去找、也找得回来。

所以"简单外壳表现最好"这条不是自家王婆卖瓜,赢的是一个第三方开源项目。Databricks 自家的产品是 Omnigent,作用是让你随时换模型换外壳。
5核心干货

思考档位拉满,又贵又差

把模型的思考档位调到最高,不一定更准,但一定更贵。

组合每题成本通过率
Opus 4.8 · pi · high约 $0.9385%
Opus 4.8 · pi · xhigh约 $2.2090%
Opus 4.8 · pi · max约 $3.6082%
GPT 5.5 · codex · med约 $1.3379.5%
GPT 5.5 · codex · xhigh约 $2.4279.5%

档位和成绩不是单调关系。Opus 4.8 走 pi:high 档每题不到一块钱拿 85 分,max 档花到三块六反而掉回 82 分。中间的 xhigh 档才是这个组合的最高点,90 分。

有时多花的钱一分没换来东西。GPT 5.5 走 codex,med 档和 xhigh 档的通过率完全一样,都是 79.5%,后者贵了将近一倍。

档位名跨模型不可比。high、xhigh、max 是各家自己定义的名字,别把不同厂商的同名档位当成同一件事。

上表标"约"的金额与通过率取自原文散点图的坐标,原文正文未逐一列出这些组合。
6核心干货

为什么不直接用公认的 SWE-Bench 等测试集

上面这些结论能不能信,取决于这套考题是怎么出的。公开题库回答不了他们的问题。

答案会泄露。题目和解法都是公开的,时间一长就漏进了模型的训练数据,考的就不再是能力。

不贴合真实环境。他们的代码库横跨十几种语言,Scala、Go、Rust、Java、Python、Bazel、Protobuf 都有,还有大量微服务,通用题库反映不出这种复杂度。

所以他们把自家工程师每天合并的代码改造成考题。一个通过评审的 PR 本身就是一份好材料:有开发者一步步修改的提交记录,有人工评审,还有验证这次改动对不对的测试。

先筛,再改造

筛选条件为什么
够新用最近的记录,题目才反映现在的框架、写法和规范
人写的机器人提交、服务账号、AI 生成和自动生成的改动全部剔除
带高质量测试没有测试就没有判卷标准
改动集中只动少数几个模块,不是横跨半个代码库的大重构
覆盖全栈Scala 后端、Rust 系统代码、React 和 TypeScript 前端、protobuf 和 gRPC 接口、Bazel 配置都要有
一个已合并的 PR 改动 + 评审 + 测试 读懂它想解决什么 重写成任务描述: 说清问题和限制 删掉「为什么这么改」 非测试文件 模型要自己重现的部分 测试文件 藏起来,最后当判卷标准 一道题 出炉
从一个已合并的 PR 到一道考题。本站按原文描述绘制的示意图。

重写题面时删掉解法。PR 描述里通常会解释这个 bug 为什么该这么修,那等于把答案写在了题面上。只留下"要达到什么结果"和"有什么限制"。

测试单独拎出来藏好。他们的构建系统本来就能算出哪些测试依赖被改动的文件,直接把这些测试整套跑起来当判卷标准。

每一道题人工过一遍。脚本和 AI 只用来生成候选题。有些题原来的测试要重写:只允许一种实现方式的要放宽,太松的要收紧,这些改写没用 AI,全部手工做。

测试改写前后对照
一处测试的改写前后:原来的测试卡在字符串必须完全一致,模型换个说法就判失败。对于输出本来就不固定的场景,这不是好的验证方式,于是改成检查行为是否正确。图片来源:Databricks

不用 AI 判卷,因为那会奖励听起来对的答案

判卷的流程是这样:模型自己说"我做完了",就把这一刻的代码存档,把之前藏起来的测试打回去,跑一遍,全过算这道题通过。整个评判过程没有用大模型当裁判,理由是:

We did not use an LLM judge to evaluate correctness, since we've found that this rewards sounding right over being right. 我们没有用大模型来判断对错,因为我们发现那样会奖励「听起来对」而不是「真的对」 · Databricks

测试跑不跑得过是二值的,不存在解释空间。这也是为什么"必须带高质量测试"那道筛子不能省:判卷标准的可信度,全押在这批测试上。

7核心干货

Databricks 是怎么防作弊、做测试的

早期实验里有几个模型的分数好得不真实。把这些运行的完整轨迹调出来人工看,问题出在环境上:每道题都来自一个已经合并的提交,而完整的 git 历史就摆在工作目录里。一个能执行 shell 命令的 Agent,完全可以顺着 git 历史往前翻,直接把当初那个"标准答案"翻出来。

Agent 拿到题目 ↓ 不去写代码,先执行 git log ↓ 在后续提交里找到原始实现 ↓ 照抄 → 测试全过 → 判定「通过」

解法很干脆:每次运行期间,把工作副本和仓库整个断开,让 git 历史取不到。

额外的防作弊措施
他们补上的额外守卫措施。图片来源:Databricks

所有编程 Agent 的外壳和模型都用各自开箱即用的标准配置,配上 Databricks 工程师日常能用到的那些常规工具,没有为测试做特殊调优。

8总结与启示

总结与启示

这套东西不需要 Databricks 的规模才能做。任何团队只要有一批已合并的 PR,手上就已经躺着一套没有模型训练过的基准,判卷标准就是你自己写的那些测试。

混着用,别指望单一模型。能力前沿同时包含 OpenAI、Anthropic 和开源模型,今天没有哪一家能独占所有档位。

按难度分发任务。六成的活是中等难度,简单任务走便宜模型,复杂设计才调顶配。他们下一步是把这个分发做成自动的。

先量一量外壳这一层。选对外壳有时比换模型更省钱,而这一层大部分团队根本没测过。

成本按每完成一件事算。token 单价预测不了总账,思考档位也不是越高越好。

✅ 自己搭一套编程 Agent 基准

他们会继续往里加题,尤其是更难的题,之后每出一个新的 Agent 或外壳都过一遍这套考试。

来源
Benchmarking Coding Agents on Databricks' Multi-Million Line CodebaseVinay Gaba、Ankit Mathur、Rishabh Singh、Patrick Wendell、Matei Zaharia / Databricks·databricks.com·2026-07-08
本站说明
六张图表均为原文所配。「从 PR 到考题」的流程图和「两种外壳送进模型的内容量」对照图是本站按原文描述绘制的示意图。第五节表格中标「约」的金额为从原文散点图读取的坐标位置,原文正文未逐一列出。pi 的开发者、星数与内核设计来自其项目页,GLM 5.2 出自智谱,这两项原文未交代。
↑ 正文结束
✓ 本篇全文免费开放

会员可复制、下载全文 Markdown,还能让你的 AI 订阅和提问。

阅读原文 ↗
📮 新解读第一时间进邮箱

读完觉得有用?留个邮箱,每篇新解读发布就送达,随时退订。