现在各方面的开源 Agent 太多了,用都用不过来,但是我周边很多朋友也还在用着 Claude Code,所以开源 Agent 和 Claude Code 到底谁更好用呢?
我选了 7 个开源 Agent 来和 Claude Code 对比:
- OpenCode:开源通用 Coding Agent
- DeepSeek Harness:插件化Harness
- Pi:极简 Harness
- Goose:通用/MCP Agent
- Cline:IDE Agent
- Aider:Git-native
- mini-SWE-agent:极简/研究型 Agent
用同一套提示词,同一个模型 deepseek-flash,看看谁的效果更好,谁耗 Token 更少。
01. 多 Agent 实测
case 1 经典的鹈鹕骑自行车
提示词:用 Three.js 做一个「鹈鹕骑车」的 3D 动画。
Claude Code:
沙漠公路、棕榈树和速度仪表形成了鲜明的视觉风格,画面有故事感。缺点是主角没手。
OpenCode:
鹈鹕、自行车、道路和树木都齐,整体建模和动画都没啥大问题。
DeepSeek Harness:
粉色界面和控制项很抢眼,却犯了核心建模错误:车轮横躺;整个车是倒着走的。
Pi:
一眼就能看出鹈鹕在踩自行车。天空、山峦和道路干净利落,但是手部与车把没连接好。
Goose:
头盔、围巾、车篮让鹈鹕更有性格,大喉囊也很醒目,就是有穿模。
Cline:
鹈鹕、车、脚踏的关系清楚。鹈鹕扶着车把,车架和车轮比例协调,就是车轮建模多了一圈红色的东西。
Aider:
完成了基础 3D 模型和运动,但没手,脚还是倒着蹬的。
mini-SWE-agent:
画面有明显瑕疵:辐条伸出轮胎。
本轮排名:
OpenCode> Claude Code > Pi > Goose >Cline > mini-SWE-agent> Aider > DeepSeek Harness
case 2 解读陌生项目
给 Agent 一份已有的订单报表项目,不告诉它计算逻辑。它要从命令行入口开始,找到数据在哪里读取、金额怎样计算、报表怎样汇总,再解释最终结果。
orderdesk/report.py:
提示词:我刚接手这个订单报表项目,想弄清楚 9 月报表的计算过程。请先阅读项目,允许运行本地命令,但不要修改已有代码或测试,也不要安装依赖或访问网络。追踪 python -m orderdesk.cli fixtures/orders.json 2026-09 从读取数据到输出的过程,并在项目里写一份 订单报表分析.md:列出最终完整 JSON;逐一说明哪些订单没有计入 net_revenue_cents 及原因;解释当前 repeat_customers 的计算方法。如果退款订单以后不能用于判定复购,应该改哪个函数的哪段逻辑,9 月结果又会变成多少?请标出关键文件和函数名。不要在原始文件上改动。
Claude Code:
资料最详尽,但也最冗长,并明确写了两位客户的复购判定都依赖退款订单,紧接着又算出 lin 去掉退款单仍有两单。关键因果判断自相矛盾。
OpenCode:
报告简洁,所有数值和修改建议都对。但 lin 的复购部分依赖 A-104不够准确:退款单影响了 lin 的计数,并不影响他是否达到复购门槛。
DeepSeek Harness:
证据和行号很全,没有核心错误;不过重复解释较多,还延伸到部分退款等题外情况,读者抓结论要花更久。
Pi:
计算过程完整,却写成 lin 和 zhou 都因此被判定为复购。实际只有 zhou 的复购资格依赖退款单;报告后面的改后结果又说明 lin 仍算复购,前后表述不一致。
Goose:
篇幅适中,调用链、逐单原因和复购变化都讲清楚了,尤其准确抓住 zhou 的第二单来自退款订单。
Cline:
追踪细致,准确说明退款单是被排除,而非作为负数冲减收入;还指出改口径后现有测试的预期值需要更新。稍长,但没有偏离问题。
Aider:
解释最干净。明确指出 lin 去掉退款单后仍有两笔有效订单,只有 zhou 会失去复购资格;建议复用已有的 fulfilled 列表,改动位置也准确。
mini-SWE-agent:
完整且准确,同时给出排除取消和退款与只保留已履约两种改法,并说明它们在当前数据下结果相同。表达略平,改动位置可以再精确到代码行。
本轮排名:
Aider > Cline > Goose > mini-SWE-agent > DeepSeek Harness > OpenCode > Pi > Claude Code
Case 3 Bug 修复
这个 case 会看 Agent 是否先利用现有测试确认现象,修改是否集中在出错的逻辑,以及有没有补上边界测试。
checkout/service.py:
提示词:结算页有用户反馈:用了折扣券后,商品实付金额不足 50 元,页面仍然免运费。规则是折扣后的商品金额达到 5000 分才免运费,否则收 600 分;全额折扣也不能免掉运费。请先运行现有测试复现问题,再定位并修复。只改必要代码,补一条有意义的边界回归测试,最后运行全部测试,告诉我根因、修改文件和测试结果。不要安装依赖或访问网络,不要在原始文件上改动。
Claude Code:
用 6000 分全额折扣,并同时断言原价、折扣、运费和总价,检查最完整。
OpenCode:
用 6000 分全额折扣,验证折扣、运费和总价;修复准确,没有多余改动。
DeepSeek Harness:
分别用 8000 分和 10000 分全额折扣,同样能抓住原始错误,只是离 5000 分边界更远。
Pi:
分别用 8000 分和 10000 分全额折扣,同样能抓住原始错误,只是离 5000 分边界更远。
Goose:
都价恰好 5000 分、折扣 100% 的用例,验证折后商品金额为 0 时运费仍是 600 分。修复和测试都很克制。
Cline:
用 6000 分全额折扣,验证折扣、运费和总价;修复准确,没有多余改动。
Aider:
原价恰好 5000 分、折扣 100% 的用例,验证折后商品金额为 0 时运费仍是 600 分。修复和测试都很克制。
mini-SWE-agent:
同样测试 5000 分边界;它把回归测试放进新文件,保留了原测试文件。
本轮排名:
Goose = Aider = mini-SWE-agent > Claude Code = Cline = OpenCode = Pi = DeepSeek Harness
Case 4 代码重构
这个 case 重构的难点在于守住原有行为:调用方式、返回数据、金额舍入和错误处理都要保持一致。
csv_source.py:
json_source.py:
提示词:ledgerimport/csv_source.py 和 ledgerimport/json_source.py 重复处理日期、金额和状态。我想把字段规范化逻辑收敛到一个共享实现。请保持 load_csv(text) 和 load_json(text) 的签名、返回结构,以及现有有效和无效输入的行为不变。不要引入第三方依赖或改变数据格式。请增加至少一个同时检验 CSV 和 JSON 边界输入的测试,运行全部测试,并说明改动为什么没有改变功能,不要在原始文件上改动。
Claude Code:
共享逻辑收得干净,还把原始实现作为对照,逐项比较返回值、异常类型和消息。对重构不能改行为验证最有说服力。
OpenCode:
代码简洁且测试通过,但新增验证最薄,主要检查几种正常输入、非法日期和状态。
DeepSeek Harness:
保留了 45 条重构前行为样本,连异常消息也逐条核对,验证很充分。不过 CSV 和 JSON 入口仍各自重复组装记录,代码和测试也偏繁复。
Pi:
用一个 normalize_record() 消除了重复代码,边界测试覆盖正负金额舍入、空输入和非法状态;缺少直接与原版对照的验证。
Goose:
实现简洁,边界测试覆盖舍入、空输入和错误状态;另做了 1279 次新旧实现对比,结果没有差异。核对脚本写死了本机路径,移到别处不能直接复用。
Cline:
共享模块和项目内测试做得完整,但附带的「与原版对比」脚本把新版本路径指向了 Goose 的文件夹,因此脚本跑通也不能证明 Cline 的结果。
Aider:
两个入口都直接调用同一个 normalize_record(),改动利落;测试检查了金额边界和异常一致性。但验证较窄。
mini-SWE-agent:
重构正确,日期、金额、状态都有新增测试;非法金额和异常优先顺序没有单独覆盖。
本轮排名:
Claude Code > Goose > DeepSeek Harness > Aider > Cline > Pi > mini-SWE-agent > OpenCode。
Case 5 代码审查
这个 case 中 Agent 需要像审查同事的 PR 一样,判断哪些改动可能造成实际问题。refunddesk/refunds.py:
提示词:请帮我审查这次退款改动。需求写在 PR_DESCRIPTION.md,本次代码变化可以用 git diff HEAD 查看。只指出会导致实际错误的缺陷,不给格式或命名建议。你可以阅读代码和运行测试,但不要修改代码或测试,也不要安装依赖。请在项目里写一份 review-notes.md:每个问题给出文件和行号、触发场景、后果以及建议的修复方向;没有把握的问题不要写,不要在原始文件上改动。
Claude Code:
逐项给出触发场景、实际结果和修复代码,还把并发风险说明为原有问题,没有混进本次 PR 的缺陷。证据最完整。
OpenCode:
报告短,但每条都有触发条件、业务后果和具体修法;明确指出三处改动要分别修复。
DeepSeek Harness:
三处问题都找到了,但给出的修复示例把 order.refunded = True 放在网关调用之前。如果网关调用失败,订单可能已被标记为退款完成。
Pi:
准确关联了 PR 要求、三处代码改动和三个失败测试,修复建议也正确;内容简略。
Goose:
问题和影响都找对了,但把 wallet.credit 标为第 5 行,实际在第 6 行;重复退款检查的行号也有偏差。代码审查报告里的定位错误会增加核对成本。
Cline:
三处问题与失败测试一一对应,位置、后果和修复方向都准确,审查意见可以直接交给开发者处理。
Aider:
三处缺陷判断准确,尤其说清了先退款、后报错仍会造成资金副作用。但报告没有列出完整测试运行结果。
mini-SWE-agent:
三处缺陷和修复方向均正确,写得简洁;缺少测试结果或实际输出作为支撑。
本轮排名:
Claude Code > Cline > OpenCode > Aider > Pi > Goose > mini-SWE-agent > DeepSeek Harness
Case 6 前端页面
这个 case 考察 Agent 如何拆解页面任务、修改 CSS、检查桌面和手机效果的能力,以及发现问题后是否继续调整。
提示词:请为虚构独立书店「行间」完成一个新书策展页,面向喜欢实体书、偏爱安静阅读空间的城市读者。交付本地双击 index.html 就能打开的页面。使用 books.js 里的 6 本书和 assets/ 中的封面;页面要有品牌区、新书主视觉、书目展示和一小段书店介绍。用户应能按分类筛选,点击「加入书袋」后右上角数量立即更新,刷新后仍保留;筛选不能清空已加入数量。请兼顾 1440px 桌面和 390px 手机,避免横向滚动,保证键盘可操作和文字可读。只用原生 HTML、CSS、JavaScript,不用 CDN、远程字体或图片、组件库,也不要安装依赖。完成后说明设计思路,并列出你实际验证过的交互和视口,不要在原始文件上改动。
Claude Code:
书店的安静气质做得很完整,桌面三列书卡、手机单列横向书卡都整齐;书袋还能调整数量。
OpenCode:
首屏有明确的书店风格,信息层次也清楚。手机端坚持两列书卡,文字显得偏小;右上角书袋只显示计数。
DeepSeek Harness:
面端的纸张底纹、主推卡片和深色页脚有辨识度;手机端六本书逐本占满一列,页面实测约 6274px 高,浏览效率明显下降。
Pi:
三本叠放的封面、标题和留白形成了最清楚的首屏;手机端改成易读的横向书卡。书袋面板也能查看所选书目,视觉与使用体验最均衡。
Goose:
排版稳定,桌面三列和手机单列都便于浏览;书袋面板有书目与合计金额。主视觉只突出一本封面,记忆点稍弱。
Cline:
桌面书卡和手机阅读顺序都处理得好,但页面仍写着2025 春季,与其他成品的秋季新书主题不一致;书袋只有数量展示。
Aider:
页面干净,手机端书卡易读,但主视觉只有一本封面,关于书店又排在书目之前,浏览新书要多滑一段。书袋按钮点击后会跳向书目,没有书袋详情。
mini-SWE-agent:
功能可用,也有书袋面板;但桌面书目排成五本一行、最后一本单独一行,手机端两列书卡又让文字和按钮偏挤,版式完成度最低。
本轮排名:
Pi > Claude Code > Goose > Cline > OpenCode > Aider > DeepSeek Harness > mini-SWE-agent
02. 实测花费
- Claude Code:¥1.18,7,904,689 Tokens
- OpenCode:¥1.60,10,479,617 Tokens
- DeepSeek Harness:¥1.92,35,950,662 Tokens
- Pi:¥0.64,3,201,291 Tokens
- Goose:¥1.08,7,762,504 Tokens
- Cline:¥1.97,11,145,123 Tokens
- Aider:¥0.40,138,921 Tokens
- mini-SWE-agent:¥2.28,19,943,150 Tokens
六个 Case 的 总花费从高到低:
mini-SWE-agent(¥2.28)>Cline(¥1.97)>DeepSeek Harness(¥1.92)>OpenCode(¥1.60)>Claude Code(¥1.18)>Goose(¥1.08)>Pi(¥0.64)>Aider(¥0.40)。
03. 挖一挖
六个 Case 跑下来,Agent 确实会影响结果。
3D 动画和前端页面的差距更直观,完成任务与做出好看的成品是两回事。
Claude Code 在重构和代码审查中表现最好,验证和结论都有较扎实的依据,但在订单分析中也出现了关键误判。
开源 Agent 里,Goose 整体发挥较稳;Aider 擅长读项目和处理小范围修改;Pi 的前端页面最出彩;OpenCode 在 3D 动画中交出了亮眼结果。没有哪个 Agent 六轮都领先。
API 账单也得和结果放在一起看:Aider 只花了 ¥0.40,Pi 只花了 ¥0.64;mini-SWE-agent 花了 ¥2.28,却没有取得更高的整体排名。
如果按本轮结果选择,我建议把 Claude Code 用于重构和代码审查,日常使用开源 Agent 先试 Goose;重视费用可以试 Aider,做前端页面可以试 Pi。
当 Agent 进入日常开发流程,值得比较的就不只有一次生成的效果,还有它能否持续交付正确结果,以及团队为此实际付出了多少成本。
原文链接:7 个开源 AI Agent vs Claude Code 横评,谁更好用?




