Skip to content
FunCoding

Search

Search docs, agents, posts, Skills and MCP servers

努力、思考与扩展上下文

各模型支持的努力等级与解析顺序、保存方式、ultracode、ultrathink、扩展思考的开关与显示,以及 1M 上下文的套餐与网关规则。

版本号、套餐与默认等级以官方为准。

调整努力等级

努力等级控制自适应推理,让模型根据任务复杂度在每一步决定是否思考、思考多少。支持的等级取决于模型(未列出的模型不支持努力):

模型等级
Fable 5.1 和 Fable 5low、medium、high、xhigh、max
Opus 5.5、Sonnet 5.5、Opus 5、Sonnet 5、Opus 4.8、Opus 4.7low、medium、high、xhigh、max
Opus 4.6 和 Sonnet 4.6low、medium、high、max

设置了活动模型不支持的等级时,回退到不高于所设的最高受支持等级(xhigh 在 Opus 4.6 上按 high 运行);你的组织或自己的设置也可能限制模型提供的等级。会话的努力等级按此顺序解析,取第一个适用的:

  1. 显式选择:CLAUDE_CODE_EFFORT_LEVEL 环境变量、用 --effort 启动、或会话里的 /effort(非交互的 /effort 作用较窄)。
  2. 你的设置:你为该模型保存的等级,或 effortLevel 键;两者之间以及跨设置文件的优先级见 modelSettings 的说明。
  3. 模型的默认努力:每个支持努力的模型默认 high,例外是 Opus 5.5 和 Sonnet 5.5 默认 medium、Opus 4.7 默认 xhigh;组织为其组织默认模型设了默认努力等级时,运行该模型时那个等级就是默认。

Opus 5.5 起步于 medium,除非上面某个来源给它设了等级;你用户设置文件里顶层的 effortLevel 对 Opus 5.5 不算数——该键是 Claude Code 按模型保存等级之前 /effort 写入的旧形式,它在原来适用的地方(Opus 5、Fable 5.1 及更早的模型)仍然适用,而 Opus 5.5 及其后发布的模型在你用 /effort 或 /model 选择器为它们选等级之前,从各自的默认开始;项目、本地或托管设置里、或用 --settings 传入的顶层 effortLevel 适用于每个模型。

在你机器上的交互会话里设 low、medium、high 或 xhigh 时,你按确认方式选择持续多久:/effort 滑块或 /model 选择器里按 Enter、或 /effort 后键入等级——保存为你的默认并在以后的会话里应用;滑块或选择器里按 s——只对本会话应用(需要 v2.1.257+)。等级按模型保存在用户设置的 modelSettings 键下,每个模型保留自己的保存等级。max 是最深的推理等级,除非通过 CLAUDE_CODE_EFFORT_LEVEL 设置,Claude Code 只把 max 应用于当前会话。通过 Remote Control 连接的手机或浏览器上的努力控件所选的等级只作用于该会话;在 -p 运行里用 /effort 设置也只作用于该会话、不保存为默认。

选择努力等级

每个等级用 token 花费换能力,默认值适合多数编码任务,想要不同平衡时再调整:

等级何时使用
low你要审阅每个结果的快速交流,如头脑风暴、第一版草图,或重命名这类小改动
mediumOpus 5.5 和 Sonnet 5.5 的默认,适合范围明确的日常工程工作(如实现新功能);在其他模型上,为可牺牲一些智能的成本敏感工作减少 token 用量
high验证重要或很可能有边界情况的工作,如修复现有代码库里的 bug;除 Opus 5.5、Sonnet 5.5、Opus 4.7 外所有模型的默认
xhigh以更高 token 开销换更深推理;Opus 4.7 的默认
max想让 Claude 不用你参与就攻克的难题,如查找安全漏洞;可能出现收益递减且容易过度思考,广泛采用前先测试
ultracode是 Claude Code 的设置而不是等级:在任何努力等级下为每个实质性任务规划动态工作流

官方的测试里,在 Opus 5.5 和 Fable 5.1 上更高的等级会测试更多边界情况、回答前验证更多工作,也会自己做更多选择;较低的等级更快给出起点,适合你审阅每个结果并引导下一步的工作。努力刻度是按模型校准的,所以相同的等级名在不同模型上不代表相同的底层值。Opus 5.5 默认 medium,比 Opus 5 的默认 high 低一档;在 Anthropic 的测试里,Opus 5.5 在 medium 的表现在编码和知识工作评测上匹配或超过 Opus 5 在 high 的;同一等级下 Opus 5.5 每回合往往比 Opus 5 思考更多。从 Opus 5 迁到 Opus 5.5 时,从 medium 开始,而不是沿用在 Opus 5 上用的等级。

用 ultrathink 做一次性深度推理

在提示的任意位置写 ultrathink,可以请求这一回合更深入的推理,而不改变你的会话努力设置:Claude Code 识别该关键词并添加一条上下文内指令,发给 API 的努力等级不变。「think」「think hard」「think more」等其他短语只作为普通提示文本传递,不被识别为关键词。

设置努力等级

  • /effort:不带参数打开交互式滑块;后跟等级名直接设置;/effort auto 清除你为活动模型保存的等级。Claude 工作时也可运行,你确认缓存警告(如果 Claude Code 显示了)后,新等级应用于本回合的下一个请求。
  • /model 里:选模型时用左右箭头调整努力滑块。
  • --effort 标志:启动时传等级名,对单个会话设置。
  • 环境变量:CLAUDE_CODE_EFFORT_LEVEL 设为等级名或 auto。
  • 设置:在 modelSettings 里按模型设置,或把 effortLevel 设为 low、medium、high、xhigh 作为没有按模型设置的模型的默认;这两个键都不接受 max,ultracode 有自己的 ultracode 键。
  • 从连接的设备:Remote Control 会话里在手机或浏览器的努力控件里选等级,只作用于当前会话(需要 v2.1.234+)。
  • Skill 和子智能体前置信息:在 Skill 或子智能体 Markdown 里设 effort,在它们运行时覆盖努力等级。前置信息的努力在该 Skill 或子智能体活跃时适用,覆盖会话等级但不覆盖环境变量;maxEffortLevel 或组织努力上限仍限制它们运行的等级。

在托管设置里设 effortLevel,Claude Code 在解析顺序的「设置」步骤应用它,用户仍可用 /effort 或 --effort 改变等级;想把用户保持在某等级或以下,设 maxEffortLevel。支持的模型被选中时,努力滑块出现在 /model 里;当前努力等级也显示在会话标题里模型名旁(如「with low effort」),页脚在启动和变化时也会短暂显示。

Ultracode

/effort 滑块还有一个 Ultracode 开关。Ultracode 是 Claude Code 设置而不是模型努力等级:开启后,Claude 为实质性任务编排动态工作流,在会话所运行的任何努力等级下。开关 ultracode 不改变努力等级;--effort ultracode 标志和 Agent SDK 的 effortLevel: "ultracode" 值会开启它并同时把等级设为 xhigh;在 /effort 滑块或 /model 选择器里选等级不改变 ultracode 的状态。开启方式:/effort ultracode 对当前会话开启、/effort ultracode off 关闭,或在滑块里按 Tab 翻转开关再 Enter 应用;claude --effort ultracode 启动,会话以 xhigh 努力且 ultracode 开启开始;在设置文件、--settings 或 Agent SDK 控制请求里设 "ultracode": true,applyFlagSettings() 请求还接受 effortLevel: "ultracode"(开启它并把等级设为 xhigh)。

/effort ultracode off 形式、滑块开关、以及在非 xhigh 的等级下保持 ultracode 开启需要 v2.1.284+(之前开启 ultracode 会把会话设为 xhigh,选别的等级会关闭它,低于 xhigh 的努力上限使其不可用);给 --effort 标志或 SDK effortLevel 传 ultracode 需要 v2.1.203+(之前 --effort ultracode 会打印 Unknown --effort value 'ultracode' 并以默认努力启动)。持久化的 effortLevel 设置和 CLAUDE_CODE_EFFORT_LEVEL 环境变量不接受 ultracode;若 CLAUDE_CODE_EFFORT_LEVEL 或努力上限设定了会话等级,ultracode 在那个等级上保持开启。Ultracode 不可用的情形:工作流被关闭;模型不支持 xhigh 努力。此时 --effort ultracode 以 ultracode 关闭、在模型和任何上限允许的最高努力等级(至多 xhigh)启动会话。

自适应推理与固定思考预算

自适应推理让每一步的思考成为可选项,所以 Claude 可以更快响应常规提示,把更深的思考留给受益的步骤。想让 Claude 比当前等级产生的更多或更少思考,可以在提示或 CLAUDE.md 里直接说,模型会在其努力设置内响应该指导。Fable 模型、Sonnet 5 及更新版本和 Opus 4.7 及更新版本总是使用自适应推理,固定思考预算模式和 CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING 对它们不适用。在 Opus 4.6 和 Sonnet 4.6 上,可以设 CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1 回到由 MAX_THINKING_TOKENS 控制的先前固定思考预算。

扩展思考

扩展思考是 Claude 在回答之前发出的推理。在支持自适应推理的模型上,努力等级是控制思考多少的主要手段;下面的设置控制思考的开关和显示。关闭思考时,Claude Code 在 Anthropic API 上对已知不接受该组合的模型(如 Opus 5)发送努力 high 而不是更高等级。

控制设置方式
切换当前会话macOS 按 Option+T,Windows 和 Linux 按 Alt+T
设置全局默认运行 /config 切换思考模式,保存为 ~/.claude/settings.json 里的 alwaysThinkingEnabled
用环境变量禁用设 MAX_THINKING_TOKENS=0,在 Anthropic API 上关闭思考(Opus 5.5、Sonnet 5.5 和 Fable 模型除外);在第三方提供商上 Claude Code 省略 thinking 参数,自适应推理的模型仍可能思考;其他值只适用于固定思考预算

在 Opus 5.5、Sonnet 5.5 和 Fable 模型上不能关闭思考:会话开关和 /config 行显示「Thinking can't be turned off」而不是提供开关,保存的 alwaysThinkingEnabled: false 或 MAX_THINKING_TOKENS=0 在那里无效,由模型根据努力等级在每一步决定思考多少;你切换到接受它的模型时保存的设置又会生效。Claude Code 默认折叠思考输出,按 Ctrl+O 切换详细模式,以灰色斜体显示推理。Anthropic API 上的交互会话默认收到被编辑过的思考块,想在展开时能看到完整摘要,在设置里设 showThinkingSummaries: true。所有生成的思考 token 都计费,即使折叠或被编辑。

扩展上下文

Fable 5.1、Fable 5、Sonnet 5 及更新版本、Opus 4.6 及更新版本和 Sonnet 4.6 支持 100 万 token 上下文窗口,适合大型代码库的长会话。在 Anthropic API 上,Fable 5.1、Fable 5、Sonnet 5 及更新版本和 Opus 4.7 及更新版本在所有套餐(包括 Pro)上都以 1M 窗口运行,不需要选 [1m] 变体、也不需要开启用量额度(Fable 用量本身在一些套餐上可能计入用量额度)。Opus 4.6 和 Sonnet 4.6 只能通过 [1m] 变体到达 1M,访问取决于套餐:

套餐Opus 4.6 的 1M 上下文Sonnet 4.6 的 1M 上下文
Max、Team、Enterprise订阅包含需要用量额度
Pro需要用量额度需要用量额度
API 与按量付费完全访问完全访问

Claude Code 只在直连 Anthropic API 时检查这些套餐要求。如果把 ANTHROPIC_BASE_URL 指向 LLM 网关而保存的 claude.ai 登录仍是活动凭据,Claude Code 不检查你套餐的用量额度,/model 里仍可选 [1m] 选项,由网关决定请求是否成功(v2.1.229 之前,该配置下无法确认账号用量额度时 Claude Code 拒绝 /model sonnet[1m])。

设置了 ANTHROPIC_BASE_URL 指向 LLM 网关或其他代理时,Claude Code 给它认识的每个模型与其在 Anthropic API 上相同的上下文窗口:Fable 5.1、Fable 5、Sonnet 5 及更新版本和 Opus 4.7 及更新版本得到 1M 窗口而无需选 [1m] 变体;只能通过 [1m] 变体到 1M 的模型(如 Opus 4.6)没有它则按 200K 运行。Claude Code 无法探测网关或其后服务器强制的更低限制;如果你的网关拒绝 200K token 以上的请求,运行 /autocompact 200k 让会话在该边界压缩。

想关闭 1M 上下文,设 CLAUDE_CODE_DISABLE_1M_CONTEXT=1:Claude Code 从模型选择器移除 1M 模型变体,并且对原生 1M 窗口的模型(如 Sonnet 5 和 Fable 模型)也把它当作 200K 上下文窗口:自动压缩开启时会话在 200K 边界压缩(把自动压缩窗口设得比 200K 大也解除不了,因为 Claude Code 把该窗口限制在模型的上下文窗口之内);自动压缩关闭时,会话在 200K 边界以上下文限制错误停止而不是压缩。v2.1.223 之前 Claude Code 只把 Sonnet 5、Opus 4.8 和 Opus 5 会话限制在 200K。1M 上下文窗口使用标准模型定价,超过 200K 的 token 没有溢价;扩展上下文包含在订阅里的套餐,用量仍由订阅覆盖,通过用量额度访问扩展上下文的套餐,token 计入用量额度。

你的账号支持 1M 上下文时,该选项出现在最新版 Claude Code 的 /model 选择器里;看不到就重启会话,在第三方提供商上检查你的部署是否用 ANTHROPIC_DEFAULT_*_MODEL 变量固定了模型。也可以对别名或完整模型名使用 [1m] 后缀:/model opus[1m]、/model sonnet[1m]、/model claude-opus-4-8[1m]。

在 Anthropic API 上,Sonnet 5.5 和 Sonnet 5 总是以 1M 上下文窗口运行:没有 200K 变体、没有可选的 [1m] 后缀,任何套餐都不需要用量额度;会话在窗口填满之前自动压缩,默认约在 967K token,设 CLAUDE_CODE_AUTO_COMPACT_WINDOW 选择别的阈值。在 LLM 网关或其他自定义 ANTHROPIC_BASE_URL 之后,Claude Code 给 Sonnet 5.5 和 Sonnet 5 同样的 1M 窗口;网关强制更低限制时见上面关于网关的说明。CLAUDE_CODE_DISABLE_1M_CONTEXT=1 把每个有原生 1M 窗口的模型的会话限制到 200K,适用于需要限制上下文的部署。