Claude 推理开关
Claude 系列模型支持通过 thinking 参数控制推理模式。
开启后,模型会在给出最终答案前先进行更充分的链式推理,适合数学推导、复杂逻辑分析、代码调试、Agent 任务等场景。
如果只是普通问答、短文本改写或简单翻译,关闭思考会更快,也更省 Token。
核心参数
Claude 的思考相关配置主要分为两部分:thinking.type 和 output_config.effort。
thinking.type
output_config.effort
output_config.effort 用来控制本次响应的整体输出强度。它不只影响思考深度,也会影响回答详尽程度和工具调用次数。
怎么选?日常问答用
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}")模型名后缀
部分场景也可以直接在模型名后添加后缀,快速控制是否开启思考:
具体是否支持该写法,以模型广场和接口实际返回为准。
注意事项
- 思考功能会增加响应时间,也会产生额外 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来回切换,可能会影响消息缓存命中。连续请求保持同一种思考模式更稳定。