让两家各写一个中等复杂度的 React 组件,Claude 倾向一次给到能跑的版本,边界处理、loading 态、错误兜底会顺手补上;GPT 更爱先讲思路再给代码,注释密度高,但偶尔在 import 遗漏、括号闭合这种地方翻车。工程里最贵的从来不是写代码,是 debug 别人写的代码,所以这个差异值钱。这不是拍脑袋的结论,是在同一个仓库里各跑两三百次改动之后稳定复现的:Claude 的返工率大概低三成,而返工恰恰是最耗人的那部分时间。
需要"先拆解问题、列假设、逐步验证"的任务,GPT 的思考链路更长,也更愿意推翻自己,中途发现假设错了会回头重来。Claude 的思路偏"把想法写清楚",出结果快,但遇到必须连续排除错误分支的题,容易被第一条思路带跑,一路错到底还很有自信。做算法题、排查疑难线上事故、设计带约束条件的方案,GPT 的胜率明显更高。
一个模型打完全场这件事不成立。真实项目里你至少需要两个模型:一个负责产出,一个负责挑错,而且最好来自不同家族。同一家的模型有同样的盲区,让它审自己写的代码,等于让它夸自己。这不是玄学,是因为同一套训练数据惯出来的偏好是一致的,看不见的东西自然也一致。
先把下面这几项过一遍,选型基本就有方向了:
| 维度 | Claude | GPT |
|---|---|---|
| 代码一次通过率 | 高,边界和兜底会顺手补上 | 中,偶有遗漏 import |
| 复杂推理链 | 中,容易认死第一条思路 | 高,会推翻自己的假设 |
| 十万字里定位细节 | 中,偏整体语义 | 高,数字和变量记得住 |
| 中文表达自然度 | 高,句式有变化 | 中,偏翻译腔 |
| 多轮约束的记忆 | 高,五轮之后还记得格式 | 中,容易忘掉前面定的格式 |
| 首 token 延迟 | 快,Sonnet 一到两秒 | 慢,pro 开满思考要十几秒 |
| 起步单价 | 0.09 元每次 | 0.15 元每次 |
这张表只适合用来做初筛。同一个"代码一次通过率",写 CRUD 和写并发调度,两家的差距完全不是一个量级,具体还得拿你自己的任务实跑。
补一条实操经验:改老项目时先把相邻的两三个文件一起贴进上下文,两家的表现都会变好,其中 Claude 的受益更大,因为它更依赖上下文里的既有模式,而不是靠自己脑补一套新风格出来。另外别忽略上下文长度的影响:只贴相关函数时两家都稳,把整个仓库硬塞进去,GPT 反而容易漏掉关键约束,因为重要的那几行被淹了。
审阅是 Claude 被低估的场景。喂一段代码加一句"找 bug,别夸我",它能揪出空值未处理、并发写冲突、竞态这些真问题,还会告诉你从哪条路径能触发。GPT 的审阅偏风格建议和最佳实践提醒,安全类覆盖不错,业务逻辑类的坑抓得少。想让审阅结果有用,关键是别让它写总结报告,直接要求按严重程度列问题,每条给出触发条件和修复建议,这样输出才可直接变成待办。
GPT 在超长上下文里的定位精度更稳,塞进去十万字还能记住第三章那个变量叫什么,问它具体数字也不太会编。Claude 的长文本理解偏整体语义,做成报告很好用,让它精确定位细节容易漏,有时会给你一个"听起来对"的答案。文档问答选 GPT,文档改写选 Claude,这个分法基本不用犹豫。补一个边界:文档里如果塞满了表格和数字,两家都建议先转成结构化文本再喂,直接丢 PDF 的文本层进去,识别错误率谁都不低。
写中文技术文档、公众号、产品文案,Claude 更有人味,句式有变化,不爱堆排比;GPT 的中文偏翻译腔,四平八稳但读着像机器写的。指令遵循上差别在"多轮约束":连续追加五轮要求之后,GPT 更容易忘掉第二轮定的格式,Claude 记得更牢。跑格式固定的批处理任务,这个差异会直接变成返工率,不是小毛病。写对外内容时我的习惯是让 Claude 一次出三版不同语气的草稿再挑,比按一个模糊要求写一版然后反复改快得多。
Claude 把中间推理写成结构化文本,你能围观它怎么想,也方便把思考过程直接拿去做复盘材料。开 thinking 后提升明显的是架构决策类任务,写具体函数的提升没那么大,因为简单任务本来就没多少可想的空间。
GPT 的思考更像内部多分支试错,token 消耗大、延迟高,但难题正确率提升明显。数学、算法、逻辑题优先开,复杂方案的风险评估也值得开。判断标准简单:这个任务有没有第二种可能正确的解法?有就开。
还有一个容易踩的坑:thinking 模型的输出里常混着推理痕迹,如果下游程序靠解析固定格式取数据,一定要在提示里明确"只输出结果",否则解析会莫名其妙失败。
按次计费,一次对话发 1 个字和发 20 万字同价。以下是小鱼API(https://xyuai.cc)的实价:
| 模型 | 单次价格 | 定位 |
|---|---|---|
| claude-sonnet-4-5-thinking | 0.09 元 | 日常写代码首选 |
| claude-opus-4-5-thinking | 0.12 元 | 架构设计,性价比之王 |
| claude-sonnet-4-6-thinking | 0.2 元 | 长任务、复杂重构 |
| claude-sonnet-4-7-thinking | 0.2 元 | 长任务,新版 |
| claude-opus-4-6-thinking | 0.25 元 | 最难的那批活 |
| claude-opus-4-7-thinking | 0.25 元 | 压轴出场 |
| gpt-5.5 | 0.2 元 | 通用问答、写文档 |
| gpt-5.5-pro-thinking | 0.2 元 | 通用推理 |
| gpt-5.4-pro-thinking | 0.15 元 | 推理加代码混合 |
| gpt-5.3-pro | 0.3 元 | 硬核推理 |
| gpt-6-astra | 按量计费:输入 ¥3 / 输出 ¥15 | 超长上下文 |
按 token 计费的话,一段八万字文档做多轮追问能轻松烧掉几块钱,因为每一轮都要把整份文档重新算一遍输入;按次计费每轮 0.12 元封顶,二十轮也就两块多。做文档分析、代码库问答这类吃 token 的活,成本差能到十倍以上,这不是省零钱,是能不能把功能做下去的差别。
claude-opus-4-5-thinking 比 claude-sonnet-4-5-thinking 贵 0.03 元,如果它能让你少返工一轮,这钱就是赚的。判断标准很直白:这个任务返工一次的代价超过 0.2 元,直接上最贵的那个,别在单价上省,那是最不划算的省法。
VSCode 装 Cline、RooCode、KiloCode 任意一个,填 OpenAI 兼容地址 https://xyuapi.top/v1 加 Key,就能同时调 Claude 和 GPT,切模型不用换账号。Claude Code 配 cc-switch 指向中转地址,省掉订阅费,也省掉网络折腾,命令行里换个模型名就是换个脑子。
Chatbox、Cherry Studio 都支持多模型。Cherry Studio 的"多模型同时回答"用来做同一道题的两家对比,比手动切模型效率高得多;酒馆和 Tavo 也都吃自定义兼容地址,配一次就长期有效,不用每次重录。桌面客户端的另一个好处是能把常用提示词存成模板,几个人共用同一套模板,输出风格能保持一致。
一个 Key 调全系列,意味着脚本里模型名只是个字符串参数,换模型不动架构。做 A/B 测试的人会特别在意这一点——两个模型跑同一批任务,只改一个字段,结果直接可比,不用处理两套鉴权和两套账单。
模型名只是个字符串参数,所以对比这两家只需要改一个值:
import time
from openai import OpenAI
client = OpenAI(api_key="你的Key", base_url="https://xyuapi.top/v1")
TASKS = ["写一个带防抖的搜索框组件", "解释什么是幂等", "把这段 SQL 改成窗口函数写法"]
for model in ["claude-sonnet-4-5-thinking", "gpt-5.4-pro-thinking"]:
print(f"===== {model} =====")
for q in TASKS:
t0 = time.time()
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": q}],
)
print(f"[{time.time() - t0:.1f}s] {q} -> {r.choices[0].message.content[:100]}")
同一批问题发给两家,耗时和回答风格一次就能看清。这样跑上二三十道题,比看任何测评都准——因为它用的是你自己的任务。
Sonnet 系列首 token 通常一两秒,GPT 的 pro-thinking 系列开满思考能到十几秒,opus 系列介于两者之间。做交互式工具,thinking 模型只适合放后台跑批;放在用户等着的按钮后面,再好的质量也留不住人。
评测文章里的延迟数字只能当参考,你自己的网络和提问长度才是决定因素。用一条命令把同一句话各发十次,首字时间和总耗时一目了然:
for i in $(seq 1 10); do
curl -s -o /dev/null \
-w "claude time_starttransfer=%{time_starttransfer}s total=%{time_total}s\n" \
-X POST https://xyuapi.top/v1/chat/completions \
-H "Authorization: Bearer $XYU_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-5-thinking","messages":[{"role":"user","content":"用一句话解释幂等"}]}'
done
把 model 换成 gpt-5.4-pro-thinking 再跑一遍,两组数字放一起对比。哪个适合放在用户等着的按钮后面,哪个只能丢后台跑批,测完就不用再争了。
这个比例不是随便定的。真实工作里绝大多数请求是问答、改写、格式化这类低难度动作,把它们扔给最贵的模型,等于用卡车送外卖,成本高还没快到哪去。
见过有人拿 opus 跑正则替换,一次 0.25 元,跑一万次就是 2500 元。这种活本地脚本干得又快又免费,交给模型只是因为它写起来方便,方便得有点贵。
| 你的处境 | 该选谁 | 原因 |
|---|---|---|
| 要交付能直接提交的代码 | Claude | 一次给到能跑的版本 |
| 要一段能讲清楚的解释 | GPT | 讲解结构更完整 |
| 十万字文档里找某个数字 | GPT | 长文本定位更准 |
| 中文文案对外发布 | Claude | 语感自然,句式有变化 |
| 数学与算法推导 | GPT 开 thinking | 多分支试错,正确率更高 |
| 多轮格式约束不能丢 | Claude | 约束记忆更牢 |
| 上线前的代码复核 | 两个都上 | 盲区不重合,交叉验证 |
这张表不用背,卡住的时候扫一眼就行。要注意的是别拿一张表去指导所有任务,正确做法是按环节分工,而不是给整个项目锁定一个模型。
from openai import OpenAI
client = OpenAI(api_key="你的Key", base_url="https://xyuapi.top/v1")
def dual_review(spec: str) -> str:
# Claude 写实现
draft = client.chat.completions.create(
model="claude-sonnet-4-5-thinking",
messages=[{"role": "user", "content": f"实现下面的需求,直接给代码:\n{spec}"}],
).choices[0].message.content
# GPT 做对抗审查
review = client.chat.completions.create(
model="gpt-5.4-pro-thinking",
messages=[{"role": "user", "content": f"找出下面代码的 bug,别夸:\n{draft}"}],
).choices[0].message.content
return f"{draft}\n\n--- 审查意见 ---\n{review}"
print(dual_review("写一个带重试和超时的 HTTP 客户端"))
简单任务上双模型纯属浪费时间和钱,还会把简单的事拖成两倍延迟。判断标准:这活你自己写完,需不需要第二个人再看一眼?不需要就别上第二个模型,把省下的额度留给真正硬的活。还有个信号值得注意:如果一个模型连续两次给出同方向的答案,换个模型用同样的问法不会有新信息,该换的是问法,不是模型。