思考 / 推理 (Thinking / Reasoning)
支持思考的模型在生成最终答案之前会先输出一段推理过程。各厂商触发思考的入参字段不同(thinking.type / reasoning_effort / thinkingConfig / enable_thinking),但思考内容统一通过响应中的 reasoning_content 字段(或 Anthropic Messages 协议的 thinking content block)返回。
完整的思考型号清单见 模型目录 —— 模型卡片标注了 thinkingSupport: true 即代表该型号支持思考,卡片内的 thinkingLink 跳转到本页对应章节。
配置参数 × 厂商 矩阵
| 厂商 / 模型范围 | 适用接口 | 触发参数 | 默认行为 | 可否完全禁用 | 思考强度控制 | 思考输出字段 |
|---|---|---|---|---|---|---|
| Anthropic Claude 4.x / 5.x | v1/messages / v1/chat/completions | thinking.type | 默认关闭;Sonnet 5 默认 adaptive | ✅ | budget_tokens 或 output_config.effort | thinking content block / reasoning_content |
| Azure OpenAI GPT-5.x / o1·o3·o4 | 必须 v1/responses —— v1/chat/completions 调不通 reasoning,推理过程也不返回 | reasoning.effort(详见 Responses API) | 模型自身判定 | ❌ | low / medium / high | 仅 v1/responses 下可见 |
| Google Gemini 3 / 3.1 | v1/chat/completions | reasoning_effort | 低强度常开 | ❌ | low / medium / high | reasoning_content |
| DeepSeek V4 | v1/chat/completions / v1/messages | thinking.type + reasoning_effort | 开启(high) | ✅ | high / max | reasoning_content |
| 阿里 Qwen 3.x | v1/chat/completions(部分型号同时支持 v1/messages) | enable_thinking | 思考型号默认开启 | ✅ | — | delta.reasoning_content(仅流式) |
| 豆包 Doubao Seed 2.0 | v1/chat/completions | reasoning_effort | medium 思考 | ✅(minimal) | minimal / low / medium / high | delta.reasoning_content(流式) |
| Kimi K2 thinking / Grok 4 fast reasoning | v1/chat/completions | 无需配置 | 始终开启 | ❌ | — | reasoning_content |
「可否完全禁用」指在不切换模型的前提下,通过参数让本次请求不产生 reasoning token。具体到每个型号的支持情况以 模型目录 卡片为准。
Anthropic Claude
- 官方文档:Extended Thinking / Adaptive Thinking
- 适用接口:
v1/messages(原生)/v1/chat/completions - 适用模型:以 模型目录 → Claude 中的思考能力标记为准。
触发参数
thinking.type "enabled" | "adaptive" | "disabled"(默认行为因型号而异)
thinking.budget_tokens 整数 1 – 10000(仅 type="enabled" 时有效,且必须 < max_tokens)
thinking.display "summarized" | "omitted"(仅 adaptive 时有效)
output_config.effort "low" | "medium" | "high" | "max" | "xhigh"(仅 adaptive 时有效;具体可用值以型号为准)
enabled—— 手动 budget 模式,推理 token 上限由budget_tokens控制。adaptive—— 模型自动决定推理深度,强度通过output_config.effort控制。disabled—— 关闭思考(默认)。
型号支持矩阵
| 模型 | type: "enabled" | type: "adaptive" |
|---|---|---|
turing/claude-sonnet-5 | ❌ 传了会 400 | ✅ 默认开(可用 disabled 关闭) |
turing/claude-opus-4.8 | ❌ 传了会 400 | ✅ 唯一支持(默认关,需显式开启) |
turing/claude-opus-4.7 | ❌ 传了会 400 | ✅ 唯一支持(默认关,需显式开启) |
turing/claude-opus-4.6 | ✅ | ✅ |
turing/claude-sonnet-4.6 | ✅ | ✅ |
turing/claude-opus-4.5 / claude-4.5-sonnet / 之前 | ✅ 唯一支持 | ❌ |
新型号不兼容点
turing/claude-opus-4.7 / turing/claude-opus-4.8 / turing/claude-sonnet-5 相比 4.6 有不兼容变更:
- 不支持
thinking.type: "enabled",传enabled会返回 400("thinking.type.enabled" is not supported for this model)。 - 推理强度通过
output_config.effort,不再使用budget_tokens。 - Opus 4.8 的
output_config.effort仅接受low/medium/high;传max/xhigh可能返回上游 500。 - 默认行为不同:
Sonnet 5默认 adaptive,可传disabled关闭;Opus 4.7/4.8默认关闭,必须显式传thinking.type: "adaptive"才开启。 - adaptive 模式下
thinking.display默认omitted(只回 signature 不回正文)。需要展示思考内容时显式传summarized。 - 这些型号拒绝非默认采样参数,请求里不要传
temperature/top_p/top_k,否则可能返回 400。
想了解 adaptive 模式的完整对比 / 字段语义 —— 详见 厂商专项 → Anthropic Adaptive Thinking。
示例
{
"model": "turing/claude-opus-4.8",
"max_tokens": 16000,
"thinking": {
"type": "adaptive",
"display": "summarized"
},
"output_config": {
"effort": "high"
},
"messages": [
{ "role": "user", "content": "Explain why the sum of two even numbers is always even." }
]
}
v1/messages 协议下响应里包含 thinking content block;v1/chat/completions 协议下推理内容回填到 delta.reasoning_content。
Google Gemini
Gemini 3 / 3.1 系列
- 官方文档:Gemini 3 Thinking / Vertex AI Generative AI
- 适用接口:
v1/chat/completions - 适用模型:以 模型目录 → Gemini 中的 Gemini 3 / 3.1 思考型号为准。
- 思考无法完全禁用,始终会进行一定程度的推理。
- 强度通过
reasoning_effort控制(low/medium/high)。 - 响应里同时返回
thought_signature,在多轮对话或函数调用中需原样回传(详见下方 Thought Signatures)。
Gemini 3 / 3.1 要求 temperature 保持默认值 1.0。设置低于 1.0 可能导致模型进入无限循环或推理性能严重下降。
{
"model": "turing/gemini-3.1-pro-latest",
"messages": [
{ "role": "user", "content": "一步步求解 x^2 + 5x + 6 = 0" }
],
"thinkingConfig": {
"includeThoughts": true
},
"reasoning_effort": "high"
}
Thought Signatures(多轮 / 函数调用必传)
Gemini 3 系列在使用函数调用或多轮对话时,必须在后续轮次原样传递响应里返回的 thought_signature,用于保持模型推理状态;遗漏会返回 400。
字段位置
- 函数调用响应:
tool_calls[0].provider_specific_fields.thought_signature - 多轮对话响应:
message.provider_specific_fields.thought_signature
SDK 自动处理(推荐)
# Turn 1
response_1 = client.chat.completions.create(
model="turing/gemini-3-pro-latest",
messages=[{"role": "user", "content": "东京天气?"}],
tools=[...],
extra_body={"reasoning_effort": "low"},
)
# Turn 2 直接复用 response_1.choices[0].message,SDK 自动保留 thought_signature
messages = [
{"role": "user", "content": "东京天气?"},
response_1.choices[0].message, # 不要解构,保留整个对象
{"role": "tool", "content": '{"temp": 30}', "tool_call_id": "..."},
]
client.chat.completions.create(
model="turing/gemini-3-pro-latest",
messages=messages,
tools=[...],
extra_body={"reasoning_effort": "low"},
)
手动构造 message(cURL / 自定义流程)
{
"role": "assistant",
"content": null,
"tool_calls": [{
"id": "call_abc",
"type": "function",
"function": {"name": "get_weather", "arguments": "{\"location\": \"Tokyo\"}"},
"provider_specific_fields": {
"thought_signature": "eyJ0aGlua2luZ19zdGF0ZSI6Li4ufQ=="
}
}]
}
thought_signature 不可修改,任何篡改都会导致 400。多轮对话(无 tools)同样需要保留,字段位置在 message.provider_specific_fields.thought_signature。
完整的 SDK 示例 / 多轮对话场景 / 常见错误,详见 厂商专项 → Gemini Thought Signatures。
Gemini 2.5 系列
- 官方文档:Gemini 2.5 Thinking
- 适用模型:以 模型目录 → Gemini 中的 Gemini 2.5 系列为准。
通过 thinkingConfig.thinkingBudget 控制(0 关闭、-1 动态、1 – 24576 显式上限),flash-lite 必须显式传 budget。
DeepSeek
V4 系列(主力)
- 官方文档:DeepSeek Reasoning Model / 百炼 DeepSeek-V4
- 适用接口:
v1/chat/completions/v1/messages - 适用模型:以 模型目录 → DeepSeek 中的 DeepSeek V4 系列为准。
默认开启思考,可显式关闭或调强度。
thinking.type "enabled"(默认) | "disabled"
reasoning_effort "high"(默认) | "max"
旧值 "low" / "medium" → 自动映射为 "high"
旧值 "xhigh" → 自动映射为 "max"
max适合 Claude Code、OpenCode 等复杂 Agent 场景;普通请求显式传入也会生效。- 思考开启时
temperature/top_p/presence_penalty/frequency_penalty不生效(向后兼容,不报错)。
{
"model": "deepseek-v4-pro",
"messages": [{ "role": "user", "content": "..." }],
"thinking": { "type": "enabled" },
"reasoning_effort": "max"
}
老系列
turing/deepseek-r1/turing/deepseek-r1-0528—— 无需配置,始终开启深度推理(见下方 自动思考模型)turing/deepseek-v3-2—— 默认关闭,通过thinking.type: "enabled"显式开启
阿里 Qwen
- 官方文档:通义千问深度思考模式 / Qwen API 参考
- 适用接口:
v1/chat/completions(qwen3.5-plus/qwen3.6-plus·flash·max等主力型号同时支持v1/messages) - 适用模型:以 模型目录 → 阿里 中的 Qwen3 思考型号为准。
enable_thinking 布尔(思考型号默认 true)
通过 OpenAI SDK 调用时放在 extra_body 中
Qwen3 系列思考型号仅支持流式调用,必须设置 stream=true。非流式请求会拒绝。
思考内容在 delta.reasoning_content 字段返回,与 delta.content 是两个独立通道。
- cURL
- Python
curl -N $TURING_BASE_URL/chat/completions \
-H "Authorization: Bearer $TURING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-14b",
"messages": [{ "role": "user", "content": "请解释量子计算的基本原理" }],
"stream": true,
"enable_thinking": true
}'
from openai import OpenAI
client = OpenAI(api_key=TURING_API_KEY, base_url=TURING_BASE_URL)
response = client.chat.completions.create(
model="qwen3-14b",
messages=[{"role": "user", "content": "请解释量子计算的基本原理"}],
stream=True,
extra_body={"enable_thinking": True}, # 关闭思考改为 False
)
for chunk in response:
delta = chunk.choices[0].delta
if getattr(delta, "reasoning_content", None):
print("[思考]", delta.reasoning_content, end="")
if delta.content:
print(delta.content, end="")
豆包 Doubao
- 官方文档:火山方舟 Doubao Seed 2.0 Pro / 火山方舟 API
- 适用接口:
v1/chat/completions - 适用模型:以 模型目录 → 字节 中的 Doubao Seed 2.0 系列为准。
reasoning_effort "minimal" —— 关闭思考,直接作答
"low" —— 轻量思考,优先速度
"medium"(默认) —— 平衡模式
"high" —— 深度思考,处理复杂问题
推理内容在 delta.reasoning_content 字段返回(流式模式)。max_tokens 不计入思考部分,完整输出上限通过 max_completion_tokens(0–65536)控制,该上限包含响应 + 推理总和。
{
"model": "doubao-seed-2-0-pro-260215",
"messages": [{ "role": "user", "content": "..." }],
"stream": true,
"reasoning_effort": "high"
}
自动思考模型(无需配置)
- 适用接口:
v1/chat/completions
这类模型在请求中不需要任何参数,平台直接执行思考并将推理内容回填到 reasoning_content。具体型号以模型目录中的厂商段落和思考能力标记为准:
OpenAI / Azure
- 官方文档:OpenAI Reasoning / Azure OpenAI Reasoning
- 适用接口:必须
v1/responses(v1/chat/completions不可控、不可见) - 适用模型:以 Response 模型清单 中的 OpenAI / Azure 推理型号为准。
GPT-5.x、o1、o3、o4 推理模型本身的思考是模型内置行为,但走 v1/chat/completions 协议时:
reasoning_effort参数不生效(请求里写了也不会改变思考强度)- 响应中不返回推理内容(
reasoning_content始终为空,只能拿到最终答案)
要控制思考强度并查看推理过程,必须走 v1/responses 协议。
通过 reasoning.effort 参数控制思考深度,reasoning.summary 控制是否回显思考摘要。完整取值范围:
reasoning.effort "none" | "minimal" | "low" | "medium" | "high" | "xhigh"
越高思考越深、推理 token 越多、计费越贵
reasoning.summary "auto" | null
null 表示不回显思考摘要(仍按 reasoning_token 计费)
详细配置 / 不兼容字段 / 响应字段:
有状态思考(stateful):GPT-5.1 / 5.2 思考模型在 Responses 协议下可通过 tags: ["stateful"] 跨轮复用思考状态。详见 Responses API → 有状态思考。
v1/responses 下思考开启时 temperature / top_p 等参数也会被拒绝。推理 token 计费:推理 token 计入 output_tokens,部分型号有独立的 output_cost_per_reasoning_token 单价(详见 计费与用量)。
思考内容如何返回
字段速查
| 协议 | 字段 | 说明 |
|---|---|---|
v1/chat/completions(非流) | choices[].message.reasoning_content | 思考全文 |
v1/chat/completions(流式) | choices[].delta.reasoning_content | 思考增量(与 delta.content 独立通道) |
v1/messages(非流,Claude) | content[] 数组中 type: "thinking" 的 block | 含 text 与 signature |
v1/messages(流式,Claude) | content_block_delta 事件,delta.type: "thinking_delta" | 思考增量 |
| 计费 | usage.completion_tokens_details.reasoning_tokens | 推理 token 数,计入 output |
Stream 解析要点
reasoning_content与content是两个独立字段,需要分别累积。- 思考内容通常先于最终回复返回,但不保证全部结束后才开始 content。
- 通过 OpenAI SDK 设置厂商专有字段(如
thinkingConfig/enable_thinking)时:Python 用extra_body,Node.js 用as any/@ts-expect-error绕过类型,Java 用additionalBodyProperties。
注意事项
- 思考 token 计费 —— 推理过程按 output token 计费,且与可见输出共享
max_tokens上限。详见 用量与计费。 - Claude 新型号拒绝采样参数 —— Opus 4.7 / 4.8、Sonnet 5 会拒绝非默认
temperature/top_p/top_k;4.6 及更早型号在启用thinking.type: "enabled"/"adaptive"时也不要传这些参数。 - Qwen 思考型号必须流式 —— 非流式调用会被拒绝。
- Gemini 3 / 3.1 多轮 / 函数调用需原样回传
thought_signature—— 详见 Gemini Thought Signatures。 - DeepSeek V4 思考开启时 sampling 参数无效 ——
temperature/top_p/presence_penalty/frequency_penalty不生效但不报错。 - Doubao thinking 变体不可关 —— 名称带 thinking 的专用变体通常代表始终思考,需要关闭时改用同系列非 thinking 变体;具体型号以 模型列表 为准。
相关文档
- 模型目录 —— 查询每个型号是否支持思考、跳转至本页对应章节
- 用量与计费 —— 推理 token 计费规则
- Anthropic Messages 接口 —— Claude
thinkingcontent block 与流式事件 - Responses API —— OpenAI / Azure 推理模式完整配置
- Gemini Thought Signatures —— Gemini 3 多轮对话与函数调用
- 多模态输入 —— 图像 / 音频 / 视频输入(含 Doubao 视觉)