当前位置: 首页 > news >正文

20-Claude Code vs Codex vs OpenCode:真实项目横向评测

Claude Code vs Codex vs OpenCode:真实项目横向评测

前 19 篇文章分别深入了三大工具。但"哪个更好"这个问题,只有放在同一个需求面前才能真实回答。这篇文章用同一个项目需求,分别交给三个工具独立完成,从四个维度做客观对比。


评测方法

测试需求

为了公平对比,选择了一个中等复杂度的真实需求:

"为一个 FastAPI 后端项目添加 API Key 认证功能。要求:

  1. 支持创建/吊销 API Key
  2. API Key 用 SHA-256 哈希存储(不存明文)
  3. 中间件验证 API Key,验证失败返回 401
  4. 支持 Key 的过期时间
  5. 写完整测试"

评测环境

项目背景:已有的 FastAPI 后端项目(12 个文件) CLAUDE.md / AGENTS.md:已经写好,三个工具用同一份约束 MCP 配置:三个工具都配了 GitHub MCP 模型: Claude Code → Claude Sonnet 4.6 Codex CLI → GPT-5.3-Codex OpenCode → Claude Sonnet 4.6(和 Claude Code 同模型,对比工具差异)

评测维度

维度评估方法
代码质量安全性、正确性、可维护性、测试覆盖
开发速度从开始到跑通全部测试的时间
交互体验需要的对话轮数、中断次数、返工次数
Token 成本实际消耗的 Token 量 × 单价

实测过程

Claude Code:4 轮对话,22 分钟

第 1 轮(3 分钟): 👤 "帮我添加 API Key 认证功能。要求:创建/吊销 Key, SHA-256 哈希存储,中间件验证,支持过期时间。" 🤖 开始干活: - 直接创建 api_key.py(model + CRUD) - 直接创建 middleware.py(验证中间件) - 注册路由到 main.py → 初版完成,但 API Key 的权限模型没做 第 2 轮(5 分钟): 👤 "不错。但还需要给每个 Key 关联一个 scope(权限范围), 中间件验证时要检查 scope 是否匹配当前路由。" 🤖 修改 model 加 scope 字段 → 修改 middleware 加 scope 检查 → 修改创建/吊销接口支持 scope 参数 → 修改测试覆盖 scope 场景 → 运行测试:3 个 fail → 自动修复:scope 默认值处理不当 → 再跑:全部通过 第 3 轮(8 分钟): 👤 "再加一个功能:管理员可以查看所有 Key 的使用统计—— 每个 Key 被调用了多少次、最后一次调用时间。" 🤖 新增 APIKeyUsage 表 → 新增统计接口 → 修改 middleware 每次验证后记录使用 → 写测试 → 跑测试:1 个 fail(并发记录问题) → 修复:改用异步写入 → 通过 第 4 轮(6 分钟): 👤 "最后加完整测试:happy path + 过期 Key + 错误 scope + 吊销后的 Key" 🤖 写了 12 个测试用例 → 跑测试 → 全部通过 → /review 自查 → 没有安全问题 总计:4 轮对话,22 分钟,22 个测试全部通过。

Codex CLI:3 轮对话,31 分钟

第 1 轮(12 分钟): 👤 同样的需求描述 🤖 自动触发 /plan: → 输出 6 步计划 → 我等了 2 分钟读计划 → 确认 计划执行: → 创建 api_key.py → 创建 middleware.py → 注册路由 → 每步执行后自动检查 → 写完就跑测试:全部通过 → 比 Claude Code 慢,但每一步都很稳 第 2 轮(10 分钟): 👤 "加上 scope 权限控制和使用统计" 🤖 再次 /plan → 输出 3 步子计划 → 我确认 → 执行。这次没有 test fail。 → 但多花了时间在"过度谨慎"上—— 改一个字段,Codex 会确认两遍。 第 3 轮(9 分钟): 👤 "加完整测试" 🤖 自动生成 14 个测试 → 跑测试 → 全部通过 → /review 自查 → "建议给统计接口加缓存,避免频繁查询" 总计:3 轮对话,31 分钟,22 个测试全部通过。

OpenCode:5 轮对话,28 分钟

第 1 轮(7 分钟): 👤 同样的需求描述 🤖 没有 /plan,直接开始 → 创建 api_key.py(结构有点"教科书",不够贴合项目现有风格) → 创建 middleware.py → 和 Claude Code 输出质量接近但稍微粗糙 第 2 轮(6 分钟): 👤 "model 的风格和项目现有的 models/user.py 不一致, 看看 user.py 然后改一下" 🤖 读 user.py → 调整 api_key.py 的风格 → 这次一致了,但多花了一轮对话来修正风格问题 第 3 轮(6 分钟): 👤 "加 scope 权限控制" → 正常完成 第 4 轮(5 分钟): 👤 "加使用统计" → 正常完成,但 middleware 中记录使用的代码有点重复 第 5 轮(4 分钟): 👤 "加完整测试 + 重构一下 middleware 里重复的代码" → 完成 总计:5 轮对话,28 分钟,22 个测试全部通过。

四维对比

一、代码质量

三份最终代码的核心差异:

检查项Claude CodeCodex CLIOpenCode
安全性(SQL 注入/Key 泄露)✅ 参数化查询,哈希存储✅ 同左✅ 同左
Key 哈希存储✅ SHA-256 + salt✅ SHA-256 + salt✅ SHA-256(无 salt)
过期时间处理✅ 时区感知✅ 时区感知⚠️ 用了 UTC now but naive
中间件错误处理✅ 完善的异常处理✅ 更详细的错误码✅ 基本覆盖
代码风格一致性⚠️ 第 4 轮才完全一致✅ 从开始就一致❌ 需要修正才能一致
测试覆盖22 个测试22 个测试22 个测试
代码可读性★★★★☆★★★★★★★★☆☆
安全性总分★★★★☆★★★★★★★★☆☆

结论:Codex CLI 代码质量最高(因为 /plan 先行,每一步都经过审查),Claude Code 紧随其后但需要更多迭代修正,OpenCode 需要更多人工干预来对齐项目风格。

二、开发速度

从需求到全部测试通过: Claude Code ██████████████████░░░░ 22 分钟 OpenCode ██████████████████████ 28 分钟 Codex CLI ████████████████████████████ 31 分钟

但只看时间会得出错误结论。更细致的分析:

Claude Code 快在哪? - 不用 /plan,直接动手(省了 3-5 分钟/轮) - 对话更自然,不需要"确认计划"这个步骤 Codex CLI 慢在哪? - /plan 生成需要 1-2 分钟,阅读和确认需要 1-3 分钟 - 每步执行后自动检查,多了一道工序 - 但慢的这 9 分钟换来了更少的返工和更高的代码质量 OpenCode 慢在哪? - 风格对齐多消耗了一轮对话(6 分钟) - 没有自动的风格学习机制

结论:快速迭代选 Claude Code,一次做对选 Codex CLI。

三、交互体验

维度Claude CodeCodex CLIOpenCode
对话轮数4 轮3 轮5 轮
需要我手动纠正次数2 次0 次3 次
返工次数1 次(scope 默认值)0 次1 次(风格对齐)
需要我做的决策4 个7 个(确认计划)5 个
"惊喜"次数(AI 主动做了超出预期的好事)2 次1 次0 次
"惊吓"次数(AI 做了预料之外的错事)1 次0 次1 次

交互风格差异

Claude Code: "你要 X?好,我开干了。" → 速度快,但有时需要你拉住它。 Codex CLI: "你要 X?我先想想怎么做。" → 计划阶段让你安心,但每一步都要你点头。 OpenCode: "你要 X?好的。" → 像 Claude Code,但没有那么精细的"品味"。

四、成本对比

Claude CodeCodex CLIOpenCode
输入 Token85K120K(/plan 消耗额外上下文)78K
输出 Token18K15K20K
模型单价(每 1M Token)$3 / $15$3 / $12$3 / $15
本次任务成本~$0.53~$0.54~$0.53
月估算(重度使用)$200-500$150-400$15-500*

* OpenCode 如果用 DeepSeek 可低至 $15-30/月。

成本结论:同模型下三者成本几乎一样。真正的成本差异来自"你选什么模型",而不是"你选什么工具"。OpenCode 的成本下限最低(可以用 DeepSeek 等低价模型)。


Benchmark 数据对照

除了自己的实测,还参照了已有的第三方评测:

BenchmarkClaude CodeCodex CLIOpenCode
SWE-bench Verified72.3%68.7%65.1%*
Terminal-Bench58.4%62.1%51.3%*

* OpenCode 的成绩取决于所使用的底层模型。这里用的是 Claude Sonnet 的结果。如果用 GPT-5.5 或 DeepSeek,成绩会变。

解读

  • SWE-bench 测试的是"修复真实 GitHub Issue"的能力——Claude Code 领先
  • Terminal-Bench 测试的是"终端命令的正确性"——Codex CLI 领先(/plan 的作用)
  • OpenCode 作为框架,成绩更依赖底层模型选择

各自的甜区和雷区

Claude Code

甜区: ✅ 前端开发 + 快速迭代(改 UI 看效果 → 改 → 看 → 改) ✅ 日常高频编码(你很清楚要做什么,一小步一小步描述) ✅ 重度 Skills/MCP/Hooks 配置(生态最强) ✅ 单人项目的端到端开发 雷区: ⚠️ 复杂架构重构(没有计划先行,容易跑偏) ⚠️ 长任务自主执行(没有 /goal,需要持续引导) ⚠️ 高安全要求的项目(比 Codex 的 sandbox 模式弱)

Codex CLI

甜区: ✅ 复杂任务(先计划再执行,不会跑偏) ✅ 长任务(/goal 挂后台,不用管) ✅ 多方协作(Subagent + Worktree 并行) ✅ 安全敏感项目(三级权限 + sandbox) 雷区: ⚠️ 快速原型(/plan 的 overhead 在这里是累赘) ⚠️ 高频微调(每一步都要确认计划,节奏慢) ⚠️ 生态不如 Claude Code(缺少 Skills 和 Plugin 系统)

OpenCode

甜区: ✅ 预算极度敏感(配低价模型,成本降到 1/10) ✅ 私有化部署(数据不能离开内网) ✅ 需要多模型混用(不同的任务用不同模型) ✅ 深度定制需求(开源,可以改代码) 雷区: ⚠️ 开箱体验不如商业产品(需要自己配置和调教) ⚠️ 代码风格适应性较弱(不自动学习项目风格) ⚠️ 社区生态较小(Skill/Plugin 数量不是一个量级)

什么时候混用更高效

我实际工作中的混用策略:

需求到来 │ ├─ 需求是否明确? │ ├─ 很明确 → Claude Code 直接执行 │ └─ 比较复杂 → Codex /plan 生成计划 │ ├─ 任务是否可以并行? │ ├─ 可以 → Codex + Subagent 并行 │ └─ 不行 → 单工具串行 │ └─ 成本考量? ├─ 正常预算 → Claude Code / Codex └─ 预算紧张 → OpenCode + DeepSeek

实际协同案例

上周做的一个真实功能——"给 CMS 加全文搜索": 1. Codex /plan(5 分钟) → 生成 8 步计划 → 我删掉 2 步不必要的,调整顺序 2. Claude Code 执行步骤 1-4(15 分钟) → 数据库索引 + 搜索接口 + 前端搜索框 → 快速迭代,每做完一步我确认 3. Codex /goal 执行步骤 5-8(后台跑了 40 分钟) → 中文分词集成 + 高亮 + 搜索结果排序 + E2E 测试 → 我去开了个会,回来就做好了 4. Claude Code /review(3 分钟) → 审查全部改动 → 两个小问题 → 修复 → 合并 总耗时:我实际参与 ~20 分钟,AI 自己跑了 ~40 分钟。 如果用单一工具串行做,预计需要 90 分钟以上。

混用黄金法则

1. 计划交给 Codex,执行交给 Claude Code → Codex 的 /plan 是三个工具里最好的计划生成器 → Claude Code 是三个工具里最快的执行者 2. 简单 + 快节奏 → Claude Code 复杂 + 需要谨慎 → Codex CLI 省钱 + 私有化 → OpenCode 3. 不要让任何一个工具做它不擅长的事 → 别让 Claude Code 做 30 分钟以上的长任务 → 别让 Codex 做高频的 UI 微调 → 别让 OpenCode 做需要强大生态支撑的事

没有"最好的工具",只有"最适合的组合"

经过这次横向评测,最重要的结论是:

单一工具的得分差异很小(都在 70-85 分区间)。但组合使用后,得分可以到 90+。

不要陷入"选哪个"的纠结。三个都装。不同场景切着用。


延伸阅读

  • SWE-bench Verified
  • Terminal-Bench
http://www.rkmt.cn/news/1544195.html

相关文章:

  • 2026贵州美国留学机构哪家好,本科硕士申请榜单与费用核查重点 - 环球新视野
  • 2026全网最详细的AI大模型学习路线_掌握AI大模型应用开发,抢占2026高薪风口!
  • 从BJDCTF EzPHP看PHP代码审计中的多层编码与协议绕过技巧
  • 跨专业零基础进入运营岗:数据分析的价值
  • 管家婆分销软件门店调货及配送验收如何处理?
  • 2026十大GEO优化公司深度测评:AI搜索时代企业服务商选型全指南 - GEO优化
  • 【Springboot毕设全套源码+文档】基于Vue.js+Springboot的房屋租赁系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • AME—基于注意力的地图编码用于学习通用步态运动【文献解读】
  • 北京对抵押权执行异议律所榜单(抵押权与居住权冲突) - 品牌深度评测
  • 如何永久保存微信聊天记录?3步掌握WeChatMsg完整备份指南
  • 3步掌握Cyber Engine Tweaks:解锁《赛博朋克2077》完整游戏体验
  • 计算机毕业设计之jsp高校防疫系统
  • paperxie 课程论文智能写作:终结期末周结课论文熬夜内耗,轻松交出规范高分课业文稿
  • 微软加速自研MAI模型,CEO一篇长文道出了答案
  • 吉他简谱怎么学?一个老玩家的真实经验 - 雨林谷
  • 2026年专业布草供应商深度解析:精选优质品牌与厂家 - 品牌发掘
  • 准周期信号分析:三间隙定理与拓扑数据处理
  • 全网实测|2026主流细纹修护眼霜价位、肤质适配大盘点 - 资讯纵览
  • 微服务通信拓扑与路由状态隔离:基于 Gunicorn + Flask 的多进程线程安全架构与 Pytest 边界防护
  • 6月17日郴州金价更新|靠谱黄金回收门店排名避坑 - 小仙贝贝
  • 基于w2v-BERT 2.0的多语言说话人验证系统优化
  • 北京平谷离婚律所哪家强:3步锁定平谷高水平离婚律师 - 品牌深度评测
  • 2026福州大平层装修公司哪家靠谱?排行榜与避坑攻略 - 资讯纵览
  • 企业AI工作流应用解析
  • 2026年合肥腾飞学校王牌专业推荐:哪些专业更易升本 - 辛云教育资讯
  • 5分钟终极指南:用Obsidian-i18n插件让英文界面秒变中文
  • 搞科研,就别再用普通AI生图了
  • 深圳福田意大利语培训哪个靠谱 - 资讯速览
  • 天赐范式第76天:天赐范式系列文章技术勘误与致歉声明
  • iPaaS科普选型指南 | 多租户 vs. 单租户:SaaS iPaaS的隔离与合规选择