模型配置解释
一、核心参数含义与作用
这些参数本质是 Anthropic Claude 模型在代码开发场景下的预设标识符,用于简化不同 Claude 模型版本的调用配置(避免硬编码模型 ID),每个参数对应不同定位的 Claude 模型,具体如下:
| 参数名 | 核心作用 | 适用场景 | 对应官方模型 ID 示例 |
|---|
详细讲解了 Claude Code 模型配置的核心参数含义、三种配置方法(环境变量、Python SDK、settings.json 文件)以及默认模型规则。重点介绍了 ANTHROPIC_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL 等参数的作用,提供了 Windows/Linux 环境变量设置及 Python 代码调用示例。同时说明了 settings.json 的配置规范、敏感信息保护及配置生效验证方法,并列举了 VS Code 插件、桌面端及 SDK 调用的默认模型值与优先级逻辑,帮助开发者高效管理 AI 代码助手配置。
这些参数本质是 Anthropic Claude 模型在代码开发场景下的预设标识符,用于简化不同 Claude 模型版本的调用配置(避免硬编码模型 ID),每个参数对应不同定位的 Claude 模型,具体如下:
| 参数名 | 核心作用 | 适用场景 | 对应官方模型 ID 示例 |
|---|
ANTHROPIC_MODEL | 通用/顶层模型参数,可覆盖其他默认模型参数,是所有 Claude 调用的'全局开关' | 统一指定所有代码任务的模型(如全局切换为 Sonnet) | 可设为任意 Claude 模型 ID(如 claude-3-5-sonnet-20240620) |
ANTHROPIC_DEFAULT_OPUS_MODEL | 预设 Claude Opus(旗舰版)模型的标识符,Opus 是推理能力最强的模型 | 复杂代码任务(大型项目重构、算法设计、多语言代码整合、核心逻辑开发) | claude-3-5-opus-20240620(最新 Opus 3.5)、claude-3-opus-20240229 |
ANTHROPIC_DEFAULT_SONNET_MODEL | 预设 Claude Sonnet(平衡版)模型的标识符,性能/速度/成本最优平衡 | 常规代码任务(接口开发、Bug 修复、代码注释/重构、逻辑验证)→ 代码开发默认首选 | claude-3-5-sonnet-20240620、claude-3-sonnet-20240229 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | 预设 Claude Haiku(轻量版)模型的标识符,速度最快、成本最低 | 轻量代码任务(单行代码生成、语法检查、简单函数编写、快速代码解释) | claude-3-haiku-20240307 |
CLAUDE_CODE_SUBAGENT_MODEL | 指定'代码子代理'的模型,子代理是处理细分代码任务的模块(如单元测试生成、代码风格检查) | 代码子任务(可单独指定模型,如主模型用 Sonnet,子代理用 Haiku 提升速度) | 通常设为 Haiku/Sonnet,复杂子任务可设为 Opus |
配置核心是将这些参数映射到 Anthropic 官方模型 ID,推荐两种方式(优先环境变量配置,解耦代码与配置):
通过系统/项目环境变量定义参数,代码中直接读取,无需修改代码即可切换模型。
Windows CMD 终端:
set ANTHROPIC_API_KEY=your-api-key-here
set ANTHROPIC_MODEL=claude-3-5-sonnet-20240620
set ANTHROPIC_DEFAULT_OPUS_MODEL=claude-3-5-opus-20240620
set ANTHROPIC_DEFAULT_SONNET_MODEL=claude-3-5-sonnet-20240620
set ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-3-haiku-20240307
set CLAUDE_CODE_SUBAGENT_MODEL=claude-3-haiku-20240307
Linux/macOS 终端:
# 配置 API Key(必须,从 Anthropic 控制台获取)
export ANTHROPIC_API_KEY="your-api-key-here"
# 通用模型参数(全局默认 Sonnet)
export ANTHROPIC_MODEL="claude-3-5-sonnet-20240620"
# 各系列模型默认值
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-3-5-opus-20240620"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-3-5-sonnet-20240620"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-3-haiku-20240307"
# 代码子代理模型(轻量任务用 Haiku)
export CLAUDE_CODE_SUBAGENT_MODEL="claude-3-haiku-20240307"
先安装依赖:
pip install anthropic
完整配置与调用示例:
import os
from anthropic import Anthropic
# 1. 定义模型参数(优先读环境变量,兜底设默认值)
ANTHROPIC_MODEL = os.getenv("ANTHROPIC_MODEL", "claude-3-5-sonnet-20240620")
ANTHROPIC_DEFAULT_OPUS_MODEL = os.getenv("ANTHROPIC_DEFAULT_OPUS_MODEL", "claude-3-5-opus-20240620")
ANTHROPIC_DEFAULT_SONNET_MODEL = os.getenv("ANTHROPIC_DEFAULT_SONNET_MODEL", "claude-3-5-sonnet-20240620")
ANTHROPIC_DEFAULT_HAIKU_MODEL = os.getenv("ANTHROPIC_DEFAULT_HAIKU_MODEL", "claude-3-haiku-20240307")
CLAUDE_CODE_SUBAGENT_MODEL = os.getenv("CLAUDE_CODE_SUBAGENT_MODEL", ANTHROPIC_DEFAULT_HAIKU_MODEL)
# 2. 初始化 Anthropic 客户端(API Key 从环境变量读取)
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
# 3. 不同场景的调用示例
# 示例 1:常规代码任务(用通用模型)
def regular_code_task(prompt):
response = client.messages.create(
model=ANTHROPIC_MODEL,
max_tokens=1024,
temperature=0.2, # 代码任务建议低温度,保证准确性
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
# 示例 2:复杂代码任务(专用 Opus 模型)
def complex_code_task(prompt):
response = client.messages.create(
model=ANTHROPIC_DEFAULT_OPUS_MODEL,
max_tokens=2048,
temperature=0.1,
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
# 示例 3:代码子代理任务(轻量 Haiku 模型)
def code_subagent_task(prompt):
response = client.messages.create(
model=CLAUDE_CODE_SUBAGENT_MODEL,
max_tokens=512,
temperature=0.0,
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
# 测试调用
if __name__ == "__main__":
# 常规任务:生成 FastAPI 接口
print("=== 常规代码任务 ===")
print(regular_code_task("写一个 FastAPI 的用户登录接口,包含手机号 + 密码校验"))
# 复杂任务:设计分布式锁
print("\n=== 复杂代码任务 ===")
print(complex_code_task("设计基于 Redis 的 Python 分布式锁,处理并发和超时问题"))
# 子代理任务:语法检查
print("\n=== 代码子代理任务 ===")
print(code_subagent_task("检查这段代码的语法错误:\n def add(a,b): return a + b \n print(add(1))"))
claude/settings.json 是 Claude 代码工具/插件(如 Claude Code、集成 Claude 的 IDE 插件、Claude 桌面端) 的核心配置文件,用于持久化存储模型参数、API 密钥等核心配置。
JSON 格式要求:键名必须用双引号、值为字符串/数字、末尾无多余逗号(否则会解析失败),完整示例如下:
{
"env": {
"ANTHROPIC_API_KEY": "sk-ant-api03-xxxxxxxxxxxx-xxxxxxxxxxxx",
"ANTHROPIC_MODEL": "claude-3-5-sonnet-20240620",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-3-5-opus-20240620",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-3-5-sonnet-20240620",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-3-haiku-20240307",
"CLAUDE_CODE_SUBAGENT_MODEL": "claude-3-haiku-20240307"
},
"code_inference": {
"temperature": 0.1,
"max_tokens": 2048
}
}
如果用代理,则改为:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-e5575d689a844514bc4fd03a2700eff6",
"ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
"ANTHROPIC_MODEL": "claude-3-5-sonnet-20240620",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-3-5-opus-20240620",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-3-5-sonnet-20240620",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-3-haiku-20240307",
"CLAUDE_CODE_SUBAGENT_MODEL": "claude-3-haiku-20240307"
}
}
| 工具/场景 | 正确字段名 | 说明 |
|---|---|---|
| Claude 官方 VS Code 插件 | anthropic_api_key | 全小写(官方默认) |
| Claude Code 桌面端 | ANTHROPIC_API_KEY | 全大写(兼容环境变量) |
| 自定义 Claude 代码工具 | 两者均可(需与代码解析逻辑一致) | 建议统一:配置文件用小写,环境变量用大写 |
避坑要点:
ANTHROPIC_MODEL/CLAUDE_CODE_SUBAGENT_MODEL 这类参数名必须大写(官方工具的解析逻辑是匹配大写标识符)env 根节点下,否则工具无法读取;敏感信息保护:不要将 settings.json 提交到代码仓库,在 .gitignore 中添加:
# 忽略 Claude 配置文件
claude/settings.json
.claude/settings.json
| JSON 配置项 | 取值说明 | 作用 |
|---|---|---|
ANTHROPIC_MODEL | 任意 Claude 官方模型 ID | 全局默认模型(工具/插件优先使用该值) |
ANTHROPIC_DEFAULT_OPUS_MODEL | Opus 系列模型 ID(如 claude-3-5-opus-20240620) | 复杂代码任务(重构/算法设计)的专用模型标识 |
ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet 系列模型 ID(如 claude-3-5-sonnet-20240620) | 常规代码任务(接口开发/Bug 修复)的默认模型 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Haiku 系列模型 ID(如 claude-3-haiku-20240307) | 轻量代码任务(语法检查/单行生成)的快速模型 |
CLAUDE_CODE_SUBAGENT_MODEL | 通常设为 Haiku/Sonnet ID | 代码子代理(单元测试生成/风格检查)的专用模型 |
修改 settings.json 后,需:
验证配置是否生效:
~/.claude/logs/),日志中会显示 model: claude-3-5-sonnet-20240620 等字样,确认与配置一致;0.0~0.2(保证结果稳定),创意类代码可设 0.5~0.7。当你不在 claude/settings.json 中配置 MODEL 相关参数时,默认值由你使用的 Claude 工具/插件版本 决定(Anthropic 官方会将「通用性、性价比最优」的模型设为默认),核心规律如下:
这是大部分开发者使用的场景,默认值是 Anthropic 官方定义的「推荐值」,具体如下:
| 参数名 | 未配置时的默认值 | 适用说明 |
|---|---|---|
ANTHROPIC_MODEL(全局模型) | claude-3-5-sonnet-20240620 | 核心默认:Claude 3.5 Sonnet(平衡性能/速度/成本,代码任务首选) |
ANTHROPIC_DEFAULT_OPUS_MODEL | claude-3-5-opus-20240620 | 旗舰版默认:最新 Opus 3.5(仅手动指定 Opus 时生效) |
ANTHROPIC_DEFAULT_SONNET_MODEL | claude-3-5-sonnet-20240620 | 平衡版默认:与全局默认一致 |
ANTHROPIC_DEFAULT_HAIKU_MODEL | claude-3-haiku-20240307 | 轻量版默认:最新 Haiku(速度最快、成本最低) |
CLAUDE_CODE_SUBAGENT_MODEL(代码子代理) | 复用 ANTHROPIC_DEFAULT_HAIKU_MODEL 的默认值(即 claude-3-haiku-20240307) | 子代理默认用 Haiku,适配轻量任务(如语法检查、单元测试生成) |
默认逻辑与 VS Code 插件完全一致,核心默认仍为 claude-3-5-sonnet-20240620,仅在「快速模式/低功耗模式」下,全局默认会自动切换为 Haiku。
注意:ANTHROPIC_MODEL/CLAUDE_CODE_SUBAGENT_MODEL 这类参数是 工具/插件层的封装(非 SDK 原生参数),如果直接用 Anthropic Python/JS SDK 且不指定 model 参数,会直接抛出 必填参数缺失异常(SDK 要求必须显式指定 model)。
示例:SDK 无默认值,必须写死或从配置读取:
from anthropic import Anthropic
client = Anthropic(api_key="your-key")
# 必须显式指定 model,否则报错
response = client.messages.create(
model="claude-3-5-sonnet-20240620", # 无默认值,必填
max_tokens=1024,
messages=[{"role": "user", "content": "写一个 Python 函数"}]
)
如果只配置了部分 MODEL 参数,工具会按「自定义配置 > 官方默认」的逻辑生效:
ANTHROPIC_MODEL(全局),但未配置 CLAUDE_CODE_SUBAGENT_MODEL → 子代理仍用默认的 Haiku;ANTHROPIC_DEFAULT_SONNET_MODEL,但未配置 ANTHROPIC_MODEL → 全局默认仍为官方的 Sonnet 3.5(不会自动复用你配置的 Sonnet 自定义值)。如果想精准知道你所用工具的默认模型,最可靠的方式是:
claude-3-5-sonnet-20240620);~/.vscode/extensions/anthropic.claude-code-xxx/logs),日志中会显示:
[INFO] Using default model: claude-3-5-sonnet-20240620

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online