Databricks在百万行代码库上基准测试编码智能体
速览
Databricks在内部大型代码库中评估了多种AI编码代理的性能,以衡量它们在真实复杂环境中的代码生成与修复能力。该测试旨在为开发团队选择最优编码助手提供参考,也反映了AI在软件开发中的实际应用深度。
AI 深度解读
背景
随着AI在软件开发中的广泛应用,Databricks工程师的代码编写方式正在快速变化。过去一年中,用于代码编写的模型和工具(harness)迅速增多,开发者面临前所未有的选择。Databricks需要了解哪些编码代理(coding agents)在实际编码任务中表现最佳,以及任务性能与成本之间的关系。为此,他们基于自身数百万行代码库构建了一个内部编码基准测试,评估工具在实际工程师任务中的表现。
核心内容
Databricks内部基准测试选取了工程师在Databricks代码库上实际执行的编码任务,涉及对多语言(Python、Go、TypeScript、Scala等)数百万行代码的编辑。任务和解决方案均经过仔细审查以确保准确性。测试覆盖了代码库中各种典型任务,包括Scala后端服务、Rust系统代码、React/TypeScript前端、Protobuf/gRPC契约以及Bazel配置等。
主要结论
- 编码任务的帕累托前沿(最佳性价比) 包括OpenAI、Anthropic和开源模型。这意味着目前只有多种工具的组合才能提供前沿性能。
- 开源模型(尤其是GLM 5.2) 现在能够处理最高难度级别的任务。
- 模型的Token价格 并不能很好地反映端到端任务的实际成本。更大的模型可能更高效地使用Token,总成本反而更低。
- 调用模型的工具(harness) 对成本和质量的影深远。在许多情况下,简单的工具如Pi在我们的工作负载上表现最佳。
模型能力分层
结果显示模型和工具明显分为三个能力层级:
- 高性能层:最智能的模型能有效解决各类问题,但非常昂贵。
- 中低性能层:对常见任务仍然高效,且价格显著更低。
- 日常工作中,工程师处理的任务复杂度差异很大:简单的操作(如翻转标志、更新配置)无需极其智能的模型,而深层设计探索则需要。过去默认使用最昂贵的模型,基于分析发现应将更多工作推向Haiku和GPT 5.4 Mini这类模型。
GLM 5.2的表现
GLM 5.2进入了顶级能力层,在质量上与Opus 4.8统计上持平,但每任务成本为$1.28,而Opus为$1.94。内部开发者反馈一致,GLM已成为日常开发的主力模型。
Token成本 vs 实际任务成本
开发者常根据Token成本估算模型完成任务的费用,但研究发现Token成本往往是不可靠的指标,因为模型推理效率不同。例如:Sonnet 5每Token比Opus 4.8便宜约1.7倍,但Sonnet 5每任务成本$2.09反而高于Opus的$1.94,且任务完成率低6个百分点(81% vs 87%)。原因是Sonnet 5工作时间更长、读取更多内容,消耗了1.9倍的Token。
不同工具的效率差异
使用同一模型、相同思考力,通过不同工具(Claude Code/Codex vs Pi)运行,每任务成本差异显著(某些情况超过2倍),而质量保持不变。主要差异在于每个回合工具向模型提供的上下文量:Pi每回合发送约3倍少的上下文,管理上下文更好,保持更紧凑的工作集,用更少轮次完成任务。结论并非某个工具总是更便宜或原生工具更差,而是模型选择只是拼图的一部分。为此Databricks投资了Omnigent以实现模型和工具的无缝切换。
为何构建自有基准
公共基准(如SWE-Bench、TerminalBench)存在局限:
- 任务是公开的,解决方案可能随时间泄漏到训练数据中。
- 结果对Databricks的多语言多服务代码库(Scala、Go、Rust、Java、Python、Bazel、Protobuf等)不具代表性。
通过基于自家PR构建基准,Databricks能更自信地在不损害开发者效率的前提下推出优化。
基准构建方法
- 任务来源:利用Unity AI Gateway捕获所有编码交互日志,分析工程师使用编码代理的任务复杂度。约1/4为低复杂度,约60%为中等复杂度。但昂贵模型是默认选项,因此有巨大效率提升空间。
- PR筛选:从每天合并的数千个代码变更中提取高质量PR,需满足:
- 时效性:来自近期历史,反映当前使用的框架、模式和约定。
- 人工编写:过滤掉机器人提交、服务账户、完全AI生成及自动生成变更。
- 关联高质量测试套件:包含高质量测试以验证代码变更。
- 自包含:变更局限于少数模块。
- 代表性:选取覆盖全栈的PR分布。
- 任务构建:阅读PR以理解意图,然后摘要为提示(prompt)。重写PR描述,陈述问题或目标,命名约束,并移除解决方案描述。例如去掉“为什么选择某个列表推导式而不是for循环”等解释,确保任务不暗示实现方式。最后人工验证生成的代码是否通过原始PR的测试。
关键要点
- 编码任务的最佳性价比模型来自OpenAI、Anthropic和开源阵营,单一工具无法全面领先。
- 开源模型GLM 5.2已达到顶级能力层,每任务成本$1.28,与Opus 4.8($1.94/任务)质量相当,建议作为日常开发主力。
- 模型的Token价格与实际任务成本脱节:Token更贵的模型可能因推理效率更高反而总成本更低(如Opus 4.8 vs Sonnet 5)。
- 调用模型的工具对成本和效率影响巨大:精简上下文的工具(如Pi)可大幅降低成本而不牺牲质量。
- 公共基准(如SWE-Bench)因任务公开、不匹配特定代码库,无法替代企业自有基准。
- 构建自有基准的关键要素:从实际PR提炼任务、保留意图但移除解决方案描述、人工验证及测试过滤。
- Databricks通过Omnigent实现模型和工具灵活切换,以最大化效率。
意义与影响
Databricks的基准测试为大型企业选择编码AI代理提供了可复用的方法论。它揭示了几个关键洞察:首先,成本控制不能仅看Token单价,而应评估端到端的每任务成本与质量;其次,开源模型已具备实用性,GLM 5.2的表现证明了开源模型可以成为企业日常开发的主力,这有助于降低对专有模型的依赖;再次,工具(harness)的选择与模型选择同等重要,通过优化上下文管理,可以在不降低质量的前提下大幅节约成本。这一工作也强调了企业需要构建定制化基准,因为通用基准无法反映真实代码库的多样性和复杂性。整体而言,Databricks的方法论可以帮助其他组织系统性地评估和部署编码代理,在提升工程效率的同时控制成本。这一举措也预示着未来AI辅助编码将从“一刀切”转向“按任务复杂度灵活调配模型与工具”的精细化策略。
