“Thinking mode”(亦称为扩展思考、思考或思考块)在 Claude 4.5 中是一种显式且可配置的运行模式,指示模型在给出最终答案之前,使用单独预算的 token 生成内部的、逐步的推理(“思维链”)。它通过以更高的延迟与 token 成本换取更深入的内部斟酌,从而提升多步推理、复杂编码与代理式工作流以及研究类任务的表现。Claude 4.5 在 Messages API 层面以显式参数暴露该能力(例如 thinking / budget_tokens 或用于强度/“interleaved-thinking”的请求头),会保留并可选对思考块进行加密,以便后续验证或工具使用,并引入了你在构建生产负载时需要管理的缓存与 token 核算行为。
什么是 Claude 4.5?(我该关注哪些模型?)
Claude 4.5 是 Anthropic 最新发布的一组以“4.5”为增量更新的 Claude 模型(例如,Sonnet 4.5 与 Opus 4.5)。Sonnet 4.5 面向大多数开发者,在智能、编码与代理式性能之间实现最佳平衡;Opus 4.5 专注于高强度推理,并保留思考块以提升多轮连续性。两者均支持 Claude 的扩展思考能力,但某些行为(如思考内容的摘要 vs 全量)因模型而异。
Claude 4.5 的性能提升,尤其是 Sonnet 4.5,在 SWE-bench Verified 基准上最为显著,该基准衡量 AI 解决真实世界 GitHub 问题的能力。
| 模型 | SWE-bench Verified 得分 | OSWorld(计算机使用) |
|---|---|---|
| Claude 3.5 Sonnet | 49.0% | 42.2% |
| Claude 4.1 Opus | 67.6% | 55.0% |
| Claude 4.5 Sonnet (Thinking On) | 77.2% | 61.4% |
| GPT-5 (Medium Reasoning) | 65.0% | 52.0% |
这些数据表明,Claude 4.5 不仅更擅长编写代码片段;它在浏览完整文件系统以及无需人工干预执行自主任务方面的能力也显著提升。
为什么这很重要
- **编码与代理:**Sonnet 4.5 在真实软件任务与长周期编码工作上有显著提升——成为代码生成、代码编辑与自主代理流程的自然之选。
- **扩展思考与上下文:**Claude 4.5 系列能在超大内部草稿板(数万 token 甚至更多)上进行推理,支持更深入的多步推理。这将改变你对提示词、token 预算与工具交互的设计方式。
Claude 4.5 的 Thinking Mode 是什么?
Thinking Mode(官方称为“扩展思考”)是一项能力,使模型在给出最终输出前先对自身“展示推理过程”。与标准模型立即给出答案不同,Claude 4.5 使用专用的推理空间来探索多种假设、识别逻辑中的潜在错误并改进策略。
响应的组成
在标准交互中,模型接收提示后直接开始生成答案。在 Thinking Mode 中,响应被拆分为两个不同的块:
| 块类型 | 可见性 | 目的 |
|---|---|---|
| 思考块 | 隐藏(通过 API)或折叠(UI) | 模型的内部独白、规划与自我反思。 |
| 文本块 | 可见 | 提供给用户的最终精炼答案。 |
Thinking Mode 的关键属性
- 按需启用:在 API 调用中传入
thinking对象,如{"type":"enabled","budget_tokens":10000}用于开启并为模型的内部推理提供 token 预算。 - 预算:
budget_tokens限制模型内部推理的 token 数。预算越高 => 潜在推理越深入,但成本与延迟越高。在 Claude 4 系列中,即便你仅收到摘要视图,思考 token 也会计费。 - 摘要与遮蔽:对许多 Claude 4 模型,用户会看到思考内容的摘要版本;部分内部推理可能被安全系统遮蔽(加密),并以
redacted_thinking返回。 - 签名与校验:思考块包含用于校验的不可读
signature。在将思考块回传给 API 时(尤其是使用工具时)需要该签名。应将签名视为不透明数据——不要尝试解析。 - 与工具的交错思考:Claude 4 支持在工具执行之间交错思考(部分情况为 beta,需通过标志启用)。这对于代理式工作流非常强大(运行工具→思考→再运行工具,等)。
有关实践示例与最新参数,请以 Anthropic 的 Messages/Extended Thinking 文档为准。
Messages API 如何返回思考内容
摘要 vs 全量思考;加密与签名
不同版本的 Claude 模型对思考内容的处理不同:较新的 Claude 4 模型(如 Sonnet/Opus 4.5)通常返回内部推理的“摘要”公共视图,而完整草稿可能被加密,仅通过 signature 字段(或被遮蔽的块)提供。当使用工具(或需要在多次调用间保留内部状态)时,你必须在下一次调用中回传思考块,或按文档说明使用签名机制。这种机制既可保护敏感内部推理,又能在需要时安全地延续思考过程。
实用处理模式
工具使用 / 连续性:如果你的下一次请求需要延续同一内部状态(例如基于思考执行了工具),请在再次调用 API 时包含返回的思考块或签名,以便模型解密并从中断处继续。
请求:发送 thinking: {type: "enabled", budget_tokens: N}。
响应:你可能会收到 (a) 思考内容的公共摘要,(b) 加密的 signature 或 redacted_thinking 块,或 (c) 两者兼有。
CometAPI 以官方 API 价格的 20% 提供 Claude 4.5 API,并且也可通过 Anthropic Messages 调用。开始之前,你需要获取一个 API key。
示例 1 — 使用 curl(非流式)启用思考
curl https://api.cometapi.com/v1/messages \
-H "x-api-key: $CometAPI_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{"role": "user", "content": "Design a robust data validation strategy for CSV imports, show tests + code."}
]
}'
响应将包含 content 块。检查每个块,并以 text 块作为最终输出;thinking 块包含模型的内部分析摘要。
示例 2 — Python:发起请求并解析思考与文本块
import os, requests
API_KEY = os.environ["CometAPI_API_KEY"]
URL = "https://api.cometapi.com/v1/messages"
HEADERS = {
"x-api-key": API_KEY,
"anthropic-version": "2023-06-01",
"content-type": "application/json"
}
payload = {
"model": "claude-sonnet-4-5",
"max_tokens": 16000,
"thinking": {"type": "enabled", "budget_tokens": 8000},
"messages": [{"role": "user", "content": "Explain how to do property-based testing in Python; include example code."}]
}
r = requests.post(URL, headers=HEADERS, json=payload)
r.raise_for_status()
resp = r.json()
# Parse blocks
for block in resp.get("content", []):
if block.get("type") == "thinking":
thinking_summary = block.get("thinking")
print("=== THINKING (summary) ===")
print(thinking_summary[:1000]) # truncate for logs
print("signature:", block.get("signature")[:64], "...")
elif block.get("type") == "text":
print("=== FINAL TEXT ===")
print(block.get("text"))
此代码提取并打印思考摘要与最终答案。若需在多轮代理流程中保持连续性,请在下一次请求的 messages 数组中包含未修改的思考块(见下一个示例)。
示例 3 — 在多轮流程中复用思考块(Python 伪代码)
# After initial response (resp above):
# Add the assistant message including the thinking block back into the conversation
assistant_message = {
"role": "assistant",
"content": resp["content"] # include raw content array (contains thinking + text blocks)
}
# Next user turn: ask follow-up and include previous assistant message
payload2 = {
"model": "claude-opus-4-5", # Opus preserves thinking blocks better across turns
"max_tokens": 20000,
"thinking": {"type": "enabled", "budget_tokens": 12000},
"messages": [
{"role": "user", "content": "Now adapt the validation logic for an avro pipeline."},
assistant_message
]
}
r2 = requests.post(URL, headers=HEADERS, json=payload2)
在工具集成或长链路代理工作流中,保留完全未修改的思考块至关重要。Opus 4.5 在思考块保留与缓存方面的默认行为有改进。
如何以流式传输思考输出并在 UI 中显示进度?
流式传输最佳实践
- 使用 SDK 的流式端点(Python/TypeScript SDK 提供流式辅助)。对于长时或高预算推理任务,流式可以避免 HTTP 超时,并在模型计算过程中提供部分文本。典型代码通过迭代器(Python 的
text_stream)或事件解析(JS)来处理。 - 预期可能出现“双阶段”流:模型可能先产生可见的推理片段,然后给出最终答案。请构建 UI 以处理分块内容,并区分“思考中”与“最终答案”状态。
- 若流式过程中 API 返回
signature_delta或content_block_delta,请捕获并按规范在后续调用中附带它们。
若需要在 UI 中展示中间推理进度,请使用流式响应。服务器会先后发出 thinking_delta 事件与 text_delta 事件。
curl https://api.cometapi.com/v1/messages \
--header "x-api-key: $CometAPI_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-sonnet-4-5",
"max_tokens": 16000,
"stream": true,
"thinking": { "type": "enabled", "budget_tokens": 8000 },
"messages": [ { "role": "user", "content": "Walk me through debugging this failing unit test and propose fixes." } ]
}'
在流式过程中,按顺序处理 content_block_start、content_block_delta(其中包含 thinking_delta 与 text_delta)以及 content_block_stop 事件。通过这种方式即可实时展示模型的逐步推理。
Claude Code 如何与 thinking mode 交互?(terminal + VS Code)
Claude Code 是集成了 Messages API 与工具运行器的交互式、代理式编码终端。CLI/IDE 体验通过两种方式暴露思考内容:
- 全局 / 会话级设置:Claude Code 通过
/config设置面板调整行为(代理请求权限的方式、是否保留思考块等)。若希望持久化行为变更,请使用该 UI,而非反复输入原始 JSON。 - 模型选择与 CLI 命令:你可以在 REPL 中选择
claude-sonnet-4-5或claude-opus-4-5作为活动模型;其工具与思考行为将遵循 Messages API 语义。CHANGELOG 与发行说明指出,某些 Opus 4.5 部署默认启用思考,并已通过/config暴露相关配置。
Claude Code 的实践流程:
- 在 REPL 中启动项目。
- 使用
/config查看与思考相关的标志(保留、冗长度等)。 - 让代理执行一项长任务——它会产生思考内容,并在需要时请求执行特定 bash 步骤的权限。需要验证或重跑决策时,保留思考块。
安装与设置
# Install Claude Code CLI
npm install -g @anthropic/claude-code
# Authenticate
claude-code --init
在终端中激活思考
Claude Code 支持多种标志与自然语言触发来控制推理深度。
| 命令/触发 | 说明 |
|---|---|
| claude-code --think | 默认以启用扩展思考启动会话。 |
| claude-code --model sonnet-4.5 | 指定最新前沿模型。 |
| /think <task> | CLI 内的斜杠命令,用于调用特定重度思考任务。 |
| "ultrathink" | 一种自然语言关键词,指示 Claude 使用最大可能的推理预算。 |
提示:
- 当你希望代理探索替代实现时,使用
think/think harder。 - 当 Claude Code 进行工具调用(运行测试、git 操作)时,若 CLI/代理返回了
thinking块,请予以保留;否则代理可能在步骤之间丢失上下文。
交错思考与思考块保留的收益
交错思考(Beta)
标准推理通常在输出前进行一次。交错思考(通过 interleaved-thinking-2025-05-14 请求头启用)允许 Claude 在工具调用之间进行“思考”。
设想 Claude 正在调试一台服务器:
- 思考:"我应该先检查日志。"
- 工具调用:
read_file(logs.txt) - 思考:"日志显示数据库超时。现在需要检查连接池设置。"
- 工具调用:
read_file(db_config.yml)
这种“持续反思”确保模型能够基于工具返回的数据调整策略,而非遵循僵化的预设计划。
思考块保留
- 推理连续性:通过接收其先前的思考内容,Claude 能保持推理过程的逻辑上下文。
- Opus 4.5 优化:在 Claude Opus 4.5 中,此行为已被自动化。模型默认在上下文中保留所有先前的思考块,即使会话持续 30+ 小时,模型也不会“忘记”其在十轮交互前做出某些架构决策的原因。
在 Claude 4.5 中使用 THINKING 模式的最佳实践
为任务选择合适的模型与预算:
使用 Sonnet 4.5 处理编码与代理式工作流,在速度、成本与强大编码能力之间取得最佳权衡;当需要最深层次推理、最大上下文窗口或计划运行长时自主会话时,使用 Opus 4.5。两者均支持扩展思考。根据任务复杂度选择 budget_tokens(先小后大做实验;仅当观察到质量显著提升时再提高预算)。
监控并控制成本与延迟
你将为模型生成的全部思考 token 付费,而不只是你看到的摘要输出。这意味着冗长的内部斟酌会增加成本,即使你只看到简短摘要。请跟踪 token 使用情况,并在从探索走向生产时逐步调优(例如:2k → 8k → 32k)。
仅在必要时保留思考块
思考块可进行加密签名,以便后续校验与交错的工具使用。除非你的工作流需要模型保留先前的内部斟酌(例如代理将重跑步骤且需要保留理由),否则请避免在每次后续请求中回传思考块。持续保留会增大上下文、并使 token 核算更复杂。
何时向用户流式展示思考
对开发者工具与教育类 UI 而言,流式展示思考非常有用(在模型斟酌时显示“进行中”)。对于面向消费者的生产级应用,请勿向终端用户直接流式输出原始思考内容而不考虑安全与遮蔽:摘要思考正是为此而设。若采用流式,请在 UI 中清晰标注内部推理(如“助手推理——内部”),并控制最终用户看到的是摘要还是完整推理。
工具使用与交错
当将思考与工具(代码执行、网页抓取、本地进程)结合时,若需要模型在同一轮次内选择工具、运行并基于结果推理,请采用“交错思考”设计。交错会增加复杂度(且可能需要特性标志),但对代理自动化非常强大。明确你要保留哪些思考内容,并测试启用思考后模型的工具选择行为。
实用排障与运维注意事项
常见错误与含义
- 思考与强制工具选择冲突:若你启用了思考却同时强制特定的工具使用模式而二者不兼容,API 会返回错误——不要在启用思考时使用
tool_choice: {"type":"tool","name":"..."}强制指定。 - 预算 > max_tokens:在交错思考场景,有效 token 规则不同——平台文档说明了何时允许
budget_tokens超过max_tokens。在测试大预算前请仔细阅读“交错思考”章节。 - 签名校验:如果为后续调用保留思考块,请附带返回的
signature,以便 API 校验其确来自 Claude;这可防止篡改并保持可验证链路。
可观测性与埋点
请记录:(1)model 选择,(2)thinking.budget_tokens,(3)实际思考 token 消耗(将据此计费),(4)流式延迟(首次 thinking_delta 的到达时间),以及(5)最终文本 token。使用这些指标为面向用户的流程制定预算与 SLO。
渐进式发布与人类在环
通过特性开关逐步放量启用思考的模型。先从一部分开发者或内部流量开始,收集失败或遮蔽案例,并迭代提示与预算。对于敏感领域,在包含大量内部推理的输出发布前要求人工复核。
调试提示
- 小步起步:先启用较低的
budget_tokens,再逐步增加以观察增量改进。 - 开启流式并记录
content_block_delta/ 签名事件,以理解模型何时产生思考块。 - 若使用 Claude Code:检查
/config与项目级设置;若行为与预期默认不符,请查看 Claude Code 的变更日志。
结论:
结合扩展思考与 Claude Code CLI 的能力,Claude 4.5 可谓自 IDE 发明以来开发者生产力的最大飞跃。通过允许模型“展示其推理过程”并就复杂问题进行深思熟虑,Anthropic 已经从“聊天机器人”时代迈入“代理”时代。
无论你是在自研开发工具中集成 Messages API,还是使用 Claude Code 管理日常 PR,掌握 Thinking Mode 都至关重要。它既提供建立信任所需的透明度,也提供追求卓越所需的推理深度。
开发者可通过 CometAPI 访问 Claude 4.5(Claude Sonnet 4.5 ,Claude Haiku 4.5,Claude Opus 4.5)模型。开始之前,请在 CometAPI 的 Playground 中探索模型能力,并查阅 API 指南以获取详细说明。访问前,请确保已登录 CometAPI 并获得 API key。CometAPI 以远低于官方价格的优惠帮助你集成。
Ready to Go?→ 免费试用 Claude 4.5!
