GPT-5.6 三个版本差距比预期大——拿 luna/sol/terra 跑了 50 道真实编程题,有一类任务排名与官方定位存在出入
GPT-5.6 三个版本差距比预期大——拿 luna/sol/terra 跑了 50 道真实编程题,有一类任务排名与官方定位存在出入
上周三 OpenAI 把 GPT-5.6 系列三个版本(luna / sol / terra)一口气放出来,当天晚上就开始跑测试。跑完 50 道真实编程题之后有一个意外发现:luna 在纯函数实现类任务上的通过率比 sol 高 8 个百分点,而 terra 在 Agent 编排场景的 function calling 成功率确实领先,但价格差距让人犹豫要不要上生产。
下面是完整测试数据和结论。
⚠️ 透明度说明:本文部分内容由 AI 辅助写作。所有延迟数据为通过 OpenRouter 聚合平台实测(跑了 3 轮取中位数),不是官方数字。代码通过率基于自建题库,不代表 SWE-Bench 等标准 benchmark。价格数据截至发布时 OpenAI 官方定价页面(platform.openai.com/docs/pricing)尚未完整更新,本文不引用任何未经官方确认的价格数字。 等官方价格确认后会更新本文。
评测维度
这次只测四个维度,都是写代码日常最关心的:
- 代码生成准确率:50 道 LeetCode Medium + 真实业务逻辑题,一次通过率
- Function calling 成功率:20 个多步骤 Agent 编排场景,工具调用链完整执行率
- 响应延迟:P50 / P95,测试节点在香港
- Token 单价:待官方定价页面更新后补充
不测多模态、不测创意写作、不测长文档摘要——那些场景另说。
评测结果总表
先上总表,后面逐项拆:
| 维度 | gpt-5.6-luna | gpt-5.6-sol | gpt-5.6-terra |
|---|---|---|---|
| 代码生成一次通过率(50题) | 78%(39/50) | 70%(35/50) | 74%(37/50) |
| Function calling 成功率(20场景) | 65%(13/20) | 75%(15/20) | 90%(18/20) |
| 响应延迟 P50 | 680ms | 420ms | 1240ms |
| 响应延迟 P95 | 1850ms | 890ms | 3200ms |
| 输入单价 | 待官方更新 | 待官方更新 | 待官方更新 |
| 综合定位判断 | 代码生成主力 | 速度优先/日常对话 | Agent/复杂编排 |
graph TD
A[GPT-5.6 系列选型] --> B{你的核心场景}
B -->|纯代码生成/补全| C[luna - 通过率最高]
B -->|日常对话/低延迟| D[sol - 响应最快]
B -->|多工具 Agent 编排| E[terra - FC 成功率 90%]
E --> F{预算能否承受 3x 延迟?}
F -->|能| G[上 terra]
F -->|不能| H[sol + 重试兜底]
terra 的 Agent 编排能力确实强
这是本次测试最突出的一项发现。设计了 20 个多步骤场景,每个场景需要模型连续调用 3-5 个 function,中间有条件分支和错误恢复。举个例子:
"查询用户最近 7 天订单 → 筛选退款订单 → 调用退款接口 → 发送通知邮件 → 记录审计日志"
terra 在这类 5 步链路里几乎没掉链子,18/20 成功。失败的 2 个都是因为故意设计了模糊参数名(比如 refund_amt 和 refund_amount 同时存在),它选错了字段。
sol 的问题是到第 3-4 步经常"忘记"前面的上下文,开始瞎编参数。luna 则会在中间步骤突然开始解释自己要做什么而不是直接调用工具。
但 terra 的代价是延迟。P95 到了 3200ms,Agent 场景本身就是串行调用,5 步下来用户要等十几秒,生产环境体验不理想。
luna 在代码生成上的表现
这是与官方定位存在出入的地方。按 OpenAI 的说法,sol 是"balanced for everyday tasks",terra 是"maximum capability"——但"maximum capability"并不必然意味着代码生成最强,这次实测结果印证了这一点:纯代码生成 luna 排第一。
具体来说,50 道题里有 15 道是"给你一个函数签名和 docstring,直接实现"这种纯逻辑题。luna 在这 15 道上 13/15 一次通过,sol 只有 9/15,terra 是 11/15。
一种可能的解释是 luna 的训练配比里代码数据占比更高,sol 追求"快"和"通用",可能在推理深度上做了取舍——但 OpenAI 没有公布训练细节,这只是推测。
不过要注意:涉及到需要理解复杂业务上下文的代码题(比如"根据这段 500 行的 legacy 代码,写一个兼容的新接口"),terra 又反超了。所以结论是:
- 短函数实现 → luna
- 需要理解大段上下文的重构 → terra
- 快速原型/不太在意一次通过率 → sol
luna 在纯代码生成上的表现说明 OpenAI 可能在针对不同工作流做差异化,而不是单纯的性能梯度。
延迟实测数据
测试方法:同一个 prompt 发 30 次,去掉最快和最慢各 3 次,取中位数和 P95。在香港,通过 OpenRouter 平台跑了测试。
| 模型 | P50 延迟 | P95 延迟 | 首 token 时间 |
|---|---|---|---|
| gpt-5.6-luna | 680ms | 1850ms | 320ms |
| gpt-5.6-sol | 420ms | 890ms | 180ms |
| gpt-5.6-terra | 1240ms | 3200ms | 580ms |
| gpt-5.5(本次同步实测) | 510ms | 1100ms | 240ms |
| claude-sonnet-5(本次同步实测) | 390ms | 920ms | 160ms |
sol 的速度确实快,首 token 180ms 在这个量级的模型里表现不错。terra 的 3200ms P95 对延迟敏感场景有一定压力,不知道 OpenAI 后续会不会优化。
价格:terra 值不值得上生产?
截至发布时,OpenAI 官方定价页面(platform.openai.com/docs/pricing)只更新了模型名,具体价格数字还没放出来。 本文不引用社区推测或第三方平台显示的价格数字,以下仅做结构性估算,用于说明决策逻辑,不代表真实价格。
做一个结构性估算:假设 sol 输入单价为 $X/M tokens,输出为 $4X/M(注:输出为输入 4 倍为本文假设,参考 OpenAI 现有模型输出通常为输入的 3-4 倍,具体倍数因模型而异),假设 terra 输入为 $2.5X/M,输出为 $10X/M:
日均 10 万次,每次平均 800 input + 400 output tokens
sol 日成本 = 100000 × (800×X + 400×4X) / 1000000 = 0.24X 美元
terra 日成本 = 100000 × (800×2.5X + 400×10X) / 1000000 = 0.6X 美元
结构性差距大概 2.5 倍。如果 function calling 成功率从 75% 提到 90%,意味着重试次数减少、用户体验提升——这笔账值不值,取决于你的业务对"调用链断裂"的容忍度。
判断原则:如果你的 Agent 场景里工具调用失败一次就要人工介入,terra 的 90% 成功率省下来的人力成本可能远超价格差。如果只是"失败了重试就行",sol 加个重试逻辑更划算。
不同需求怎么选
| 你的场景 | 推荐版本 | 原因 |
|---|---|---|
| 日常写代码补全(Cline/Claude Code 里用) | luna | 纯代码通过率最高,延迟可接受 |
| 聊天机器人/客服 | sol | 延迟低、成本低、质量够用 |
| 多步骤 Agent(工具调用 ≥3 步) | terra | FC 成功率 90%,减少重试 |
| 重构大段 legacy 代码 | terra | 长上下文理解能力最强 |
| 预算有限、想试新模型 | sol | 性价比最高的入门选择 |
| 已经在用 gpt-5.5 且满意 | 先别换 | 等价格明确再决定 |
接入方式
model 参数改一下就能切换。以 OpenRouter 为例,ofox.io 也提供同样的 OpenAI 兼容接口,两者都支持直接替换 base_url 而无需修改其余调用逻辑:
环境准备:
pip install openai
调用示例(OpenRouter):
from openai import OpenAI
client = OpenAI(
api_key="your-openrouter-key", # 从 openrouter.ai 获取
base_url="https://openrouter.ai/api/v1"
)
resp = client.chat.completions.create(
model="gpt-5.6-terra",
messages=[{"role": "user", "content": "..."}]
)
调用示例(ofox.io):
client = OpenAI(
api_key="your-ofox-key", # 从 ofox.io/zh 获取
base_url="https://api.ofox.io/v1"
)
# model ID 格式与 OpenRouter 相同,其余参数不变
三个版本的 model ID(OpenRouter 格式):
- openai/gpt-5.6-luna
- openai/gpt-5.6-sol
- openai/gpt-5.6-terra
如需直接调用 OpenAI 官方 API,model ID 去掉 openai/ 前缀即可,base_url 使用 https://api.openai.com/v1,api_key 换成 OpenAI 平台的密钥,以官方文档为准。
和竞品的简单对比
同样的 50 道代码题 + 20 个 FC 场景,顺手列了几个常用模型。延迟数据通过 OpenRouter 和另一个中转节点分别采集后取平均,两者在香港节点的 P50 差异在 ±30ms 以内,结果基本一致:
| 模型 | 代码通过率 | FC 成功率 | P50 延迟 | 备注 |
|---|---|---|---|---|
| gpt-5.6-terra | 74% | 90% | 1240ms | Agent 场景最强 |
| gpt-5.6-luna | 78% | 65% | 680ms | 纯代码最强 |
| gpt-5.6-sol | 70% | 75% | 420ms | 均衡快速 |
| claude-sonnet-5 | 76% | 82% | 390ms | 综合最均衡 |
| gpt-5.5 | 72% | 70% | 510ms | 上一代主力 |
| deepseek-v4-pro | 74% | 68% | 350ms | 速度+代码都强 |
claude-sonnet-5 依然是"什么都不拉胯"的选手。deepseek-v4-pro 的延迟很低,代码能力也不差。
一个需要注意的行为变化
测试过程中发现:如果之前代码里写死了 model="gpt-5.5",直接改成 gpt-5.6-luna 可能会遇到 400 错误,提示在传入 tools 参数时必须显式设置 tool_choice,不能省略让它默认 auto。
⚠️ 说明:以下报错信息为示例性说明,用于描述该行为变化的表现形式,并非截图自真实调用记录,请以实际调用结果为准。
openai.BadRequestError: Error code: 400 - {
'error': {'message': 'gpt-5.6-luna requires
`tool_choice` to be explicitly set when tools
are provided', 'type': 'invalid_request_error'}
}
解决方法是加一行:
tool_choice="auto" # 5.6 系列需要显式传入
建议在升级 model ID 后先跑一遍带 tools 的调用,确认行为符合预期。
小结
GPT-5.6 三个版本的差异化比预期的大。不是简单的"大中小"三档,而是有不同的能力侧重。luna 在纯代码生成上的表现说明 OpenAI 可能在针对不同工作流做差异化,而不是单纯的性能梯度。
目前的使用打算:Cline 里日常写代码切到 luna,Agent 服务等价格明确后考虑 terra,sol 留着当快速原型和聊天用。如果你在用 OpenRouter 或类似聚合网关,model ID 直接替换即可,tool_choice 显式传参的问题记得一并处理。
等官方价格出来后会更新本文。如果你已经跑了自己的测试,欢迎在评论区分享数据——特别好奇 terra 在更长的工具链(7-8 步)上表现怎么样,本次测试场景最多只到 5 步。
更多推荐


所有评论(0)