Skip to content

模型配置

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 opusplan

2. 启动时指定

bash
claude --model opus
claude --model sonnet[1m]

3. 环境变量

bash
export ANTHROPIC_MODEL=opus

4. 配置文件(持久生效)

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 版本,绕过 modelavailableModels 里的版本固定。

多层配置时的合并规则

多个 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 网关路由的自定义部署"

NAMEDESCRIPTION 为可选项。自定义条目出现在 /model 选择器底部,Claude Code 跳过对该模型 ID 的验证,支持 API 端点接受的任意字符串。


第三方部署时锁定模型版本

通过 BedrockVertex AIFoundry 部署时,强烈建议在推送给用户前锁定模型版本。不锁定时,Claude Code 使用别名(sonnetopushaiku)指向最新版。当 Anthropic 发布新模型但用户账户尚未启用时,Bedrock 和 Vertex 用户会看到提示并降级,而 Foundry 用户会看到错误(Foundry 没有等效的启动检查)。

使用以下环境变量,值为提供商特定的模型 ID:

提供商示例
Bedrockexport ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-6-v1'
Vertex AIexport ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6@20251101'
Foundryexport 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_MODELopus 别名(及 opusplan 计划阶段)的实际模型
ANTHROPIC_DEFAULT_SONNET_MODELsonnet 别名(及 opusplan 执行阶段)的实际模型
ANTHROPIC_DEFAULT_HAIKU_MODELhaiku 别名及后台功能的模型
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 并得到最新版本。