命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
当默认模型过载时自动故障转移到指定模型
--fallback-model <model>claude -p --fallback-model sonnet "query"--fallback-model 是 CLI 启动 flag。官方文档的定义是:当主模型过载(overloaded)或不可用(例如模型已退役)时,自动回退到指定的模型。
"default" 会展开为默认模型。/status 也不显示它。触发条件:
| 会触发回退 | 不会触发回退(走各自的重试/报错流程) |
|---|---|
| 模型过载 | 认证(authentication)错误 |
| 模型不可用 | 计费(billing)错误 |
| 其他不可重试的服务端错误 | rate-limit 错误、请求大小错误、传输错误,以及组织策略检查的拒绝 |
# 单个回退模型(官方示例)
claude -p --fallback-model sonnet "query"
# 多级回退链,按顺序尝试
claude --fallback-model sonnet,haiku
# 与 --model 组合
claude --model opus --fallback-model sonnet,haiku
官方文档说明,持久化配置请使用 fallbackModel setting,--fallback-model 会覆盖该 setting。
--model:--model 指定主模型,--fallback-model 指定备用模型。官方文档没有说明二者互斥。-p / --print:官方示例用于 -p。当前 CLI 文档没有把它列为 print mode only,而 --max-turns、--max-budget-usd 等 flag 则明确标注了"print mode only"。--safe-mode:官方文档提到,--safe-mode 可用来检查是不是某项自定义配置触发了自动模型回退。该章节我没有读到,具体机制不展开。| flag | env | settings.json |
|---|---|---|
--fallback-model sonnet,haiku | 在已读取的官方文档中未找到对应 env var | "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"] |
{
"fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]
}
| 约束 | 原因 / 说明 |
|---|---|
| 链最多 3 个模型 | 官方文档:去重后超过三个的部分会被忽略 |
| 回退只对当前 turn 生效 | 下一条消息会重新先尝试主模型 |
不在 availableModels 允许范围内的条目会被丢弃 | 读取回退链时按 allowlist 过滤 |
| 上下文压缩(compaction)时不会回退到上下文窗口比主模型小的模型 | 在小窗口模型上做摘要会先截断部分对话;如果所有回退模型都更小,compaction 会显示原始错误,可以重试 |
| 同样作用于 subagent | subagent 请求失败时按链依次尝试,subagent 继续使用接受请求的那个模型,会话本身的模型不变 |
claude -p --fallback-model sonnet "query",主模型过载时脚本仍能完成请求。fallbackModel setting 写入配置文件,临时需要不同链时再用 flag 覆盖。/status 不显示回退链,首次看到切换提示时才能确认它已生效。availableModels 限制会过滤回退链:不在 allowlist 里的条目会被丢弃,链可能比你写的更短。docs.claude.com/en/docs/claude-code/cli-reference 经 301 跳转至此)