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)尚未完整更新,本文不引用任何未经官方确认的价格数字。 等官方价格确认后会更新本文。


评测维度

这次只测四个维度,都是写代码日常最关心的:

  1. 代码生成准确率:50 道 LeetCode Medium + 真实业务逻辑题,一次通过率
  2. Function calling 成功率:20 个多步骤 Agent 编排场景,工具调用链完整执行率
  3. 响应延迟:P50 / P95,测试节点在香港
  4. 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_amtrefund_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 步。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐