Claude Opus 5.5 effort 怎么选?Claude Code /effort 设置、API 参数写法与实测(low 到 max)

Opus 5.5 的 effort(努力程度)有 low、medium、high、xhigh、max 五档,默认是 medium。最近不少人从 xhigh、max 降到 high 或 medium,说质量差不多、token 少很多。本文对照 Anthropic 官方文档和 Artificial Analysis 数据讲清各档差别,给出 Claude Code 里 /effort、--effort、settings.json 的设置方法,API 里 output_config.effort 的写法,常见报错,以及用本站 Key 跑的耗时实测。

9 分钟阅读
Claude Opus 5.5 effort 怎么选?Claude Code /effort 设置、API 参数写法与实测(low 到 max)

先说结论: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要验证、边界情况多的活,比如在已有代码库里修 bug52约 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

  1. 在 aicodewith.ai 注册并登录,进入「密钥管理」,创建一个 Key,复制生成时显示的完整字符串。
  2. 在终端里设置地址和 Key,用 Opus 5.5 启动 Claude Code:
bash
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。常用命令:

text
/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 不会被保存,只对当前会话生效(用环境变量设置除外)。
  • 新档位从你发的下一条消息开始生效。

不想改默认值,只想临时换档:

bash
# 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 后文件变成这样(我们实测得到的内容):

json
{
  "modelSettings": {
    "claude-opus-5-5": {
      "effortLevel": "high"
    }
  }
}

如果你的用户设置里还是旧写法:

json
{
  "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 写法:

bash
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:

python
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耗时输出 token25 个用例
不传(默认)约 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 个:

python
# 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 执行:

bash
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 个测试全过

四个档位改的是同一行:

diff
-        if out and s < out[-1][1]:
+        if out and s <= out[-1][1] + 1:

这个结果和大家的反馈对得上:范围明确、有测试兜底的小任务,档位开高只会更慢,结果不会更好。 档位的差别要在边界情况多、没有现成测试、需要模型自己验证的任务上才看得出来,这时候再往上加。

创建 API Key,用自己的任务把几个档位跑一遍 →

怎么选:按任务挑档位

任务建议起点说明
问答、改名、写草稿、子代理low快,人看着随时纠正
范围明确的新功能、日常开发medium(默认)官方说相当于 Opus 5 的 high
在已有代码库里修 bug、要跑测试验证high据用户反馈,从 xhigh 降到这里的多数人觉得够用
几十分钟以上的长任务、迁移、审计xhightoken 明显更多,配大 max_tokens 并用流式
安全审计、找漏洞等让模型自己啃的难题max官方提醒可能想过头,先小范围试

如果用的是订阅额度,档位越高 token 越多,额度消耗也越快;用 API Key 时,token 用量随档位上涨,可以在后台调用记录里查看每次请求的用量。

常见报错和问题

报错「Opus 5.5 effort 必须为 low、medium、high、xhigh 或 max」

我们把 effort 写成 "ultra" 或 "adaptive" 时,本站返回:

text
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》。

相关阅读

参考来源

相关文章

DeepSeek Harness Creator Mode 怎么用?安装、接入第三方 API 和写第一个插件实测

DeepSeek Harness Creator Mode 怎么用?安装、接入第三方 API 和写第一个插件实测

DeepSeek Harness 官方 11 月 2 日推出 Creator Mode 演示:用一句话描述需求,智能体就写好插件、装进 Harness 并验证。本文讲清 Creator Mode 是什么、怎么用 npx 安装 Harness、怎么把 OpenAI 兼容的第三方 API(aicodewith Base URL + Key)接进来用 Claude、GPT 和 DeepSeek 模型,再用 Creator Mode 实际做一个 todo_scan 插件,附实测输出、常见报错和 Claude Code / Codex 的对应做法。

Claude Code auto mode 接中转每轮失败?2.1.317 修了网关 403/422,附升级与实测

Claude Code auto mode 接中转每轮失败?2.1.317 修了网关 403/422,附升级与实测

Claude Code 2.1.317(11 月 3 日发布)修复了 auto mode(自动模式)在 ANTHROPIC_BASE_URL 指向 LLM 网关、网关对服务端安全检查返回 403 或 422 时每一轮都失败的问题。本文讲清这次更新改了什么、哪些第三方网关和中转用户会遇到、怎么升级和核对版本、怎么配置 Base URL 与 Key 并开启 auto mode,并附 2.1.316 与 2.1.317 的对照实测、常见报错对照表和 FAQ。

Claude Message Threads 怎么用?Messages API 消息线程公测:只发新消息、首 token 提速 35%(Claude Code / API 实测)

Claude Message Threads 怎么用?Messages API 消息线程公测:只发新消息、首 token 提速 35%(Claude Code / API 实测)

Anthropic 11 月 2 日给 Messages API 上线 Message Threads(消息线程)公测:第一轮发完整对话并建线程,之后每轮只发新消息和上一条回复的 id,长对话首 token 更快,但 token 用量和计费不变。本文对照官方文档讲清 thread 参数、beta 请求头、5 分钟过期和 404 重放,给出 curl / Python / TypeScript 写法,并用本站 Key 实测:通过 aicodewith 调用时 thread 字段会被忽略、续写拿不到上文,Claude Code 不受影响,附替代写法和常见报错。