跳转到正文
AstroPaper
返回

Claude 如何选择 Effort 级别?

编辑页面

五个 Effort 级别

Claude Code CLI 有五个 Effort 级别,甚至比网页端还多一个。在 CLI 里输入 /effort 会弹出一个交互式滑块,从左到右依次是:

此外 CLI 还多一个 Ultracode(xhigh + workflows),这是网页端没有的,它会让 Claude Code 自动启用多 agent 工作流。

使用方式:

# 打开交互式滑块(用方向键选择)
/effort

# 直接设定
/effort xhigh

# 恢复模型默认值
/effort auto

# 启动时指定(仅当次会话)
claude --effort low

在 CLI 里输入 /effort 会出现一个交互式滑块,共 6 个选项(5 个 Effort 级别 + Ultracode):

Faster ←──────────────────────────────→ Smarter

  low     medium     high     xhigh     max     ultracode
   ○        ◐         ●        ◉        ⬤      xhigh + workflows

Effort 控制的是自适应推理(adaptive reasoning),让模型根据任务复杂度决定是否以及 思考多深。低 Effort 更快更便宜,高 Effort 推理更深入。

Fable 5.1 支持的完整级别: low、medium、high、xhigh、max

对比一下各端的差异:

设置方式:

/effort           # 打开交互式滑块
/effort xhigh     # 直接设定
/effort max       # 最深推理(仅当前会话生效)
/effort ultracode # xhigh + 动态工作流
/effort auto      # 恢复模型默认值

low、medium、high、xhigh 会跨会话持久保存(按模型分别记忆),max 则仅 对当前会话生效。

Ultracode 是什么?

Ultracode 是一个 Claude Code 的设置,而不是模型 Effort 级别:它向模型发送 xhigh 级别的 Effort,同时让 Claude 为实质性任务编排动态工作流(workflows)。

之所以用 xhigh 而不是 max,是因为两者的设计目的不同:

简单来说就是:max 是“一个人拼命想”,ultracode 是“一群人协作干活,每个人都 认真想”。对于复杂的工程任务,后者通常更有效。

如何选择?

根据官方文档的说明,结合实际使用场景,六种选择的定位是这样的:

low ○ — 快而省

适合短小、范围明确、对速度敏感、对智力要求不高的任务。比如简单的格式化、样板 代码生成、子 agent 跑的小任务、改个变量名之类的。

medium ◐ — 控成本

在成本敏感的场景下,可以牺牲一些智力换取更低的 token 消耗。日常写一些不太复杂的 代码、简单的文件操作、已经很明确的修改,都适合使用这个级别。

high ● — 日常默认

平衡 token 消耗和智力,是绝大多数模型的默认值。日常复杂编码、Bug 修复、代码审查、 常规推理任务都适合待在这个级别,不需要特意去调。

xhigh ◉ — 深度推理

更深的推理,更高的 token 消耗。适合复杂的架构设计、跨模块重构、棘手的 Debug、 需要多步推理的问题。觉得 high 没想明白的时候往上调一档。

max ⬤ — 极限推理(慎用)

最深的推理,不限 token 预算。能在高难度问题上带来提升,但容易过度思考,收益递减 明显。只在最难的问题上偶尔使用,不要作为常态。官方建议是先试 xhigh,不够再上 max。

ultracode ◉ + workflows — 多 agent 协作

不是更聪明,而是多了编排能力。Claude 会为复杂任务自动拆分、启动多个子 agent 并行 工作。适合大规模重构、跨多文件的功能开发、需要“调查 → 规划 → 执行 → 验证”完整 流程的大任务。

实际使用的建议是:平时保持 high 不动,遇到难题调到 xhigh,只在最棘手的单点 问题上临时用 max。如果任务本身规模大、步骤多,用 ultracode 比用 max 更合适。 对于单次偶尔需要深度思考但不想改全局设置的情况,也可以在提示词里加上 ultrathink 关键词,让 Claude 只在那一轮深入思考。

ultrathink 是什么?如何使用?

ultrathink 的机制和你可能想象的不太一样,它并不对应任何一个 Effort 级别。它是 一个提示词关键词(prompt keyword),不是设置,也不是命令。Claude Code 识别到这个 词后,会在上下文中注入一条指令,要求模型在那一轮更深入地推理。但发送给 API 的 Effort 参数本身不会改变,也不会改变你会话保存的 Effort 级别。

/effort 改的是 API 参数,是“给你多大的思考预算”。ultrathink 改的是上下文指令, 是“在现有预算内请你更认真地想”。一个是硬性的资源分配,一个是软性的提示引导。按 Ctrl+O 打开 verbose 模式,你能看到灰色斜体的 thinking 内容。如果 ultrathink 生效 了,那一轮的 thinking 部分会明显更长、更详细,推理步骤更多。

注意,只有 ultrathink 这一个关键词会被识别。“think hard”、“think harder”、“think more” 这些都只是普通文本,Claude Code 不会对它们做任何特殊处理。

放在提示词的任何位置即可:

ultrathink 这个竞态条件为什么只在高负载下出现?找出根因,然后提出一个不加全局锁的修复方案
分析一下这个认证模块的安全隐患 ultrathink
ultrathink refactor this auth module to handle refresh token rotation

回复完那一轮之后,就自动恢复到你之前的 Effort 级别,不需要手动切回来。所以它的 定位很清晰:平时保持 high,偶尔碰到一个特别棘手的问题,不想改全局设置,就在那条 消息里加个 ultrathink,让 Claude 在那一轮多想一想,想完之后一切照旧。


编辑页面
分享这篇文章:

上一篇
Adding new posts in AstroPaper theme
下一篇
Reading Notes: Skills Improvements in Deep Agents