GPTMap

reasoning.effort 调参实战:把推理深度变成可调参数

同一个模型,推理深度可以按请求调节。本文讲清 reasoning.effort 的写法、各档位的适用场景、与 max_output_tokens 的配合,以及 effort 调错带来的成本与质量后果。

TL;DR
reasoning.effort 把推理深度变成请求级参数:reasoning={"effort": …},档位从 none 到 max。低档省时省钱适合分类、抽取、格式化;高档换正确率,适合多步推理与难任务。两个必须知道的配合:max_output_tokens 给推理留够预算,配额不足时响应会以 incomplete 状态返回(官方示例的处理方式见正文);effort 越高输出 token 越多,成本随档位上行——按 Sol 促销价 $4/$20 计算,高档任务与低档任务的账单差距会非常明显。本文给出档位选择表与三语言示例。
reasoning.effort 是 OpenAI API 的请求级参数,控制模型在回答前进行内部推理的深度:档位越低响应越快越便宜,档位越高模型'想'得越多、正确率越高。它让'同一个模型、不同深度的思考'成为一行配置。

操作步骤

  1. 按任务性质定初始档

    分类 / 抽取 / 格式化从 none 或 low 起步;常规产品功能用 medium(默认);多步推理、数学、Agent 规划用 high 以上。

  2. 显式写进请求

    在请求里显式加 reasoning={"effort": …},不要依赖默认值——显式设置让行为可预期、可复现。

  3. 给推理留输出预算

    max_output_tokens 计入推理消耗;按官方示例检查 response.status,incomplete 时提高预算或降档。

  4. 用真实任务对比两档

    同一批任务在相邻两档各跑一次,记录正确率与 token 消耗——正确率持平就降档,这就是免费的优化。

reasoning.effort 是 OpenAI API 的请求级参数,控制模型在回答前进行内部推理的深度:档位越低响应越快越便宜,档位越高模型"想"得越多、正确率越高。它让"同一个模型、不同深度的思考"成为一行配置——本教程讲清参数写法、各档位的适用场景、与 max_output_tokens 的配合,以及调错档位的双向代价。

说明:本文代码写法逐行对照官方 Reasoning 指南(文档核对版),lastTestedAt 为核对日期;档位体系以 GPT-5.6 家族为准。

1. 参数写法:三种语言

请求里加 reasoning 参数即可,官方指南给出多语言同构示例:

from openai import OpenAI

client = OpenAI()

resp = client.responses.create(
    model="gpt-5.6-terra",
    reasoning={"effort": "medium"},
    input=[
        {"role": "user", "content": "把这段日志按错误级别分类并汇总"},
    ],
)

print(resp.output_text)

JavaScript 写法同构(reasoning: { effort: "low" }),官方指南还给出了 curl 与 Ruby 的等价示例——参数名与取值跨语言一致。

2. 档位选择表

GPT-5.6 家族的 effort 从 none 到 max 连续可调:

effort适合任务特征
none分类、抽取、格式转换、路由最快最便宜,答案模式固定
low简单改写、短摘要、标签判断快,轻推理
medium日常产品主力速度与质量的折中
high多步推理、复杂调试、代码审查正确率优先
xhigh数学、Agent 长程规划深推理,耗时与成本上行
max必须答对的场景最深推理,用 o-series 思路解决"必须对"

两个选型原则:第一,档位错配是双向浪费——该高不高会答错返工,该低不高会为固定模式的任务支付推理溢价;第二,档位是请求级的,同一个产品里可以按任务难度混用多档。

3. 与 max_output_tokens 的配合:留够推理预算

effort 高时,模型内部推理会消耗输出预算。预算不足的响应不会报错,而是返回 incomplete 状态——官方指南的示例明确演示了这个处理:

const response = await client.responses.create({
  model: "gpt-5.6-terra",
  reasoning: { effort: "medium" },
  input: [{ role: "user", content: prompt }],
  max_output_tokens: 300,
});

if (response.status === "incomplete" && response.incomplete_details) {
  // 预算不足:提高 max_output_tokens 或降低 effort
  console.log(response.incomplete_details);
}

生产代码里这个检查应该是标配:incomplete 的响应看起来"正常返回",内容却是被截断的——不做状态检查,错误会静默流向下游。

4. 成本联动:effort 是账单旋钮

effort 越高,推理消耗的输出 token 越多,而输出单价是输入的数倍。以 Sol 为例(2026-08-21 起促销价 $4/$20,官方 changelog):输出是输入的 5 倍价,推理 token 每多一倍,账单输出项就多一倍。

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-5.6-sol",
    "reasoning": {"effort": "high"},
    "input": "逐步推导这道约束满足问题的解"
  }'

没有跨任务通用的倍数——最准的度量是用同一批任务在相邻两档各跑一次,对比真实 token 消耗与正确率:正确率持平就降档,这是免费的优化。

5. 动态路由:最大的成本杠杆

比"选对一档"更有效的,是"按请求调档":

  1. 打难度标签:规则(任务类型、输入长度)或轻量分类模型。
  2. 分流:简单流量走 none/low,不确定的走 medium,标记为难的走 high 以上。
  3. 校准:定期抽样对比高低档的正确率与成本,调整阈值。

GPT-5.6 家族三档共享 1.05M 上下文与原生多模态,升降档不需要改提示词结构——这是把 effort 用成"账单旋钮"的前提。极端难题的正确率焦虑交给 o-series(effort 固定 max 的专用线),日常流量留在 GPT-5.6 家族按需调档。

常见问题

1. effort 各档位分别适合什么任务?

none / low:分类、抽取、格式转换、简单改写——要快、要便宜、答案模式固定。medium:日常产品主力——常规问答、摘要、代码补全。high / xhigh:多步推理、数学、复杂调试、Agent 规划。max:必须答对的场景——竞赛级数学、关键代码正确性。用错误档位的代价是双向的:该高不高会答错,该低不高会烧钱。

2. 为什么我的响应被截断了?

大概率是 max_output_tokens 给的预算没算上推理消耗——effort 高时推理本身会消耗输出预算。官方示例的做法是显式检查 response.status:状态为 incomplete 时说明预算不足,提高 max_output_tokens 或降低 effort。

3. effort 调高,成本会涨多少?

effort 越高,模型内部推理消耗的输出 token 越多,按输出单价计费。以 Sol 促销价 $4/$20(2026-08-21 起)为例:输出是输入的 5 倍价,推理 token 每多一倍,账单里输出项就多一倍。没有统一倍数——用同一任务在两档下各跑一次,对比真实 token 消耗最准。

4. effort 应该在系统提示里说还是用参数?

用参数。effort 是 API 级配置,写在提示词里的"请深入思考"不改变模型分配的推理预算。参数化还有个好处:可以在路由层按任务难度动态设置,而提示词是静态的。

5. 动态路由怎么落地?

三步:给请求打难度标签(规则或轻量分类模型);低难度流量走 low/none,不确定的走 medium,标签为"难"的走 high 以上;定期抽样对比高低档的正确率,校准阈值。GPT-5.6 家族共享上下文与多模态能力,升降档不需要改提示词结构。

6. o-series 和 effort 有什么关系?

o-series 是"固定最深推理"的专用线——effort 固定 max、慢且贵,为必须答对的场景设计。GPT-5.6 家族的 effort 参数把"思考多深"变成连续可调。日常产品默认用 GPT-5.6 家族调 effort;只有把 effort 拉满仍不够的极难任务才切 o-series。

下一步

关键要点

  • 写法:请求里加 reasoning={"effort": …},档位从 none 到 max(GPT-5.6 家族)
  • 低档(none / low)适合分类、抽取、格式转换——快且便宜;高档(high / xhigh / max)适合多步推理、数学、难调试
  • effort 高 = 推理消耗更多输出 token = 成本上行;按 Sol 促销价 $4/$20(2026-08-21 起)算账,档位选择直接影响账单
  • max_output_tokens 要给推理留预算:预算不足时响应状态为 incomplete,官方示例用 response.status 显式处理
  • 档位选择是折中——显式设置 effort,避免不同请求之间行为漂移
  • 动态路由是最大杠杆:简单流量低档、难题高档,同一套代码按请求切换

常见问题

none / low:分类、抽取、格式转换、简单改写——要快、要便宜、答案模式固定。medium:日常产品主力——常规问答、摘要、代码补全。high / xhigh:多步推理、数学、复杂调试、Agent 规划。max:必须答对的场景——竞赛级数学、关键代码正确性。用错误档位的代价是双向的:该高不高会答错,该低不高会烧钱。

官方参考

相关文章

订阅 GPTMap Weekly

每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。

GPTMap Editorial发布于 2026-08-31 9 分钟阅读
测试环境(EEAT)
最后测试时间:2026-08-31
使用模型:gpt-5.6