先说结论:Opus 5.5 的 effort(努力程度)控制模型想多久、做多少验证,有 low、medium、high、xhigh、max 五档,默认是 medium,比 Opus 5 的默认 high 低一档。
- 日常有明确范围的开发(实现一个功能)用默认
medium就够;修已有代码里的 bug、边界情况多的活换high;xhigh、max留给几十分钟以上、要模型自己反复验证的长任务。这是 Claude Code 官方文档的分法。 - 据用户反馈,不少人把 Opus 5.5 从
xhigh降到high后效果不降反升。Artificial Analysis 的数据是:xhigh跑完整套评测用了约 100M 输出 token,high用了 56M,前者多用约 1.8 倍 token,分数高 5 分(57 对 52)。 - Claude Code 里有个坑:
~/.claude/settings.json顶层的旧写法"effortLevel": "high"对 Opus 5.5 不生效,它会照样跑medium。要在 Opus 5.5 下执行一次/effort high,Claude Code 会按模型存到modelSettings里。我们实测确认了这一点。 - API 里写
"output_config": {"effort": "high"},不传就是medium。
创建 API Key,在 Claude Code、Codex、Cursor 里用 Opus 5.5 →
五个 effort 档位分别是什么
effort 不是硬性的 token 上限,而是告诉模型这次该花多少力气:它影响思考的长短,也影响回复和工具调用的多少。官方文档说,档位低时模型遇到够难的问题仍会思考,只是想得少一些。Opus 5.5 的思考(adaptive thinking)一直开着、关不掉,所以 effort 是控制它思考深度的主要开关。
下表把官方说明和 Artificial Analysis 用各档位跑 Intelligence Index v5 的数据放在一起(AA 的数据见 low / medium、high、xhigh / max 对比页):
| 档位 | 官方建议用在哪 | AA 指数得分 | 跑完整套评测的输出 token | 平均每题耗时 |
|---|---|---|---|---|
| low | 头脑风暴、草稿、改名这类小改动;子代理 | 35 | 约 21M | 约 153 秒 |
| medium(默认) | 范围明确的日常开发,比如实现新功能 | 48 | 约 43M | 约 347 秒 |
| high | 要验证、边界情况多的活,比如在已有代码库里修 bug | 52 | 约 56M | 约 474 秒 |
| xhigh | 更深的推理,适合 30 分钟以上的长任务 | 57 | 约 100M | 约 793 秒 |
| max | 让模型自己啃的难题,比如找安全漏洞;官方提醒可能想过头 | 58 | 约 218M | 约 1141 秒 |
从 high 到 xhigh,token 多约 1.8 倍换 5 分;从 xhigh 到 max,token 再翻一倍多只多 1 分。AA 还指出 medium、high、xhigh、max 四档都在它的「智能 vs 每题开销」帕累托前沿上,也就是说这四档各有适合的场景,并没有哪一档绝对最好。
为什么最近大家在把 effort 往下调
这波讨论起于 10 月 31 日。据 Theo (t3.gg) 的帖子,同事 Julius 劝他把 Opus 5.5 从 extra high 换成 high,用了一两周后他说「几乎每次都更好」;第二天他又发了一张 effort 档位排名图,high 排第一,medium 和 xhigh 第二,max 垫底。
其他几条有代表性的反馈:
- 据 @zwb44,他把 AA 的数据画成了图,结论是「xhigh 用 1.8 倍 token 换 5 分」,自己改成主用
high后用量和速度差别明显。 - 据 swyx,他更进一步,主张对吞吐量敏感的场景用
low再加一轮自我审查(critique loop)。 - 据 @jayleaton,他 95% 的时间用
medium,只有写 CUDA 内核优化这种难活才开high。 - 也有人持相反意见,认为写代码只有
high/xhigh才够用,low太弱。
X 上的话题汇总里还有一句「Anthropic 推荐 high 作为多数工作的平衡点」。我们翻了官方文档,没找到针对 Opus 5.5 的这个说法:Opus 5.5 的默认和起点都是 medium;「high 往往是质量和 token 效率的最佳平衡」这句话写在 Opus 4.7 的建议里。所以本文按 Opus 5.5 自己的文档来写。
Anthropic 官方怎么说
- 默认 medium,别照搬 Opus 5 的设置:Opus 5.5 提示指南说,在 Anthropic 的测试里,Opus 5.5 的
medium在编程和知识工作评测上达到或超过 Opus 5 的high,几个编程评测上low也接近它。同一个档位,Opus 5.5 每轮想得比 Opus 5 多,尤其是xhigh和max,沿用旧设置会更慢、token 更多。 xhigh、max只在测出提升时用:官方建议先用自己的任务把几个档位都跑一遍再定。想少思考,先降 effort,比在提示词里写「别想太多」更有效。- 官方博客的用法:Claude 官方博客 claude.dev 上,Thariq Shihipar 在 《Spending your effort》 里说,他做新功能的流程是先让 Claude 采访自己补全需求,用
low实现,自己看一遍,再用high做验证和测试。他的测试里,effort 越高,模型测的边界情况越多、自己做的决定也越多;low更快给出一个起点,适合人一直在旁边看。
第 1 步:创建 API Key 并接入 Claude Code
- 在 aicodewith.ai 注册并登录,进入「密钥管理」,创建一个 Key,复制生成时显示的完整字符串。
- 在终端里设置地址和 Key,用 Opus 5.5 启动 Claude Code:
export ANTHROPIC_BASE_URL="https://api.aicodewith.ai"
export ANTHROPIC_AUTH_TOKEN="你的 API Key"
claude --model claude-opus-5-5
想长期保存、在 Windows 上配置或者遇到登录冲突,看《Claude Code 如何接入第三方 API》。Codex、Cursor 里同样可以选 Claude 模型,接入方式见同一篇。
第 2 步:在 Claude Code 里设置和切换 effort
Claude Code 底部状态栏会显示当前档位,比如 ◐ medium · /effort。常用命令:
/effort status # Effort level: auto (currently medium)
/effort high # Set effort level to high (saved as your default for new sessions)
/effort # interactive slider: low / medium / high / xhigh / max
/effort auto # clear the saved level for the current model
/effort high这类直接带档位的写法,以及在/effort滑块或/model选择器里按 Enter,都会保存为该模型的默认值,下次启动还在;在滑块里按s只对本次会话生效。max不会被保存,只对当前会话生效(用环境变量设置除外)。- 新档位从你发的下一条消息开始生效。
不想改默认值,只想临时换档:
# one session only
claude --model claude-opus-5-5 --effort high
# headless run (-p), this run only
claude -p "Fix the failing test" --model claude-opus-5-5 --effort low
# environment variable, overrides everything else
export CLAUDE_CODE_EFFORT_LEVEL=high
Claude Code 决定档位的顺序是:CLAUDE_CODE_EFFORT_LEVEL 环境变量 > 会话里 /effort 或 /model 选的 > 启动参数 --effort > settings 里保存的 > 模型默认值。
坑:旧的 effortLevel 对 Opus 5.5 不生效
以前 /effort 会在 ~/.claude/settings.json 顶层写一行 effortLevel。现在 Claude Code 按模型保存,执行 /effort high 后文件变成这样(我们实测得到的内容):
{
"modelSettings": {
"claude-opus-5-5": {
"effortLevel": "high"
}
}
}
如果你的用户设置里还是旧写法:
{
"effortLevel": "high"
}
我们实测:用这个文件启动 Opus 5.5,/effort status 显示 Effort level: auto (currently medium),也就是旧的 high 被忽略了;同一个文件换成 Opus 5 启动,显示的是 high。这和官方文档一致:用户设置里顶层的 effortLevel 对 Opus 5.5 及之后的模型不算数,但写在项目、本地或托管设置里的顶层 effortLevel 对所有模型都生效。所以从 Opus 5 换到 Opus 5.5 后,先跑一次 /effort status 看看自己到底在哪一档。
另外,effort 也可以写在 skill 或子代理(subagent)文件的 frontmatter 里,单独给某个 skill 或子代理指定档位。只想让某一轮多想一点,在提示词里写 ultrathink 即可,不用改会话档位。
第 3 步:API 请求里怎么写 effort
effort 写在 output_config 里,不需要 beta 请求头。用本站 Key 的 curl 写法:
curl https://api.aicodewith.ai/v1/messages \
-H "x-api-key: 你的 API Key" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5-5",
"max_tokens": 32000,
"output_config": { "effort": "high" },
"messages": [{ "role": "user", "content": "Write parse_duration(s) ..." }]
}'
Python SDK:
import anthropic
client = anthropic.Anthropic(base_url="https://api.aicodewith.ai")
resp = client.messages.create(
model="claude-opus-5-5",
max_tokens=32000,
output_config={"effort": "high"}, # low / medium / high / xhigh / max
messages=[{"role": "user", "content": "Write parse_duration(s) ..."}],
)
text = "".join(b.text for b in resp.content if b.type == "text") # thinking block comes first
注意几点:
- 不传
output_config.effort就是模型默认值,Opus 5.5 是medium;显式传"medium"和不传效果完全一样。 - 档位越高,
max_tokens要给得越大:思考 token 也算在max_tokens里,官方说长的编程任务设到 128000(Opus 5.5 的上限)效果好。 - 返回的
content第一块通常是thinking,读取回复要按type == "text"找,不要直接取第一块。 - 一段对话中途想换档,改顶层 effort 会让提示缓存失效。Opus 5.5 支持按消息改 effort(beta,需要
mid-conversation-output-config-2026-07-01请求头),可以保住缓存,写法见官方文档。
实测:用本站 Key 跑一遍各档位
测试日是 2026 年 11 月 1 日,模型 claude-opus-5-5,全部通过本站 Key 调用。
API:同一道题跑五个档位
题目是写一个 parse_duration(s),把 "1h30m"、"2d4h" 这类字符串换成秒数,要求处理大小写、空格、乱序、重复单位、小数、负数等 15 种非法输入。我们用 25 个用例(10 个合法、15 个非法)给每档的代码打分:
| effort | 耗时 | 输出 token | 25 个用例 |
|---|---|---|---|
| 不传(默认) | 约 9.8 秒 | 411 | 全部通过 |
| low | 约 9.7 秒 | 410 | 全部通过 |
| medium | 约 10.7 秒 | 512 | 全部通过 |
| high | 约 12.1 秒 | 473 | 全部通过 |
| xhigh | 约 19.8 秒 | 798 | 全部通过 |
| max | 约 258.5 秒 | 5980 | 全部通过 |
不传和传 low 的结果几乎一样,是因为这道题对 Opus 5.5 来说不难,默认档位本来就只想一小会儿。到了 max,模型想了四分多钟、输出 token 是 high 的十几倍,结果和 high 一样是 25/25。max 档我们用非流式请求时,连接在 4 分多钟后被断开,换成流式("stream": true)才拿到结果,跑 xhigh、max 建议都用流式。
Claude Code:修一个 bug,四个档位
项目里一个合并区间的函数有 bug,相邻和首尾相接的区间没有合并,6 个测试里挂了 2 个:
# ranges.py
def merge_ranges(ranges):
"""Merge overlapping or touching [start, end] integer ranges."""
ranges = sorted(ranges)
out = []
for s, e in ranges:
if out and s < out[-1][1]:
out[-1][1] = max(out[-1][1], e)
else:
out.append([s, e])
return out
用 Claude Code 2.1.310 分别以 low、medium、high、xhigh 执行:
claude -p "Fix merge_ranges in ranges.py so all tests in test_ranges.py pass, then run python3 -m unittest. Reply with one short summary line." \
--model claude-opus-5-5 --effort high \
--permission-mode acceptEdits --allowedTools "Bash(python3 -m unittest*)"
| effort | 从回车到返回 | 结果 |
|---|---|---|
| low | 约 8.8 秒 | 6 个测试全过 |
| medium | 约 10.2 秒 | 6 个测试全过 |
| high | 约 14.2 秒 | 6 个测试全过 |
| xhigh | 约 30.3 秒 | 6 个测试全过 |
四个档位改的是同一行:
- if out and s < out[-1][1]:
+ if out and s <= out[-1][1] + 1:
这个结果和大家的反馈对得上:范围明确、有测试兜底的小任务,档位开高只会更慢,结果不会更好。 档位的差别要在边界情况多、没有现成测试、需要模型自己验证的任务上才看得出来,这时候再往上加。
怎么选:按任务挑档位
| 任务 | 建议起点 | 说明 |
|---|---|---|
| 问答、改名、写草稿、子代理 | low | 快,人看着随时纠正 |
| 范围明确的新功能、日常开发 | medium(默认) | 官方说相当于 Opus 5 的 high |
| 在已有代码库里修 bug、要跑测试验证 | high | 据用户反馈,从 xhigh 降到这里的多数人觉得够用 |
| 几十分钟以上的长任务、迁移、审计 | xhigh | token 明显更多,配大 max_tokens 并用流式 |
| 安全审计、找漏洞等让模型自己啃的难题 | max | 官方提醒可能想过头,先小范围试 |
如果用的是订阅额度,档位越高 token 越多,额度消耗也越快;用 API Key 时,token 用量随档位上涨,可以在后台调用记录里查看每次请求的用量。
常见报错和问题
报错「Opus 5.5 effort 必须为 low、medium、high、xhigh 或 max」
我们把 effort 写成 "ultra" 或 "adaptive" 时,本站返回:
HTTP 400
Opus 5.5 effort 必须为 low、medium、high、xhigh 或 max
档位名只有这五个。adaptive 是 thinking 的模式,不是 effort 档位;Claude Code 里的 ultracode 也不是 API 的档位,不能写进 output_config.effort。
设置了 high,Opus 5.5 还是跑 medium
多半是上面说的旧 effortLevel 问题。在 Opus 5.5 下执行 /effort high,再用 /effort status 确认。另外检查是否设了 CLAUDE_CODE_EFFORT_LEVEL 环境变量,它的优先级最高。
传 thinking disabled 或 budget_tokens 报 400
按官方 effort 文档和 Opus 5.5 迁移指南,Opus 5.5 的思考一直开着,thinking: {"type": "disabled"} 和 budget_tokens 在官方 API 上会返回 400。直接删掉 thinking 字段,用 effort 控制思考深度。temperature、top_p、top_k 也要去掉。
回复被截断或只有 thinking 没有正文
max_tokens 太小,思考把额度用完了。高档位下把 max_tokens 调大,长任务用流式。
在 Opus 4.6、Sonnet 4.6 上选 xhigh
这两个模型没有 xhigh。Claude Code 会自动降到不超过所选档位的最高可用档,xhigh 在 Opus 4.6 上按 high 跑。
Fast mode 和 effort 是一回事吗
不是一回事。effort 决定模型想多少、做多少验证;Fast mode 是另一个单独的开关,开法和适用场景见《Claude Opus 5.5 Fast Mode 怎么用》。
该用 Opus 5.5 低档位,还是直接换 Sonnet 5.5
两种都能省时间和 token,哪个合适要看任务,最好用自己的任务各跑一次比较。两个模型的对比见《Claude Sonnet 5.5 vs Opus 5.5》。
相关阅读
- Claude Opus 5.5 Fast Mode 怎么用?Claude Code /fast 开启与报错解决
- Claude Sonnet 5.5 vs Opus 5.5:编程能力和适用任务对比
- Claude Code 用哪个模型?Opus 5.5 与 Sonnet 5.5 怎么选
- Claude Code 如何接入第三方 API:Base URL、API Key 与模型配置
- Claude 水印 11 月 3 日生效:Claude Code / API 输出会被标记吗
参考来源
- Anthropic 官方文档:Effort
- Claude Code 文档:Model configuration(Adjust effort level)
- Anthropic:Prompting Claude Opus 5.5(Calibrate effort)
- Thariq Shihipar:Using Claude Code: Spending your effort
- Artificial Analysis:Claude Opus 5.5 takes the top spot,以及 xhigh vs max、high、medium vs low 对比页
- Theo 的帖子、Theo 的档位排名图、swyx、@zwb44、@jayleaton
- X 上的话题汇总



