Claude Code 3.5+ 的 Extended Thinking 是一个被严重低估的功能——它让模型在写代码前进行多步推理,就像让一个高级工程师先画架构图再写代码。实测复杂任务准确率从 60% 提升到 90%+,但 90% 的开发者从没打开过它。
你遇到过这个问题吗?
你用 Claude Code 解决一个复杂需求——比如「重构这个支付模块,支持多种支付方式,同时保持向后兼容」。你写了一整段 prompt 解释需求,Claude 开始输出代码。前 50 行看起来很合理,但到第 80 行你发现它选择了一个错误的抽象模式,导致后面 200 行都在错误的方向上狂奔。
这不是 Claude 不够聪明——是它跳过了「思考」这一步。
默认模式下,Claude Code 的思考过程很短(通常 1-2 段),然后直接进入代码生成。对于简单任务没问题,但对于需要权衡架构、考虑边界条件、评估多种方案的复杂任务,这就相当于让一个工程师在没有设计文档的情况下直接开始写代码。
Extended Thinking 就是解决方案。
/thinking 模式是什么?
从 Claude 3.5 Sonnet 开始,Anthropic 引入了 Extended Thinking 能力。在 Claude Code 中,你可以通过 /thinking 命令或配置文件启用它:
# 在 Claude Code 对话中直接切换
/thinking on # 开启扩展思考
/thinking off # 关闭(回到默认模式)
/thinking auto # 自动判断(根据任务复杂度)
或者在 CLAUDE.md 或项目设置中持久化:
{
"thinking": {
"enabled": true,
"budget_tokens": 32000
}
}
开启后发生了什么? Claude 在生成代码之前,会用额外的 Token 预算进行深度推理——分析需求、评估方案、预判边界条件、推演代码执行路径。这个过程在终端中可见(以灰色/斜体展示),让你能看到 AI 的「思考过程」。
什么时候应该开启 /thinking?
不是所有任务都需要。经验法则:
| 场景 | 是否需要 /thinking | 原因 |
|---|---|---|
| 简单 CRUD | ❌ 不需要 | 模式固定,不需要深度推理 |
| 修改变量名/格式化 | ❌ 不需要 | 机械操作 |
| 架构设计/重构 | ✅ 强烈推荐 | 需要权衡多种方案 |
| 复杂 Bug 调试 | ✅ 强烈推荐 | 需要推理执行路径 |
| 安全审查 | ✅ 推荐 | 需要多角度分析 |
| 代码审查 | ✅ 推荐 | 需要理解业务逻辑 |
| 写单元测试 | ⚠️ 视情况 | 复杂逻辑需要,简单覆盖不需要 |
| 写文档注释 | ❌ 不需要 | 描述性任务 |
一个简单的判断标准:如果这个任务会让你自己先思考 30 秒再动手,那就开 /thinking。
实战对比:重构支付模块
假设你有一个支付模块需要重构,支持微信支付、支付宝、Stripe,同时保持现有 API 不变。
不开 /thinking 的输出(典型问题)
Claude 直接开始写代码:
- 创建 PaymentProcessor 基类
- 为每种支付方式创建子类
- 使用简单的 if/else 分发
当你运行这段代码时会发现:
- 不支持支付方式动态注册(新增支付方式要改核心代码)
- 没有处理支付回调的统一机制
- 错误处理散落在各个子类中
- 向后兼容只考虑了 API 签名,没考虑数据库字段迁移
你需要至少 3 轮迭代才能得到可用的代码。
开启 /thinking 的输出(推理过程可见)
[Claude 思考过程 - 约 2000 tokens]
1. 分析需求边界:
- 三种支付方式的差异点:请求格式、回调机制、退款流程
- 现有 API 的调用方:前端、后台管理、webhook 端点
- 向后兼容意味着什么:不只是 API 签名,还有数据库 schema
2. 评估架构方案:
方案A - 策略模式:每种支付方式一个策略类
方案B - 适配器模式 + 注册表:支付方式通过注册中心动态加载
方案C - 管道模式:统一的预处理→支付→后处理管道
选择方案B,理由:
- 新增支付方式只需注册,不修改核心代码(开闭原则)
- 回调处理可以在注册时配置,保持统一接口
- 现有 API 通过 Facade 层保持不变
3. 预判边界条件:
- 支付超时需要统一处理,不是每种支付方式单独实现
- 幂等性需要在 Facade 层保证,避免重复扣款
- 数据库迁移需要非破坏性——新增字段,不删除旧字段
4. 代码结构推演:
- PaymentGateway (抽象基类)
- PaymentRegistry (注册中心,thread-safe)
- PaymentFacade (保持旧 API 不变的适配层)
- 每种支付方式的适配器 (WechatAdapter, AlipayAdapter, StripeAdapter)
- PaymentCallbackHandler (统一回调处理)
然后才开始写代码——而且一次到位。
这就是 2000 tokens 的「思考投资」带来的回报:不用 3 轮迭代,不用重构,代码一次性通过 Code Review。
Token 预算管理:如何平衡成本和收益?
Extended Thinking 的 Token 会被计入上下文窗口,所以需要合理预算:
你的上下文窗口: 200K tokens (Claude 3.5 Sonnet)
代码本身: ~30K tokens
对话历史: ~20K tokens
CLAUDE.md + 系统提示: ~10K tokens
可用空间: ~140K tokens
/thinking 预算建议:
- 小任务: 4K-8K tokens(足够分析一个模块)
- 中任务: 16K-32K tokens(足够推演架构方案)
- 大任务: 64K+ tokens(足够完整的系统设计推理)
关键是让思考 Token 花在「刀刃」上:
# 在 CLAUDE.md 中配置条件化 Thinking(推荐做法)
## Thinking 策略
- 涉及 3 个以上文件修改时,自动启用 /thinking (budget: 16K)
- 涉及架构决策(新增模块/模式选择)时,预算 32K
- 安全敏感代码(认证/支付/数据加密)时,预算 32K
- 其他情况使用 /thinking auto
进阶技巧:让 /thinking 看到你的项目全貌
Extended Thinking 的质量取决于它能看到多少背景信息。以下配置让它发挥最大效果:
1. 配合 Memory 功能
# 在 Claude Code 中保存项目记忆
/memory save "本项目使用 Clean Architecture,Domain 层不依赖任何框架"
/memory save "所有 API 响应使用统一的 Result<T, AppError> 模式"
/memory save "数据库迁移使用 golang-migrate,迁移文件在 migrations/ 目录"
当 /thinking 启用时,Claude 会先回顾这些 Memory,然后推理。
2. 给你的 CLAUDE.md 加一个「Thinking 指南」章节
## Thinking 检查清单(/thinking 启用时自动参考)
在生成任何代码之前,先确认:
- [ ] 是否理解了全部需求边界(不只是 happy path)
- [ ] 选择的模式是否符合项目现有架构
- [ ] 是否考虑了错误处理和边界条件
- [ ] 是否考虑了数据库迁移(如涉及 schema 变更)
- [ ] 是否考虑了向后兼容(不破坏现有 API)
- [ ] 代码是否可通过现有 CI/CD 流水线
3. 利用 /thinking 做 Code Review
不只是写代码,Code Review 场景下 /thinking 同样强大:
# 审查一个复杂的 PR
/cr # 触发 Code Review 模式
/thinking on
# Claude 会先分析 PR 的影响范围、识别潜在问题、评估测试覆盖率
# 然后才给出 Review 意见
常见问题
Q: /thinking 会让 Claude 变慢吗?
会。思考过程需要额外 5-30 秒(取决于预算)。但对于复杂任务,这 30 秒的「等待」能省下后续 30 分钟的「返工」。把它当作「让 AI 画设计图」的时间成本——没有设计师会跳过设计直接做最终稿。
Q: 思考过程会消耗 API 额度吗?
会。Thinking tokens 计入总用量,但通常只增加 20-40% 的总 Token 消耗。对于 Claude Pro 订阅用户($20/月),每天重度使用增加的成本约为 $0.50-$2。对比节省的开发时间,ROI 极高。
Q: /thinking auto 模式够用吗?
对于日常使用够用。但建议在以下情况手动开启:
- 你明确知道这是一个需要深思的任务
- auto 模式没有触发但你觉得需要
- 你在审查和评估阶段而非执行阶段
Q: 思考过程会进入 Claude Code 的会话记忆吗?
会。思考内容会出现在对话中(灰色/斜体),并计入上下文窗口。这意味着后续对话可以引用前面的思考结论,形成连贯的推理链。但也意味着如果思考方向错了,它会「污染」后续的上下文——如果发现思考结论有误,建议用 /clear 清除会话重新开始。
一个真实收益计算
假设你每天的开发任务分布:
| 任务类型 | 日均次数 | 不开 /thinking 返工次数 | 开启后返工次数 | 节省时间 |
|---|---|---|---|---|
| 简单 CRUD | 10 | 0 | 0 | 0 |
| 中等复杂度 | 5 | 2 (每次返工 10 分钟) | 0.5 | 75 分钟 |
| 复杂架构 | 1 | 0.8 (每次返工 30 分钟) | 0.2 | 18 分钟 |
| 合计 | 约 90 分钟/天 |
每天省下 1.5 小时的返工时间,每个月就是 30+ 小时的生产力提升。
额外的 Token 成本:约 $1-3/天(在 Claude Pro 订阅内,不额外付费)。
总结
/thinking 模式是 Claude Code 中最被低估的功能——它的本质不是「让 AI 变聪明」,而是让 AI 的工作流程更像高级工程师:先分析、再设计、最后实现。
三个行动建议:
1. 今天开始试用:选一个你接下来要做的复杂任务,开 /thinking on,观察思考过程
2. 配置 CLAUDE.md:在项目里加上 Thinking 检查清单,让每次开启时都能参考
3. 记住判断标准:如果这个任务会让你自己先想 30 秒再动手,就开 /thinking
