AI 评测指北: Vibe Coding 哪家强? Benchmark 搞一把

2025 年 7 月 28 日
 cosven

Claude Code 、Gemini Cli 等命令行工具相继发布,这两个月 AI 编码又火出了新高度。 我对效率类工具一直都特感兴趣,喜欢折腾和把玩它们,加之这些工具是实实在在提升效率。 我去年底接触 Aider 、Cursor 、Cline 、Continue ,就想写篇博客来记录一下我对它们的感受。 最近又有些新感触!搞个博客来记录一下。

本来呀,我也只是想写一篇 “Aider 是怎么跑 benchmark 的” 的笔记。但看完了它的跑法之后呢, 感觉没啥可聊的。这两天正好看懂车帝搞了个智驾测试,挺有意思(特斯拉是真有点东西?); 加上最近几年工作也是搞测试;再加上有好几个朋友说 Claude Code 牛出天际,我就想看看是不是那么回事!

我就充当一回“懂 AI 帝”,来评测一把。

如何评测?

我也知道,要完善的评测一个工具,是很麻烦的。毕竟场景那么多,每个工具都有自己的擅长领域。 你看懂车帝的评测,就有很多人喷,但也有很多人顶它。我下面先介绍一下我的评测方法。

我看到的“榜单”有两个,一个是 [Aider LLM Leaderboards][aider-bench],还有一个是 [SWE-bench][swe-bench]。 前者可能比较小众,先简单介绍一下后者(让 AI 给我总结一把什么是 SWE-bench )

SWE-bench ( Software Engineering Benchmark )是一个专门用于评估大语言模型( LLM )在真实软件工程任务中表现的基准测试,最初由普林斯顿大学 NLP 团队于 2023 年发布。 它的核心任务是:给定一个 GitHub 开源项目的代码仓库和一个对应的 issue (问题描述),模型需要像人类开发者一样,理解问题、定位代码、修改文件,并生成一个补丁( patch ),最终通过该项目原有的单元测试验证修复是否成功。 SWE-bench 的关键特点: 真实场景:所有任务都来源于 GitHub 上 12 个流行 Python 项目的真实 issue 和对应的 pull request ( PR ),共 2,294 个任务实例。 执行验证:采用“Fail-to-Pass”测试机制,即修复前测试失败,修复后测试通过,才算成功。 高难度:任务涉及多文件理解、跨模块调用、复杂依赖关系等,远超传统代码补全或算法题。

Aider LLM Leaderboards 虽然小众,但人家评测流程和数据都是开源透明的,我觉得它的数据还是挺有参考价值的。 有兴趣的小伙伴可以去看看。

我从 SWE-bench 中选了一个题 [pylint-dev__pylint-6528][pylint-dev__pylint-6528] 来评测这些工具。 我选它,是因为看中了这个题的几个特点:

  1. 难度适中。它的难度评级是 15min - 1hour,简单的题是 15min 以内,比如算法题。难的题要好几个小时。
  2. 这个题的答案要修改两个文件。我觉得这对 Coding 工具是有一些挑战的,只改一个文件在当下这个时间节点,对它们没啥挑战。
  3. 这个题很好理解。我看了一遍题目的 problem statement ,我就看懂了,不需要很强的背景知识。
  4. pylint 这个项目,我自己也接触过,有把握能在本地搭好评测环境、判断 AI 答案的准确性等。

不仅题目,评测流程也很重要。比如说,不同的 PROMPT 就会带来完全不一样的结果。我的评测原则和流程如下

  1. PROMPT 要完全一致,或者基本一致。比如,我给每个工具说的第一句话都是一模一样的

    解决一下这个问题:{problem_statement}

  2. 当工具问我要不要做某个操作时,我基本都会回答是,这样尽可能保证 apple-to-apple 。除非以下场景
    1. 它要跑 lint 命令。我会拒绝。比如,Aider 的一个机制就是会跑 lint 命令来让代码质量更好。但我也用过很多次,它跑 lint 命令的时候,会 lint 并尝试修改老代码,这其实引入了很大的风险。
    2. 它要跑 unit test 命令。我会拒绝。比如,很多工具都会尝试自动跑测试,但根据我的经验,它们的测试命令都非常粗糙。它可能直接建议我跑 pytest ,跑一遍可能都过年了。
    3. 它要给我添加测试。我会拒绝。因为 SWE-bench 数据集里面已经有测试用例了,不需要它来。

我评测流程,如果用伪代码来描述,就是

def evaluate():
	start_tool_with_default_parameters
	send_to_chat: `解决一下这个问题:{problem_statement}`
	enter yes until 它生成修复代码

	# 初步检查答案,保证它的答案不会让回归测试失败
	while 我主观觉得它还有戏:
		run PASS-TO-PASS tests  # 如果这个测试都跑不过,这个工具评测结果不及格
		if fail:
		 	send_to_chat: 有 X 个测试失败了:{failure_summary}
			enter yes until 它再一次生成修复代码
		else:
			# 认为它代码已经修改完毕,直接开始检查它的答案
			break

	# 检查最终答案
	while 我主观觉得它还有戏:
		run FAIL-TO-PASS tests
		if fail:
		 	send_to_chat: 有 X 个测试失败了:{failure_summary}
			enter yes until 它再一次生成修复代码
		else:
			break

更新(07-27 22:36): 这里 while 的地方有个主观部分,你可能会觉得它会影响这个评测的结果。严格来说,确实会有影响。但这里所谓的“主观”其实也是有判断标准的:即如果两次改动的代码都不符合预期,就认为它没戏。这个主要是考虑测试效率。

TL;DR 评测结果

我写了评测过程,让 AI 帮我总结了一个评测结果的表格。打分是我根据这次任务,主观打的

工具 模型 测试结果 小结 打分
Aider deepseek-chat-v3-0324 通过 问题定位非常准确,一次性找到关键文件和函数;修复过程中遇到循环引用但最终解决 ⭐⭐⭐⭐
Gemini Cli gemini-pro 通过 问题定位准确,修复过程需多次交互,最终解决;有时会卡主 ⭐⭐⭐
Claude Code 原生版 通过 问题定位准确,一次性修复成功;交互体验良好,TODO 列表清晰 ⭐⭐⭐⭐⭐
Claude Code Qwen3-Coder-480B 失败 问题定位基本准确,修复方案不正确;交互过程展示过多细节 ⭐⭐
Claude Code deepseek-chat-v3-0324 失败 流程走不完,无法评价
Trae Builder(Auto) 失败 问题定位不够准确,修复方案不正确;交互过程展示过多细节 ⭐⭐
Trae Builder(Claude Sonnet 4) 失败 排不上队,无法评价
Trae Builder(DeepSeek) 失败 问题定位不够准确,修复方案不正确;交互过程展示过多细节 ⭐⭐
Cursor Auto 失败 问题定位准确,修复方案有问题;搜索展示简洁,交互体验勉强还行 ⭐⭐

评测结果分析

在评测过程中,我发现了一些有意思的细节,下面也和读者分享一波。另外评测还有很多局限性,也给自己跌跌甲,轻喷。

我从评测过程中,提炼了几个维度来评价这些工具。这里最重要的指标是问题最终是否被解决了。 如果问题解决了,过程坎坷一点也能接受。如果问题没解决,过程再惊艳,也没用。 因此,我给 Claude Code, Aider, Gemini Cli 打的分数比较高。其它就低一些。

第二个维度是交互体验。这里又可以细分:UI/UX ;可观测性;性能;稳定性。我暂时就想到这几个维度。

维度 问题解决能力 UI/UX 性能与稳定性 收费 综合打分
Aider+DS ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐
Gemini Cli ⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
Claude Code ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
Trae(DS) ⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
Cursor ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐

值得一提的是,模型真的很重要。不同的模型,测出来结果差异可能会差很远。

还有个值得一提的是,这里评测的背景是解决一个实际问题。最后再附加一下个人的综合性观点

  1. 假设我很有钱、或者工作里面需要经常堆 shi ,我应该会选择 cursor 。也会考虑 claude code 。
  2. 在我钱不多、且编码不那么多的情况下,我会选择 Aider + VSCode(Copilot)
  3. Gemini Cli 和 Trae 感觉目前竞争力还差点。如果 Trae 让我免费用,我也乐意 🐶

评测过程记录

评测过程比较细节与繁琐,感兴趣的盆友,可以查看博客原文。

2969 次点击
所在节点    程序员
9 条回复
vincentWdp
2025 年 7 月 28 日
claude code 订阅版, 一个月 20 刀还行, 如果没有付费打分这一项, 或者这一项权重很低的话, 那真的是遥遥领先
cosven
2025 年 7 月 28 日
@vincentWdp claude code 确实有点东西。如果考虑付钱的话,感觉 cursor + claude sonnet 4 / max / opus 模型效果也会很不错。
peerless
2025 年 7 月 28 日
这个评测很有意思
crackidz
2025 年 7 月 28 日
缺少的 Kimi K2 做对比呀
cosven
2025 年 7 月 28 日
@crackidz 本来想用 aider + openrouter 的 kimi k2 free 评测一下的。但它的服务似乎不太稳定,于是就放弃了。

后面可以补充一下:kimi k2, qwen3-coder 这些模型。
cosven
2025 年 7 月 28 日
@crackidz 想起来,aider 自己有个评测集
https://aider.chat/docs/leaderboards/

可以看到,kimi k2 比 deepseek v3 / 老板 deepseek r1 / claude-sonnet-4 要好一点
mimiga
2025 年 7 月 29 日
感谢楼主评测,看完决定试试 aider ,不过命令行工具总感觉操作会很麻烦
handspring
2025 年 7 月 29 日
@cosven 期待和 k2, qwen3-coder 的对比. 我自己用下来感觉 qwen3-coder 的 debug 能力受益于 1M 的上下文, 效果不错, 不像 k2 动不动就要 compacting
cosven
2025 年 7 月 29 日
@mimiga 如果不能一把到位,命令行确实会麻烦很多。
Cursor 的 UI 和交互我感觉都挺不错的。
Aider 的话,不满意就直接 /undo

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1148189

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX