Appearance
模型配置
Claude Code 不是一个固定的 AI 模型,而是支持灵活切换 Opus、Sonnet、Haiku 三大模型系列及其变体的编程工具。本文介绍模型别名对照表、四种切换方式(按优先级)、企业管理员如何限制可用模型、opusplan 混合模式的工作机制、推理力度调节,以及 100 万 token 扩展上下文的支持情况和第三方部署版本固定方法。
Claude Code 支持灵活的模型配置,包括便捷的别名、企业级模型限制、100 万 token 扩展上下文,以及推理力度调节。
可用模型
配置 model 字段时,可以填以下两类值:
- 模型别名:简短名称,始终指向最新版本
- 模型全名:具体版本号(Anthropic API 用 model name,Bedrock 用 inference profile ARN,Foundry 用 deployment name,Vertex 用 version name)
模型别名对照表
| 别名 | 说明 |
|---|---|
default | 特殊值,清除模型覆盖并恢复为账户类型推荐的模型。本身不是别名 |
best | 使用最强的可用模型,当前等同于 opus |
sonnet | 最新 Sonnet(当前 4.6),日常编程首选 |
opus | 最新 Opus(当前 4.6),复杂推理任务 |
haiku | 最快最轻量,适合简单任务 |
sonnet[1m] | Sonnet + 100 万 token 上下文窗口 |
opus[1m] | Opus + 100 万 token 上下文窗口 |
opusplan | 计划阶段用 Opus,执行阶段自动切换到 Sonnet |
别名始终指向最新版本。要锁定特定版本,用完整 model name(如 claude-opus-4-6)或设置对应的环境变量(如 ANTHROPIC_DEFAULT_OPUS_MODEL)。
特殊:opusplan 混合模式
opusplan 是智能折中方案:
- 计划阶段:使用 Opus,充分发挥其复杂推理能力
- 执行阶段:自动切换到 Sonnet,兼顾速度和成本
架构设计时动用 Opus 的深度思考,写代码时用 Sonnet 的效率——两全其美。
切换模型的四种方式(按优先级)
1. 会话内切换(优先级最高)
bash
/model sonnet
/model opus
/model opusplan2. 启动时指定
bash
claude --model opus
claude --model sonnet[1m]3. 环境变量
bash
export ANTHROPIC_MODEL=opus4. 配置文件(持久生效)
json
{
"model": "opus"
}查看当前使用的模型
- 配置了 status line 可以实时看到
- 运行
/status查看当前模型和账户信息
当前推理力度也会显示在 Logo 旁边(如"with low effort"),方便确认。
企业管理:限制可用模型
企业管理员可以在 managed/policy settings 里设置 availableModels,限制用户只能选哪些模型。设置后,用户无法通过 /model、--model、Config 工具或 ANTHROPIC_MODEL 环境变量切换到不在列表里的模型。
json
{
"availableModels": ["sonnet", "haiku"]
}注意:default(默认选项)不受 availableModels 限制,始终可用,并根据用户订阅级别解析为对应的系统默认模型。即使设置 availableModels: [],用户仍可使用默认模型。
完整控制用户使用的模型
要全面控制模型体验,需要组合三个设置:
availableModels:限制用户可以切换到哪些命名模型model:设置会话启动时的初始模型ANTHROPIC_DEFAULT_SONNET_MODEL/ANTHROPIC_DEFAULT_OPUS_MODEL/ANTHROPIC_DEFAULT_HAIKU_MODEL:控制default选项和对应别名解析到哪个具体模型
以下示例让用户以 Sonnet 4.5 启动,限制只能在 Sonnet 和 Haiku 之间选,并将 default 固定为 Sonnet 4.5(而不是最新版):
json
{
"model": "claude-sonnet-4-5",
"availableModels": ["claude-sonnet-4-5", "haiku"],
"env": {
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-5"
}
}不加 env 块,用户在选择器中选 default 时会得到最新 Sonnet 版本,绕过 model 和 availableModels 里的版本固定。
多层配置时的合并规则
多个 settings 层都设置了 availableModels 时,数组会合并去重。要强制执行严格白名单,在 managed/policy settings(最高优先级)设置。
Mantle model ID
启用 Bedrock Mantle 端点后,availableModels 中以 anthropic. 开头的条目会作为自定义选项加入 /model 选择器,并路由到 Mantle 端点。设置时需同时包含标准别名和 Mantle ID,否则选择器只显示列出的条目。
各账户类型的默认模型
default 别名根据账户类型有不同行为:
- Max 和 Team Premium:默认 Opus 4.6
- Pro 和 Team Standard:默认 Sonnet 4.6
- Enterprise:Opus 4.6 可用但不是默认
如果 Opus 用量超过阈值,Claude Code 会自动降级到 Sonnet。
调整推理力度(Effort Level)
Opus 4.6 和 Sonnet 4.6 支持自适应推理,根据任务复杂度动态分配"思考时间"。
四个力度档:
| 力度 | 说明 |
|---|---|
low | 快速响应,适合简单直接的任务 |
medium | 平衡质量和速度 |
high | 深度推理,适合复杂问题 |
max | 最深推理,不限 token,仅 Opus 4.6 支持,不持久化(可通过 CLAUDE_CODE_EFFORT_LEVEL 持久化) |
默认力度:Pro 和 Max 订阅用户默认 medium;其他用户(API Key、Team、Enterprise、第三方提供商)默认 high。
设置方式:
- 命令:
/effort low、/effort medium、/effort high、/effort max,/effort auto重置 - 在
/model选择器中:用左右方向键调节力度滑块 - 启动参数:
claude --effort high - 环境变量:
CLAUDE_CODE_EFFORT_LEVEL=high - 配置文件:
"effortLevel": "high" - Skill/Subagent frontmatter:
effort: high(仅对该 skill/subagent 有效,不受会话设置影响,但优先级低于环境变量)
要临时对单次提示使用高力度推理,可在提示中加入 "ultrathink",这对当次请求触发 high effort(会话已在 high 或 max 时无效)。
禁用自适应推理(回退到固定 token 预算):CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
扩展上下文:100 万 Token
Opus 4.6 和 Sonnet 4.6 支持 100 万 token 上下文窗口,适合超大型代码库。
各订阅计划支持情况:
| 计划 | Opus 4.6 1M 上下文 | Sonnet 4.6 1M 上下文 |
|---|---|---|
| Max、Team、Enterprise | 订阅内含 | 需要 Extra Usage |
| Pro | 需要 Extra Usage | 需要 Extra Usage |
| API / 按量付费 | 完整访问 | 完整访问 |
启用方式:
bash
/model opus[1m]
/model sonnet[1m]
/model claude-opus-4-6[1m]禁用 1M 上下文:CLAUDE_CODE_DISABLE_1M_CONTEXT=1
1M 上下文使用标准 token 定价,200K 以上不额外收费。订阅计划内含时继续算作订阅用量;通过 Extra Usage 访问时按额外用量计费。
添加自定义模型选项
使用 ANTHROPIC_CUSTOM_MODEL_OPTION 在 /model 选择器中添加单个自定义条目,而不替换内置别名。适合 LLM 网关部署或测试 Claude Code 默认不列出的模型 ID:
bash
export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-6"
export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"
export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="通过内部 LLM 网关路由的自定义部署"NAME 和 DESCRIPTION 为可选项。自定义条目出现在 /model 选择器底部,Claude Code 跳过对该模型 ID 的验证,支持 API 端点接受的任意字符串。
第三方部署时锁定模型版本
通过 Bedrock、Vertex AI 或 Foundry 部署时,强烈建议在推送给用户前锁定模型版本。不锁定时,Claude Code 使用别名(sonnet、opus、haiku)指向最新版。当 Anthropic 发布新模型但用户账户尚未启用时,Bedrock 和 Vertex 用户会看到提示并降级,而 Foundry 用户会看到错误(Foundry 没有等效的启动检查)。
使用以下环境变量,值为提供商特定的模型 ID:
| 提供商 | 示例 |
|---|---|
| Bedrock | export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-6-v1' |
| Vertex AI | export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6@20251101' |
| Foundry | export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'(部署名称) |
三个变量全部设置,不要遗漏。升级模型版本时,更新环境变量并重新部署。
modelOverrides:映射多个 ARN
如果需要把多个 Anthropic model ID 映射到不同的提供商特定 ID(如 Bedrock ARN),用 modelOverrides:
json
{
"modelOverrides": {
"claude-opus-4-6": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/opus-prod",
"claude-sonnet-4-6": "arn:aws:bedrock:us-east-2:123456789012:application-inference-profile/sonnet-prod"
}
}模型相关环境变量
| 变量 | 说明 |
|---|---|
ANTHROPIC_DEFAULT_OPUS_MODEL | opus 别名(及 opusplan 计划阶段)的实际模型 |
ANTHROPIC_DEFAULT_SONNET_MODEL | sonnet 别名(及 opusplan 执行阶段)的实际模型 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | haiku 别名及后台功能的模型 |
CLAUDE_CODE_SUBAGENT_MODEL | 子代理使用的模型 |
ANTHROPIC_MODEL | 直接指定使用的模型(等同于设置 model 配置项) |
ANTHROPIC_CUSTOM_MODEL_OPTION | 在 /model 选择器添加自定义条目 |
CLAUDE_CODE_EFFORT_LEVEL | 推理力度(low/medium/high/max/auto) |
CLAUDE_CODE_DISABLE_1M_CONTEXT | 设为 1 禁用 1M 上下文 |
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING | 设为 1 禁用自适应推理,回退到固定 token 预算 |
ANTHROPIC_SMALL_FAST_MODEL已弃用,请改用ANTHROPIC_DEFAULT_HAIKU_MODEL。
常见问题
Q: Claude Code 用的是什么模型?
取决于账户类型:Max 和 Team Premium 默认 Opus 4.6,Pro 和 Team Standard 默认 Sonnet 4.6。可以随时用 /model 命令查看和切换当前使用的模型。
Q: opusplan 有什么实际意义,什么时候用?
opusplan 在规划阶段使用 Opus(复杂推理更准确),执行阶段切换 Sonnet(效率和速度更好)。适合复杂功能开发或架构重构——你需要 Opus 的深度分析,但不想整个执行过程都承担 Opus 的成本。
Q: 企业部署如何防止用户使用最新模型版本?
组合使用 availableModels(限制可选列表)、model(设置初始选择)和 ANTHROPIC_DEFAULT_* 环境变量(控制 default 选项解析结果)。只用 availableModels 不够——用户仍然可以选择 default 并得到最新版本。