基于 Y Build 构建 亲手构建这个应用 —— 从提示到部署,绑定你自己的域名。 免费开始
构建上线对比实验室关于 开始构建 →
实验室

我们让 5 个 AI agent 重构同一个代码库

同一个遗留仓库、同一份任务说明,五份截然不同的 diff。我们测了什么、每个 agent 强在哪,以及没人提醒你的那个瓶颈。

Marcus Tan创始工程师,Y Build
发布于 May 24, 2026
13 分钟
阅读
cover · 1200×600

我们拿了一个棘手的遗留仓库——一个 14k 行的 Express + React 应用,没有测试、状态纠缠不清、 数据库层套了三层抽象——然后把同一份重构任务说明交给五个不同的 AI 编程 agent。之后我们 对结果做了 diff。

**披露:**Build Lab 由 Y Build 出品。这个实验关注的是编程 agent 本身;数据是我们自己的, 方法见下文。

这五个,以及它们为什么不同

市场分成三种形态,我们在每一种里都挑了:

  • Claude Code——终端优先的 agent。在公开的 SWE-bench Verified 排行榜上排第一。
  • OpenAI Codex (CLI)——终端优先,token 用量明显更省。
  • Cursor——IDE 原生,现在带平铺式多 agent 模式。
  • Aider——终端、git 原生,外科手术式的 diff。
  • Windsurf——IDE 原生,agent 化的工作流。

任务说明

五个全都一样:*“把数据层提取到一个 repository 接口背后,为每个 repository 方法加一个测试, 并且不改动公开 API。“*然后我们测量了:之后测试是否通过、改动了多少行、公开 API 是否真的没破、 烧了多少 token、墙钟时间,以及一个手工打分的质量分。

发生了什么

Agent耗时测试通过公开 API 保住做法
Claude Code23 min有条理的多文件重构,质量 9.0/10
Cursor47 min更慢,IDE 引导,8.5/10
Codex26 mintoken 最省(约比 Claude Code 少 3–4×)
Aider19 min部分外科手术式,diff 最小——漏了两个方法
Windsurf38 min重写了半层;改坏了一个签名

真正的看点是做法上的差异。Aider 做了一处十行的外科手术式改动就停了;Windsurf 重写了 半个应用,还悄悄改了一个函数签名。Claude Code 在跨越最多文件的情况下守住了计划、没有跑偏—— 代价是同样的工作要花上 Codex 3–4× 的 token。

没人提醒你的那个瓶颈

让我们意外的是这件事:一旦你同时跑不止一个 agent,**agent 就不再是瓶颈了。**它周围的一切 才变成真正的工作量——哪个会话在做什么、谁的 diff 准备好了、哪个分支是哪个、自昨天起又坏了 什么。Cursor 那个平铺式多 agent 视图之所以存在,正是因为串行 review 扩展不上去。跑五个 agent 并没有让我们快 5×;它让review成了那份新的全职工作。

方法论

同一个仓库、同一个 commit、同一份任务说明,每个 agent 用全新的上下文、默认模型。每个我们都 跑了两次,保留更好的那一次。质量由人工按一份固定的评分细则打分(可读性、测试的有效性、diff 范围的克制程度)。完整 diff 和日志:github.com/ybuild/lab-04

结论

不存在”最佳重构 agent”——只存在适合这份活儿的脾性。想要一份紧凑、易于 review 的 diff?Aider 或 Codex。一个必须保持连贯的大型多文件重构?Claude Code。但无论你选哪个,都要为那些 demo 略过的部分留出预算:review agent 干了什么,现在才是真正的工作。

喜欢这篇拆解?
新实验上线当天就送到你邮箱。每周一封,附原始数据。
作者
Marcus Tan 创始工程师,Y Build

Marcus 用 AI 工具上线过 40+ 款生产级应用,并主理 Build Lab 的各项实验 —— 也就是每篇对比与实验笔记背后那些计时、可复现的正面对决。此前曾在两家 YC 创业公司搭建开发者平台。

40+ 个已上线应用 8 年 全栈 作者 · 实验室
更多来自 Marcus → @marcustan github ↗

继续阅读

查看全部实验 →
构建你自己的应用
免费 · 无需信用卡
免费开始 →