有些任务不仅仅需要快速回答。Claude 可以在响应之前处理问题——这个功能叫做 扩展思考。在本课中,我们将了解思考是什么、它如何工作,以及它何时真正有帮助。
这是我们试图避免的失败模式。向模型提出一个多步骤问题并让它立即回答,它可能会自信地答错。
扩展思考让 Claude 在产生最终响应之前逐步推理。启用后,Claude 生成内部推理 token——通常称为 思维链——然后提供答案。推理不是隐藏的:你可以在响应中看到它,与最终文本一起。
在 Opus 5 上,思考是 自适应的,默认开启。没有 token 预算需要选择:Claude 动态决定何时思考以及思考多少。
要控制 Claude 思考多少,使用 effort 参数。一个注意点:它在 output_config 内部,而不是在 thinking 旁边。级别有:
lowmediumhigh(默认)xhigh(超高)max扩展思考有助于:
对于简单分类、提取或样板代码跳过它。对于这些任务,它只是增加延迟和成本而没有实际改善结果。
让我们看看它的工作原理。这是一个带有一个天气工具的 agent 循环,我们将要求 Claude 计划从旧金山出发的公路旅行——两个停靠点,权衡天气和驾驶时间。这是一个真实的权衡,思考值得付出代价的问题。
import anthropic
client = anthropic.Anthropic()
weather_tool = {
"name": "get_weather",
"description": "Get the current weather for a city.",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"}
},
"required": ["city"],
},
}
response = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"}, # summarized = 返回推理文本
output_config={"effort": "high"}, # low | medium | high | xhigh | max
tools=[weather_tool],
messages=[
{
"role": "user",
"content": "Plan a road trip out of San Francisco with two stops, "
"weighing weather and drive time.",
}
],
)
登录 参与讨论
当你运行这个时,输出比平时更有趣。你会看到 思考块,Claude 在其中处理权衡,然后是检查每个城市的工具调用,最后是带有实际建议的文本块。
推理是可见的——这就是全部要点。
在生产应用中,这是一个一次发现一个问题的 agent 和连接问题的 agent 之间的区别。以合规审查应用为例:在自动审查调用上切换自适应思考,让 agent 跨 报告部分进行推理——捕获如第 3 部分中的风荷载规范与文档其他部分的材料规范冲突之类的内容。
"display": "summarized" 以在响应中查看推理。output_config 中的 effort 参数调整深度:low、medium、high(默认)、xhigh 或 max。