你有没有觉得,有时候Claude Code回答得太啰嗦,有时候又思考得不够深入?
这不是AI"心情"不好,而是"思考深度"的调节问题。今天咱们聊聊Claude Code的三大利器:Effort、Fast Mode和Thinking,看它们怎么控制AI的"脑力消耗"。
为什么要控制推理深度?
deeper thinking ≠ better results
对于"把变量名从foo改成bar",让AI思考10秒钟是浪费;对于"重构整个认证模块的错误处理",快速浅层响应则会产出低质量代码。
Claude Code通过三个机制控制推理深度:
- Effort:推理努力等级(low/medium/high/max)
- Fast Mode:Opus 4.6加速模式
- Thinking:思维链配置(adaptive/enabled/disabled)
Effort:四级推理努力度
Effort是Claude API的原生参数,控制模型投入多少"思考时间"。
四个等级
| 等级 | 描述 | 适用场景 |
|---|---|---|
| low | 快速、直接实现 | 简单重命名、添加注释 |
| medium | 平衡方式 | 标准实现和测试 |
| high | 全面实现 | 复杂架构决策 |
| max | 最深推理 | 仅Opus 4.6可用 |
max等级的限制:只有opus-4-6和内部模型支持。其他模型使用max会被降级为high。
优先级链
Effort实际值由三层优先级决定:
环境变量 CLAUDE_CODE_EFFORT_LEVEL(最高优先级)
↓ 未设置
AppState.effortValue(/effort命令或UI设置)
↓ 未设置
模型默认值
- Opus 4.6 Pro用户 → medium
- Ultrathink启用 → medium
- 其他 → undefined(API默认high)
为什么Opus 4.6默认medium?
这是经过A/B测试的决策。大多数编程交互不需要最深推理,降低默认effort可以:
- 显著提升吞吐量
- 降低延迟
- 减少成本
用户需要深度推理时,可以用ultrathink关键词临时提升(见下文)。
数值型Effort(内部专用)
内部用户可以用数值型effort(0-100),映射规则:
- ≤50 → low
- ≤85 → medium
- ≤100 → high
100 → max
数值型不持久化到设置文件,只存在于会话运行时。
Fast Mode:Opus 4.6加速
Fast Mode(内部代号"Penguin Mode")让非Opus模型也能使用Opus 4.6的能力。
工作原理
当用户主模型不是Opus时,特定请求可以路由到Opus 4.6获得更高质量响应。
硬绑定到Opus 4.6:
if (Fast Mode开启 && 条件满足) {
路由到Opus 4.6
} else {
使用原始模型
}
如果用户已经在用Opus 4.6,Fast Mode就是它本身(无变化)。
可用性检查
Fast Mode有一系列检查:
- Statsig远程关闭(最高优先级)
- 非原生二进制(可选检查)
- SDK模式(默认不可用)
- 非一方提供商(Bedrock/Vertex不支持)
- 组织级禁用
冷却状态机
Fast Mode有精巧的冷却机制:
active(正常)
↓ 触发冷却(速率限制/服务过载)
cooldown(冷却中,记录resetAt时间)
↓ 时间到期
active(恢复)
↓ 组织禁用
disabled(永久禁用)
惰性过期检测:不使用定时器,每次查询状态时检查。这避免了定时器资源消耗。
三态输出
用户看到的Fast Mode状态:
on:正常运行,显示加速图标cooldown:临时降级,显示提示off:未启用
Thinking:思维链配置
Thinking控制模型是否输出推理过程。
三种模式
| 模式 | API表现 | 适用条件 |
|---|---|---|
| adaptive | 模型自行决定思考多少 | Opus 4.6、Sonnet 4.6等新模型 |
| enabled | 固定token预算的思维链 | 不支持adaptive的旧Claude 4模型 |
| disabled | 不输出思维链 | API验证、低开销调用 |
模型兼容性分层
modelSupportsThinking():检测是否支持思维链
- 一方和Foundry:Claude 3以外的所有模型
- 三方(Bedrock/Vertex):只有Sonnet 4+和Opus 4+
modelSupportsAdaptiveThinking():检测是否支持adaptive模式
- 只有4.6版本明确支持
- 一方和Foundry默认true(新模型都训练了adaptive thinking)
- 三方默认false
shouldEnableThinkingByDefault():决定是否默认启用
- 环境变量
MAX_THINKING_TOKENS> 0 → 启用 - 设置
alwaysThinkingEnabled === false→ 禁用 - 默认 → 启用
与Effort的交互
当Effort为medium且Thinking为adaptive时:
- 模型选择较少的推理
- Ultrathink将Effort提升到high
- Adaptive thinking相应增加推理深度
这就是"中等默认值+零摩擦升级"的设计哲学。
Ultrathink:关键词触发的深度推理
Ultrathink是一个巧妙的交互设计:在消息中包含ultrathink关键词,自动将Effort从medium提升到high。
双重门控
if (ULTRATHINK功能开关开启 && GrowthBook运行时Flag启用) {
检测关键词
}
关键词检测
使用词边界匹配(\b),大小写不敏感:
/\bultrathink\b/i.test(text)
附件注入
Ultrathink不直接修改API参数,而是通过附件系统:
[{ type: 'ultrathink_effort', level: 'high' }]
转换为系统提醒消息:
用户请求了reasoning effort level: high。Apply this to the current turn.
让模型在adaptive thinking模式下自行调整。
彩虹UI
Ultrathink激活时,UI以彩虹色显示关键词,给用户视觉反馈。
三个机制的协同
用户输入
↓
包含"ultrathink"? → 注入ultrathink_effort附件
↓
resolveAppliedEffort(model, appState.effortValue)
↓
Effort值 → 发送到API的effort参数
↓
Fast Mode检查 → 可能路由到Opus 4.6
↓
Thinking配置 → adaptive/enabled/disabled
↓
API调用: messages.create({ model, effort, thinking })
关键交互点:
- Effort + Thinking:adaptive模式下,effort越高思考越深
- Fast Mode + Effort:Fast Mode改变模型,Effort改变同一模型的推理深度
- Fast Mode + Thinking:路由到Opus 4.6时,自动支持adaptive thinking
实战:如何调优推理深度
场景1:简单代码修改
/effort low
重命名变量、添加注释等简单任务,用low减少延迟。
场景2:复杂架构决策
/effort high
或直接输入:
请帮我设计这个模块的接口 ultrathink
场景3:环境变量固定策略
团队统一策略:
export CLAUDE_CODE_EFFORT_LEVEL=high
设为unset或auto则不发送effort参数,使用服务端默认值。
场景4:Fast Mode冷却
当Fast Mode因速率限制进入冷却,系统会自动回退到原始模型。冷却是临时的,到期自动恢复,无需手动干预。
场景5:禁用Adaptive Thinking
需要强制固定预算模式:
export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=true
设计洞察
“中等"作为默认值的哲学
Opus 4.6对Pro用户默认medium而非high,反映了一个权衡:
- 大多数编程交互不需要最深推理
- 降低默认effort提升吞吐量和降低延迟
- Ultrathink提供零摩擦升级路径
惰性状态检查的模式
Fast Mode冷却过期检测不使用定时器,而是在每次查询状态时惰性计算。这避免了定时器资源开销和竞态条件。
持久化的谨慎边界
maxeffort不对外部用户持久化- 数值型effort不持久化
- Fast Mode的per-session opt-in选项
这些设计遵循同一原则:高开销配置不应跨会话泄漏。
总结
Effort、Fast Mode和Thinking构成Claude Code的推理控制面板:
- Effort四级:low/medium/high/max,控制思考深度
- Fast Mode:让非Opus模型也能使用Opus 4.6
- Thinking三模式:adaptive/enabled/disabled,控制思维链
- Ultrathink:语义化控制接口,零摩擦升级
这就像:
- Effort是"脑力档位”
- Fast Mode是"涡轮增压"
- Thinking是"自言自语开关"
- Ultrathink是"紧急深度思考按钮"
理解这三个机制,你就能:
- 根据任务复杂度选择合适的推理深度
- 平衡响应速度和质量
- 在自己的AI Agent中实现类似的控制
下篇咱们聊聊89个Feature Flag——Claude Code的"秘密开关"。
