Claude Code 的模型怎么设:别名、五种设置方式谁优先、钉住版本、压缩窗口和快速模式
Claude Code 里和模型有关的设置放在一页:别名各指向哪个模型、五种设置方式的优先级、怎么把别名钉到指定版本、备用模型、自动压缩的窗口、快速模式,以及在哪看当前的模型和花费。本站通过中转站逐项实测,顺带踩到一个坑:/model 会把选择存成以后的默认。
本站已实测,测试日期:2026-10-13。
本页目录(11 节)
这篇解决一个问题:我想让 Claude Code 用某个模型,该在哪设?设了好几处,到底听谁的?
模型该选哪个、effort 调到几档、怎么省用量,在《Claude Code 怎么省用量》里。这一篇只讲“怎么设”和“设了之后实际发生什么”。
| 实测环境 | |
|---|---|
| 日期 | 2026-10-13 |
| 版本 | Claude Code 2.1.296,Linux 服务器 |
| 连接方式 | 通过酷站AI 中转站,不是直连官方 |
| 做法 | 无界面跑了 19 次,每次只让它回答一个字,看实际用到的是哪个模型;交互式会话一段 |
先说实测的结论:
- 别名通过中转站照常解析:
sonnet、opus、fable分别落到 Sonnet 5.5、Opus 5.5、Fable 5.1。haiku落到 Haiku 5.5,这家中转站没有这个模型,直接报错,把它钉到中转站有的版本就好了。 - 优先级和文档一致:会话里的
/model最高,然后是启动参数、ANTHROPIC_MODEL、设置文件、ANTHROPIC_DEFAULT_MODEL,最后是账号的默认。 /model 模型名会把选择存成以后的默认。 本站在另一次实测里顺手敲了一句,之后所有会话的默认模型都变了,查了一圈才发现。- 只回答一个字也有固定开销:Sonnet 5.5 约 0.065 美元,Opus 5.5 约 0.13 美元,Fable 5.1 约 0.35 美元。
- 快速模式走中转站开不了。
一、别名各指向什么
写模型的地方可以填完整的模型名,也可以填别名:
| 别名 | 含义 |
|---|---|
default |
不是模型,是“清掉我的指定,回到账号的默认” |
sonnet |
最新的 Sonnet,日常写代码 |
opus |
最新的 Opus,复杂的推理 |
haiku |
快而便宜的 Haiku,简单的活 |
fable |
最强的那一档,给最难、跑得最久的任务 |
best |
你能用 Fable 就是 Fable,否则同 opus |
opusplan |
计划模式用 opus,动手执行时换成 sonnet |
sonnet[1m]、opus[1m] |
带 100 万 token 窗口的版本。别名已经指向自带 100 万窗口的模型时,加不加没有区别 |
直连 Anthropic 时,opus、sonnet、haiku 现在分别指向 Opus 5.5、Sonnet 5.5、Haiku 5.5。在 Bedrock 这些云平台上,同一个别名可能指向更老的版本。
别名指向哪个版本会随 Claude Code 更新而变。新模型对版本有要求:Opus 5.5 要 2.1.280 以上,Sonnet 5.5 要 2.1.284 以上,Haiku 5.5 要 2.1.293 以上。
实测:每种写法实际用到的模型
无界面模式的结果里有一项 modelUsage,记着这次请求真正用了哪个模型。同一句“只回答一个字:好”:
| 启动时写的 | 实际用到的模型 | 输入 token | 估算花费 |
|---|---|---|---|
--model sonnet |
claude-sonnet-5-5 |
26,132 | 0.065 美元 |
--model opus |
claude-opus-5-5 |
26,175 | 0.131 美元 |
--model fable |
claude-fable-5-1 |
27,993 | 0.35 美元 |
--model opusplan(不在计划模式) |
claude-sonnet-5-5 |
26,132 | 0.065 美元 |
--model 'sonnet[1m]' |
claude-sonnet-5-5[1m] |
26,136 | 0.065 美元 |
--model haiku |
报错,见下 | — | 0 |
两点说明:
- 两万六千个输入 token 是固定开销:系统提示、工具定义、CLAUDE.md。问的那句话本身只有几个 token。所以哪怕只问一个字,一次冷启动的无界面运行也要几分到几毛钱,在脚本里循环调用之前要算一下。
haiku报错是中转站的原因,不是别名坏了:
There's an issue with the selected model (claude-haiku-5-5). It may not exist or
you may not have access to it. Run --model to pick a different model.
别名解析成了 claude-haiku-5-5,而这家中转站的模型列表里没有它。解决办法在第四节。
二、五种设置方式,谁优先
文档列的顺序,从高到低:
- 会话里:
/model 别名或模型名,立刻切换。 - 启动时:
claude --model 别名或模型名。 - 环境变量:
ANTHROPIC_MODEL。 - 设置文件:
model字段。 - 新会话的默认:环境变量
ANTHROPIC_DEFAULT_MODEL,要 2.1.236 以上。
都没设,就是账号的默认。订阅和直接用 API 的账号现在默认是 Opus 5.5。
实测
| 同时设了什么 | 实际用到的 | 说明 |
|---|---|---|
| 什么都不设 | Opus 5.5 | 账号的默认 |
只有 ANTHROPIC_DEFAULT_MODEL=sonnet |
Sonnet 5.5 | 第 5 种生效 |
只有项目设置 "model": "sonnet" |
Sonnet 5.5 | 第 4 种生效 |
项目设置 sonnet,加 ANTHROPIC_DEFAULT_MODEL=opus |
Sonnet 5.5 | 设置文件压过第 5 种 |
项目设置 opus,加 ANTHROPIC_MODEL=sonnet |
Sonnet 5.5 | 环境变量压过设置文件 |
ANTHROPIC_MODEL=opus,加 --model sonnet |
Sonnet 5.5 | 启动参数压过环境变量 |
和文档的顺序完全一致。
--model 和 ANTHROPIC_MODEL 只管这一次启动。想在两个终端里同时用两个模型,各自带 --model 启动,不要用 /model 来回切。
/model 会保存:本站踩到的坑
/model 不带参数会打开选择列表,底下有一行提示:
Enter to set as default · s to use this session only · Esc to cancel
按回车是“切换并存成以后的默认”,按 s 才是“只这一次”。直接敲 /model 模型名,等同于按回车。
本站在测 hooks 的时候,在一段会话里敲了 /model claude-sonnet-5-5。之后再跑“什么都不设”的情况,用到的一直是 Sonnet 5.5 而不是 Opus 5.5。去看用户设置,里面多了一行:
"model": "claude-sonnet-5-5"
这就是那次 /model 存下的。它的优先级在第 4 种,所以后来所有没指定模型的会话都跟着它走。
清掉的办法是 /model default:
❯ /model default
⎿ Set model to Opus 5.5 (default) and saved as your default for new sessions
实测之后用户设置里的 model 一项消失了,“什么都不设”重新回到 Opus 5.5。
在无界面模式里用 /model 不会保存,只管当前这一次。
几条相关的规则
- 恢复的会话沿用它当时的模型。
--resume、--continue回来的会话不看现在的默认,除非这次启动带了--model或ANTHROPIC_MODEL。 /model也会影响子代理。 没有单独指定模型的子代理,用的是它启动那一刻主会话的模型。想给所有子代理另定一个模型,设环境变量CLAUDE_CODE_SUBAGENT_MODEL。- 会话中途换模型,缓存要重建。 细节见《提示缓存》。hook 里能拿到这次切换估计要多少钱,见《Hooks 速查》。
- 模型名写错,启动时不检查。 用
--model、环境变量或设置文件指定的模型,要到第一次请求才报错。
三、default 和 opusplan
default 的含义是“账号的默认”,目前是 Opus 5.5。Fable 不会成为任何账号的默认,要用得明确选它,而用 /model 选了之后它就被存成了你的默认。
opusplan 是个省钱的折中:计划模式里用 Opus 想清楚方案,退出计划模式开始改代码时自动换成 Sonnet。实测不在计划模式时,它用的确实是 Sonnet 5.5。计划模式里的那一半本站没有测。
想让模型自己决定什么时候请教更强的模型,而不是在计划和执行的边界上切,那是 advisor 工具。
四、把别名钉到指定的版本
别名会随版本更新指向新模型。想自己控制,或者像本站这样中转站缺某个模型,用下面这组环境变量,值必须是完整的模型名:
| 环境变量 | 管哪个别名 |
|---|---|
ANTHROPIC_DEFAULT_OPUS_MODEL |
opus,以及 opusplan 在计划模式里用的 |
ANTHROPIC_DEFAULT_SONNET_MODEL |
sonnet,以及 opusplan 执行时用的 |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
haiku,以及 Claude Code 的后台功能 |
ANTHROPIC_DEFAULT_FABLE_MODEL |
fable |
旧的 ANTHROPIC_SMALL_FAST_MODEL 已经不推荐,用 ANTHROPIC_DEFAULT_HAIKU_MODEL。
实测
| 设了什么 | 启动时写的 | 实际用到的 |
|---|---|---|
ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5 |
--model sonnet |
claude-sonnet-5 |
ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5-20251001 |
--model haiku |
claude-haiku-4-5-20251001 |
第二行就是第一节那个报错的解法:把 haiku 钉到中转站有的 Haiku 4.5,同一条命令就通了,这一次只花了 0.041 美元。
第一行顺带看到一个差别:同一句话,Sonnet 5 计了 39,428 个输入 token,Sonnet 5.5 是 26,132 个。两代模型数 token 的办法不一样,钉到老版本不一定省钱,这一次反而贵了一半。
走中转站的读者值得检查这一组变量。 写进用户设置的 env 里就行:
{
"env": {
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5-20251001"
}
}
要在选择列表里多加一个自己的条目,而不替换现有的,用 ANTHROPIC_CUSTOM_MODEL_OPTION,值可以是接口认的任何模型名,Claude Code 不检查它。
五、备用模型
主模型过载或者不可用时,可以让 Claude Code 自动换一个,而不是直接失败。
claude --fallback-model sonnet,haiku
或者写进设置,是一个数组:
{ "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"] }
按顺序试,最多三个。切换只管当前这一轮,下一条消息还是先试主模型。认证、计费、限流这类错误不会触发它。启动时不会确认这条链,/status 里也看不到,第一次切换时才有一行提示。
实测故意把主模型名写错,带上 --fallback-model sonnet:
[claude-code:unrecognized_model] {"model":"claude-no-such-model","query_source":"sdk"}
之后请求由 Sonnet 5.5 完成,回答正常。不带备用模型时,同样的写错是直接失败。
另一种:内容被标记时自动换模型
这是另一回事。Fable、Opus 5.5、Sonnet 5.5、Opus 5 带着安全分类器,最常标记的是网络安全和生物两类内容。被标记的请求会自动换到另一个模型重跑:
| 原来的模型 | 网络安全类 | 生物类 |
|---|---|---|
| Fable 5.1、Fable 5、Opus 5.5 | 换到 Opus 4.8 | 换到 Opus 5 |
| Sonnet 5.5 | 换到 Sonnet 5 | 直接拒绝 |
| Opus 5 | 换到 Opus 4.8 | 直接拒绝 |
换过去之后,会话就留在那个模型上,要回去得自己 /model。想每次先问你,在 /config 里把“消息被标记时切换模型”改成每次询问。
文档还提醒:会话的第一个请求就可能触发,因为它带着 CLAUDE.md 和 git 状态;仓库里有安全相关的材料时尤其如此。用 claude --safe-mode 启动可以排查是不是自己的定制内容引起的。
这一段本站没有实测。走中转站时,换过去的那个模型中转站有没有,也是个问题。
六、上下文窗口和自动压缩
100 万窗口
Fable、Sonnet 5 及以后、Haiku 5.5、Opus 4.7 及以后,默认就是 100 万 token 的窗口,不用加后缀,超过 20 万的部分也不加价(Haiku 5.5 除外,它的提示超过 10 万 token 后单价更高)。只有 Opus 4.6 和 Sonnet 4.6 要靠 [1m] 后缀才到 100 万。
想把会话限制在 20 万,设 CLAUDE_CODE_DISABLE_1M_CONTEXT=1。
走网关时,Claude Code 认得的模型名,窗口按官方的算。模型名它不认得的时候,它会按自己的假定来,和真实的窗口对不上时用 CLAUDE_CODE_MAX_CONTEXT_TOKENS 纠正。这一条规则很细,照文档的那一节来。
自动压缩的窗口
对话占到多满时自动压缩,可以调。不调的话,自带 100 万窗口的模型在大约 96.7 万 token 时压缩。
| 在哪设 | 管多大范围 |
|---|---|
/autocompact 500k |
当前这个模型,这次和以后的会话 |
设置里的 autoCompactWindow |
所有模型 |
启动参数 --autocompact |
这一次启动 |
环境变量 CLAUDE_CODE_AUTO_COMPACT_WINDOW |
设了就压过上面三种 |
能设的范围是 10 万到 100 万,可以写 200000、500k、1M,或者只写 200(表示 20 万)。环境变量只认纯数字。
实测:
❯ /autocompact
Current setting for Opus 5.5: 1m tokens (default for this model)
❯ /autocompact 300k
⎿ Auto-compact window for Opus 5.5 set to 300k tokens
之后用户设置里多了这一段,可以看到它是按模型分开存的:
"modelSettings": {
"claude-opus-5-5": { "effortLevel": "medium", "autoCompactWindow": 300000 }
}
窗口调小,压缩来得早,每次请求带的历史少,单次便宜;代价是压缩得更频繁,每次压缩都要重建缓存。/autocompact 的界面上自己写着建议用 auto。本站测完改回了 auto。
七、快速模式
快速模式不是另一个模型,是同一个 Opus 换了一种更快的配置:输出速度最高到 2.5 倍,单价更高。支持 Opus 5.5、Opus 5 和 Opus 4.8,目前是研究预览。
| 输入 | 输出 | |
|---|---|---|
| Opus 5.5 快速模式 | 每百万 token 8 美元 | 40 美元 |
| Opus 5、Opus 4.8 快速模式 | 10 美元 | 50 美元 |
用 /fast 开关。要注意两点:订阅用户的快速模式只走额外的用量额度,不算在套餐里;会话中途第一次打开,要按快速模式的价格把整段上下文重新付一遍,所以要用就在会话开头开。
实测:走中转站开不了
❯ /fast
↯ Fast mode (research preview)
High-speed mode for Opus 5.5. Draws from usage credits at a higher rate. Separate rate limits apply.
Fast mode has been disabled by your organization
文档里有一段相关的说明:Claude Code 在提供快速模式之前,会直接向 api.anthropic.com 查一次你的组织有没有开通,这个检查不走 ANTHROPIC_BASE_URL,网关发的凭据在官方那边也通不过。按文档,这种情况提示的是“网络连接问题”;本站看到的却是“被组织禁用”,和文档写的不完全一样,原因没有查清。不管是哪一种,结果都是开不了。
本站直接调接口时也试过,带快速模式参数的请求被这家中转站拒绝,见《思考和 effort》。
八、在哪看现在用的模型和花了多少
启动时的页头写着模型和计费方式:
Claude Code v2.1.296
Sonnet 5.5 · API Usage Billing
/status 更全。实测里和模型、连接有关的几行:
Anthropic base URL: https://api.koozhan.com
Model: claude-sonnet-5-5
Setting sources: User settings
Managed settings (remote): not fetched — not available with a custom ANTHROPIC_BASE_URL
Setting sources 这一行有用:模型不是你以为的那个时,看它来自哪一层设置。
/model 的列表里每一行带着价格。实测通过中转站看到的是:
1. Default (recommended) Use the default model (currently Opus 5.5) · $4/$20 per Mtok
2. Opus Opus 5.5 · Best for everyday, complex tasks · $4/$20 per Mtok
3. Fable Fable 5.1 · Most capable for your hardest and longest-running tasks · $10/$50 per Mtok
❯ 4. Sonnet ✔ Sonnet 5.5 · Efficient for routine tasks · $2/$10 per Mtok
5. Haiku Haiku 5.5 · Fastest for quick answers · $0.10/$0.50 per Mtok ($0.50/$2.50 for prompts over 100k)
列表是 Claude Code 自己的,不是中转站的模型列表:Haiku 5.5 照样列着,选了才会报错。价格是官方的标价。
/usage 的 Session 一栏是这段会话的用量。实测在 Opus 5.5 上只问了一个字:
Total cost: $0.1596
Usage by model:
claude-opus-5-5: 2 input, 3 output, 0 cache read, 31.9k cache write ($0.1596)
Prompt cache (main): 1 request · 0% of input tokens from cache · no misses · warm (5m TTL, last activity 23s ago)
钱几乎全花在第一次写缓存上:31,900 个 token。接着问第二句,这部分就变成便宜得多的缓存读取。
文档说明了这个金额的来历:它是 Claude Code 在本地按 token 数和官方标价算出来的,不是账单。走中转站时实际扣多少,以中转站的后台为准。/clear 之后它归零。
干活的时候,转圈旁边的 token 数是这一轮输出了多少,不包含发给模型的历史,别拿它估花费。
另外,Claude Code 空闲时也有少量后台开销,比如给 --resume 用的对话摘要,文档说一般每段会话不到 0.04 美元。这些后台功能用的是 haiku 那一档的模型。
九、走中转站时的几条建议
- 把
haiku钉到中转站有的模型。 中转站没有 Haiku 5.5 的话,--model haiku会直接报错,后台功能用的也是这一档。 - 常用的模型写完整的名字,或者钉住别名。 Claude Code 一更新,别名可能指向中转站还没上的新模型。
- 想换默认模型,改设置文件或用
/model;只想这一次,按s或用--model。 别像本站那样不小心改了默认。 - 模型不对劲,先看
/status的Model和Setting sources。 /usage的金额是按官方标价算的估算。- 快速模式不用试了。
花费
无界面的 19 次里有 18 次产生了费用,Claude Code 报的估算合计约 1.7 美元,其中 Fable 的那一次占 0.35 美元。交互式会话约 0.16 美元。这是估算,不是中转站实际扣的金额。
这次实测没有覆盖到的
- 只测了无界面模式下的解析和优先级。
opusplan在计划模式里的那一半、恢复会话沿用模型、子代理跟随/model,都没有测。 - 内容被标记时的自动换模型没有测,备用模型只测了“模型名写错”这一种触发方式,过载时的表现没有测。
- 后台功能在中转站没有 Haiku 5.5 时会怎样,没有查清。 本站只确认了把
haiku钉住之后--model haiku能用。 - 组织层面的限制没有测:
availableModels、组织默认模型、组织的 effort 上限。个人用不到。 - 云平台(Bedrock 等)上的行为没有测,文档里那几张按平台分的表本文没有转述。
- 只在一个版本、一家中转站上测过。