Agent工坊

【Agent工坊】Claude Code /thinking 模式:多花30% Token,让AI先推演再写代码,准确率翻倍

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


Agent工坊 #ClaudeCode #AI编程 #ExtendedThinking #一人公司