Claude 推理开关
Claude 系列模型支持通过 thinking 参数控制推理模式。开启后,模型会在给出最终答案前先进行更充分的链式推理,适合数学推导、复杂逻辑分析、代码调试、Agent 任务等场景。
如果只是普通问答、短文本改写或简单翻译,关闭思考会更快,也更省 Token。
核心参数
Claude 的思考相关配置主要分为两部分:thinking.type 和 output_config.effort。
| 参数 | 作用 |
|---|---|
thinking.type | 控制是否开启思考过程。 |
thinking.display | 控制是否在返回内容中展示可读的思考摘要。 |
output_config.effort | 控制本次响应的整体输出强度,包括思考深度、回答详尽程度和工具调用次数。 |
thinking.type
| 参数值 | 说明 |
|---|---|
adaptive | 开启思考。由 Claude 自行决定何时思考、思考到什么深度,推荐复杂任务使用。 |
disabled | 关闭思考过程,模型直接输出最终答案。 |
::: warning 注意
不传 thinking 字段,通常等同于默认关闭思考。
如果你希望明确开启 Claude 思考,建议显式传入 thinking: {"type": "adaptive", "display": "summarized"}。
:::
不同 Claude 模型对 display 的默认行为可能不同。部分 Opus 模型默认是 omitted,此时思考会发生并计费,但返回中的 thinking 文本可能为空;如果要看到可读的思考摘要,需要设置 display: "summarized"。
output_config.effort
output_config.effort 用来控制本次响应的整体输出强度。它不只影响思考深度,也会影响回答详尽程度和工具调用次数。
| 参数值 | 说明 |
|---|---|
low | 减少思考,优先速度。 |
medium | 思考适中,简单问题可能跳过深度推理。 |
high | 标准思考深度,常用默认值。 |
xhigh | 更深思考,适合编程、Agent、多步骤任务。部分模型可能不支持。 |
max | 最大思考深度,推理更长更细,速度也会更慢。 |
disabled 或 low 就够了。代码调试、复杂推理、长任务规划可以用 adaptive + high。如果是 Claude Code、Agent 或复杂编程任务,可以尝试 xhigh 或 max。API 接口
请求方法:POST
https://api.maomaotoken.com/v1/messages支持模型以 MaomaoToken 控制台模型广场为准。常见 Claude 系列思考模型包括:
claude-opus-4-8claude-opus-4-7claude-sonnet-4-6
开启思考
开启 adaptive 后,Claude 会先进行推理,再输出最终答案。若需要在返回中看到可读的思考摘要,建议设置 display: "summarized"。
import requests
api_key = "sk-**************" # 替换为你的 MaomaoToken 令牌
url = "https://api.maomaotoken.com/v1/messages"
headers = {
"Accept": "application/json",
"Authorization": f"{api_key}", # MaomaoToken 令牌,直接填写,无需 Bearer 前缀
"Content-Type": "application/json",
}
data = {
"model": "claude-opus-4-8",
"max_tokens": 2048,
"messages": [
{
"role": "user",
"content": "从 1 加到 10 等于多少?",
}
],
"thinking": {
"type": "adaptive",
"display": "summarized",
},
"output_config": {
"effort": "high",
},
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
result = response.json()
print("请求成功!")
print(f"本次思考强度 effort: {data['output_config']['effort']}")
for block in result.get("content", []):
if block["type"] == "thinking":
print(f"\n【思考内容】\n{block['thinking']}")
elif block["type"] == "text":
print(f"\n【最终回答】\n{block['text']}")
thinking_tokens = (
result.get("usage", {})
.get("output_tokens_details", {})
.get("thinking_tokens")
)
if thinking_tokens is not None:
print(f"\n本次思考消耗 Token 数: {thinking_tokens}")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")关闭思考
关闭后,模型会跳过思考过程,直接给出最终答案。简单任务建议使用这种方式,响应更快,也更省 Token。
import json
import requests
api_key = "sk-**************" # 替换为你的 MaomaoToken 令牌
url = "https://api.maomaotoken.com/v1/messages"
headers = {
"Accept": "application/json",
"Authorization": f"{api_key}", # MaomaoToken 令牌,直接填写,无需 Bearer 前缀
"Content-Type": "application/json",
}
data = {
"model": "claude-opus-4-8",
"max_tokens": 2048,
"messages": [
{
"role": "user",
"content": "从 1 加到 10 等于多少?",
}
],
"thinking": {
"type": "disabled",
},
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
print("请求成功!")
print(json.dumps(response.json(), indent=2, ensure_ascii=False))
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")模型名后缀
部分场景也可以直接在模型名后添加后缀,快速控制是否开启思考:
| 后缀 | 作用 |
|---|---|
-thinking | 快速开启思考。 |
-nothinking | 快速关闭思考。 |
具体是否支持该写法,以模型广场和接口实际返回为准。
注意事项
- 思考功能会增加响应时间,也会产生额外 Token 消耗。
- 简单问题建议使用
disabled,速度更快、成本更低。 - 复杂推理问题建议使用
adaptive,可解释性和稳定性通常更好。 output_config.effort是请求参数,响应体中不一定会回显本次使用的等级。- 部分最新 Claude 模型可能不再支持
temperature、top_p、top_k等采样参数,请求中包含这些字段可能返回400。 - 旧写法
thinking: {"type": "enabled", "budget_tokens": N}在部分新模型上可能已不可用,新代码建议统一使用thinking: {"type": "adaptive"}+output_config.effort。 - 每个 thinking 内容块可能带有
signature字段。多轮对话如果要延续上一轮思考,需要把上一轮返回的 thinking 块原样传回,不要修改内容。 - 切换 thinking 模式,比如
adaptive和disabled来回切换,可能会影响消息缓存命中。连续请求保持同一种思考模式更稳定。