返回文章列表
模型评测

SWE Refactor Bench:代码智能体距离自主完成全仓迁移还有多远?

阅读约 3 分钟

导语

代码智能体已经能够在单个文件、函数或缺陷修复任务中展现出较强能力,但软件工程中的难题往往并不是“把一处代码改对”,而是让一个持续演化多年的完整仓库完成技术栈迁移。SWE Refactor Bench 正是针对这一更长期、更系统的挑战设计的评测基准。

不只检查结果是否能跑

传统编程智能体基准通常关注行为测试:只要程序输出符合预期,就可以视为成功。这种设计可能遗漏一个关键问题——智能体是否真的完成了要求的迁移。例如,面对从一种语言迁移到另一种语言的任务,智能体可能保留原有实现,或采用绕过迁移目标的方式让测试通过。研究团队将这种现象称为“Blindness”。

SWE Refactor Bench 因此采用三阶段协议:

  • 迁移审计:确认目标技术栈或实现方式确实发生变化,先排除“没有迁移但测试通过”的结果。
  • 行为测试:使用固定测试集检查迁移后的程序是否保留原有功能。
  • 智能体验证:由 6 个独立代码智能体生成针对性测试,进一步寻找固定测试集未覆盖的行为差异。

基准包含 20 个全仓库迁移任务,涉及 4 类技术债务,覆盖 SQLite、zlib、libsodium 和 GraphHopper 等项目。任务类型包括 C 到 Rust、Maven 到 Gradle、POSIX 到 WebAssembly 等系统级变化。

结果暴露出两种不同能力

研究汇总了 8 个前沿模型、26 种模型工作量配置的 520 次运行。最终只有 28 次通过全部阶段,占 5.4%;20 个任务中有 13 个没有任何被接受的解法。最佳模型 claude-opus-5 的得分也只有 47.0/100。

更值得注意的是,迁移完整性和行为正确性并不是同一种能力。共有 340 次运行通过了迁移审计,其中 58% 达到固定检查的 99%,但只有 26% 达到 100%。这说明智能体通常能够大幅推进迁移,却很难在边界行为、兼容性和遗漏细节上做到完全可靠。另一方面,少数运行保持了原有行为,却因为没有真正完成迁移而在第一阶段被拦截;更多尝试迁移的运行则在行为测试阶段失败。

不同迁移类别之间也存在明显差异:构建工具链重写得分为 31.4,而语言迁移仅为 5.6。前者往往可以围绕配置和构建流程展开,后者则需要同时处理语义、依赖、运行时差异以及整个仓库中的接口联系。

意义与影响

这项基准把“代码能运行”与“工程目标已完成”明确区分开来,为评估长周期软件维护能力提供了更严格的尺度。它也提醒开发者,单元测试通过并不等于迁移成功,审计迁移状态和主动寻找隐藏行为差异同样重要。

对模型和智能体研发而言,下一步重点不只是生成更多代码,还包括规划跨文件变更、追踪依赖关系、验证迁移覆盖率,以及在失败后进行系统化回滚和修复。SWE Refactor Bench 的结果表明,系统级软件演进仍然是开放问题,当前智能体更适合在人工监督下承担迁移中的局部环节,而不是独立交付一场完整迁移。

来源:Hugging Face Daily Papers

评论

正在确认登录状态……

正在加载评论……

相关文章

CCTest · Blog
MobilePA-Bench:把移动端智能体从“会点屏幕”拉回真实任务
模型评测
cctest.ai
模型评测

MobilePA-Bench:把移动端智能体从“会点屏幕”拉回真实任务

MobilePA-Bench 提出一个面向移动规划智能体的交互式评测环境,重点考察工具调用、长程规划、记忆、技能与子智能体协作。研究显示,现有前沿大模型在严格工具顺序、权限限制和运行时错误下仍不够可靠。

阅读全文