【Bug已解决】Claude model deprecated / Model no longer available — Claude 模型弃用解决方案
【Bug已解决】Claude: "model_deprecated" / Model no longer available — Claude 模型弃用解决方案
1. 问题描述
Claude 报模型已弃用或不再可用:
# 模型弃用 $ claude --model claude-3-opus-20240229 "task" Error: model_deprecated This model version is no longer available. # 或模型不存在 $ claude --model claude-3-sonnet Error: model_not_found Model 'claude-3-sonnet' does not exist. # 或版本号错误 $ claude --model claude-3.5-sonnet Error: model_not_found Did you mean 'claude-sonnet-4-20250514'? # 或默认模型弃用 $ claude "task" Error: model_deprecated The default model is deprecated. Please update.这个问题在以下场景中特别常见:
- 使用旧版本模型名称
- 模型被 Anthropic 弃用
- 版本号格式错误
- 配置中模型名过时
- 新模型发布后旧名不可用
- 代码中硬编码旧模型名
2. 原因分析
原因分类表
| 原因分类 | 具体表现 | 占比 |
|---|---|---|
| 版本号错误 | 格式不对 | 约 35% |
| 模型弃用 | 不再支持 | 约 30% |
| 配置过时 | 旧模型名 | 约 15% |
| 硬编码 | 代码中 | 约 10% |
| 大小写 | Claude vs claude | 约 5% |
| 别名移除 | 简称不再用 | 约 5% |
3. 解决方案
方案一:使用最新模型名(最推荐)
# 步骤 1:查看可用模型 claude --list-models # 或 claude --help | grep -A20 model # 步骤 2:使用最新模型 claude --model claude-sonnet-4-20250514 "task" claude --model claude-opus-4-20250514 "task" claude --model claude-3-5-haiku-20241022 "task" # 步骤 3:验证 claude --model claude-sonnet-4-20250514 --print "hello" # 步骤 4:使用默认模型 claude "task" # 使用默认最新模型方案二:更新配置
# 步骤 1:检查配置中的模型 cat ~/.claude/settings.json | grep model # 步骤 2:更新模型名 python3 -c " import json with open('/root/.claude/settings.json') as f: config = json.load(f) config['model'] = 'claude-sonnet-4-20250514' with open('/root/.claude/settings.json', 'w') as f: json.dump(config, f, indent=2) " # 步骤 3:或手动创建 cat > ~/.claude/settings.json << 'EOF' { "model": "claude-sonnet-4-20250514" } EOF # 步骤 4:验证 claude --print "hello"方案三:使用模型别名
# 步骤 1:使用别名(如果支持) claude --model sonnet "task" # 最新 Sonnet claude --model opus "task" # 最新 Opus claude --model haiku "task" # 最新 Haiku # 步骤 2:如果不支持别名,使用全名 claude --model claude-sonnet-4-20250514 "task" # 步骤 3:验证 claude --model sonnet --print "hello" # 步骤 4:使用默认 claude "task" # 自动使用最新默认模型方案四:使用正确格式
# 步骤 1:正确格式 # 格式: claude-{tier}-{date} claude --model claude-sonnet-4-20250514 "task" claude --model claude-opus-4-20250514 "task" claude --model claude-3-5-haiku-20241022 "task" # 步骤 2:常见错误 # 错误: claude-3.5-sonnet(小数点) # 错误: Claude-3-Sonnet(大小写) # 错误: claude-3-sonnet-20240229(弃用) # 步骤 3:验证 claude --model claude-sonnet-4-20250514 --print "hello" # 步骤 4:使用 --list-models 查看所有 claude --list-models方案五:更新 Claude Code
# 步骤 1:检查版本 claude --version # 步骤 2:更新 npm update -g @anthropic-ai/claude-code # 步骤 3:验证模型支持 claude --list-models # 步骤 4:使用最新模型 claude --model claude-sonnet-4-20250514 "task"方案六:检查代码中的硬编码
# 步骤 1:搜索代码中的模型名 grep -r "claude-3" src/ --include="*.js" grep -r "claude-3" src/ --include="*.py" # 步骤 2:更新为新模型名 # 将 claude-3-sonnet-20240229 改为 claude-sonnet-4-20250514 # 步骤 3:使用环境变量代替硬编码 export CLAUDE_MODEL=claude-sonnet-4-20250514 # 步骤 4:验证 claude "task"4. 各方案对比总结
| 方案 | 适用场景 | 推荐指数 | 难度 |
|---|---|---|---|
| 方案一:最新模型 | 通用 | ⭐⭐⭐⭐⭐ | 低 |
| 方案二:更新配置 | 长期 | ⭐⭐⭐⭐⭐ | 低 |
| 方案三:别名 | 简化 | ⭐⭐⭐⭐ | 低 |
| 方案四:正确格式 | 格式 | ⭐⭐⭐⭐⭐ | 低 |
| 方案五:更新版本 | 旧版本 | ⭐⭐⭐⭐⭐ | 低 |
| 方案六:检查代码 | 硬编码 | ⭐⭐⭐⭐⭐ | 低 |
5. 常见问题 FAQ
5.1 如何查看可用模型
claude --list-models # 或 claude --help | grep -A20 model5.2 模型命名格式
claude-{tier}-{version}-{date},例如claude-sonnet-4-20250514。
5.3 哪些模型已弃用
- claude-3-opus-20240229
- claude-3-sonnet-20240229
- claude-3-haiku-20240307
- 早期版本号
5.4 如何设置默认模型
在~/.claude/settings.json中设置"model": "claude-sonnet-4-20250514"。
5.5 别名是什么
sonnet、opus、haiku等简称,自动指向最新版本。
5.6 大小写敏感吗
是的。使用小写claude-sonnet-4-20250514。
5.7 如何更新代码中的模型名
grep -r "claude-3" src/ # 替换为新模型名5.8 模型弃用后会怎样
返回model_deprecated错误,需要切换到新模型。
5.9 如何使用最新模型
claude "task" # 使用默认最新 # 或 claude --model claude-sonnet-4-20250514 "task"5.10 排查清单速查表
□ 1. claude --list-models 查看可用 □ 2. 使用 claude-sonnet-4-20250514 □ 3. 使用 claude-opus-4-20250514 □ 4. 使用 claude-3-5-haiku-20241022 □ 5. 格式: claude-{tier}-{version}-{date} □ 6. 小写: claude 非 Claude □ 7. 更新 settings.json 的 model □ 8. 使用别名 sonnet/opus/haiku □ 9. npm update -g claude-code 更新 □ 10. grep -r "claude-3" 检查代码6. 总结
- 根本原因:模型弃用最常见原因是版本号格式错误(35%)和模型被 Anthropic 弃用(30%)
- 最佳实践:使用
claude --list-models查看可用模型,使用最新模型名 - 正确格式:
claude-sonnet-4-20250514、claude-opus-4-20250514、claude-3-5-haiku-20241022 - 更新配置:在
~/.claude/settings.json中更新model字段 - 最佳实践建议:使用别名
sonnet/opus/haiku(自动指向最新),或直接用默认模型
故障排查流程图
flowchart TD A[模型弃用] --> B[claude --list-models 查看可用] B --> C[使用最新模型名] C --> D[claude-sonnet-4-20250514] D --> E[claude --print hello 验证] E --> F{成功?} F -->|是| G[✅ 问题解决] F -->|否| H[检查格式] H --> I{格式正确?} I -->|否| j[使用 claude-tier-version-date 格式] I -->|是| K[检查大小写] j --> E K --> L{小写?} L -->|否| M[使用小写 claude] L -->|是| N[使用别名] M --> E N --> O[claude --model sonnet] O --> E F -->|否| P[更新配置] P --> Q[settings.json: model] Q --> R[更新为最新模型] R --> E F -->|否| S[更新 Claude Code] S --> T[npm update -g claude-code] T --> E F -->|否| U[检查代码硬编码] U --> V[grep -r claude-3 src/] V --> W[替换为新模型名] W --> E G --> X[长期: 别名 + list-models] X --> Y[✅ 长期方案]