Claude Code 的「自定义模型」分三个层次,从简单到复杂:
- 在 Claude 模型之间切换
- 通过云厂商或公司网关使用 Claude 模型
- 接入第三方提供的 Anthropic 兼容接口(非官方支持)
一、切换 Claude 模型
按优先级从高到低,任选一种方式:
# 会话中切换(不带参数会打开选择器)/model sonnet
# 启动时指定claude --model opus
# 环境变量export ANTHROPIC_MODEL=opus也可以写进 ~/.claude/settings.json:
{ "model": "opus"}常用别名:default、sonnet、opus、haiku、opusplan(Plan 模式用 Opus,执行时切到 Sonnet),以及带 [1m] 后缀的 1M 上下文版本,例如 sonnet[1m]。
别名实际指向哪个模型,可以用下面这些环境变量覆盖:
| 环境变量 | 作用 |
|---|---|
ANTHROPIC_DEFAULT_OPUS_MODEL |
opus 别名对应的模型 |
ANTHROPIC_DEFAULT_SONNET_MODEL |
sonnet 别名对应的模型 |
ANTHROPIC_DEFAULT_HAIKU_MODEL |
haiku 别名,以及后台任务使用的模型 |
CLAUDE_CODE_SUBAGENT_MODEL |
子智能体默认使用的模型 |
ANTHROPIC_SMALL_FAST_MODEL已弃用,请改用ANTHROPIC_DEFAULT_HAIKU_MODEL。
二、接入 LLM 网关
如果公司自建了 LLM 网关(例如 LiteLLM),把 Claude Code 指向它只需要两个变量:
export ANTHROPIC_BASE_URL=https://llm-gateway.example.comexport ANTHROPIC_AUTH_TOKEN=sk-gateway-keyANTHROPIC_AUTH_TOKEN以Authorization: Bearer请求头发送,网关要求x-api-key时改用ANTHROPIC_API_KEY- 想长期生效,写进
~/.claude/settings.json的env字段;不要写进项目里会提交到 Git 的.claude/settings.json
{ "env": { "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com", "ANTHROPIC_AUTH_TOKEN": "sk-gateway-key" }}配置好后启动 claude,运行 /status,看到 Anthropic base URL 一行显示网关地址就说明生效了。
如果网关提供了 Claude 以外的模型名,设置 CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1,这些模型会出现在 /model 选择器里。
设置了网关凭据后,请求走网关按量计费,不再消耗 Claude 订阅的额度。
三、接入第三方 Anthropic 兼容接口
一些模型厂商提供了兼容 Anthropic Messages API 的接口,可以用同样的变量把 Claude Code 接到它们的模型上。以 DeepSeek 官方给出的配置为例:
{ "env": { "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic", "ANTHROPIC_AUTH_TOKEN": "<你的 DeepSeek API Key>", "ANTHROPIC_MODEL": "deepseek-v4-pro", "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro", "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash", "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1" }}需要注意:
- Anthropic 官方不支持通过网关把 Claude Code 路由到非 Claude 模型,出了问题只能找对应厂商
- 第三方接口不一定支持 Claude Code 的全部特性,如果遇到
400报错提示不认识某些字段,可以尝试设置CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 - 模型名、地址以各厂商最新文档为准
排查问题
| 现象 | 处理 |
|---|---|
返回 401 |
凭据放错了变量,在 ANTHROPIC_AUTH_TOKEN 和 ANTHROPIC_API_KEY 之间切换试试 |
| 启动时提示两个凭据冲突 | 运行 /logout 退出已保存的 claude.ai 登录,或取消设置环境变量 |
| 修改变量后没生效 | 环境变量只在启动时读取,需要重启 claude |