选择与设置模型
Fable 模型的用法与用量额度、设置模型的各种方式与优先级、/model 的保存行为、新会话默认模型,以及新会话没有以你选的模型开始的排查。
版本号与默认值以官方为准。
使用 Fable
Claude Fable 5.1 和 Fable 5 是 Claude Code 里能力最强的模型,适合一次坐下来做不完的大任务:能维持长时间自主会话、行动前先调查、比小模型更常验证自己的工作。Fable 5.1 是较新的版本。两者在任何套餐或提供商上都不是账号类型的默认值,需要显式选择:
- Fable 5.1:运行
/model fable或claude --model fable。在 Claude apps gateway 会话里该别名解析为 Fable 5,改用/model claude-fable-5-1。 - Fable 5:按模型 ID 选择。Anthropic API 上运行
/model claude-fable-5或claude --model claude-fable-5;其他提供商用你的提供商的 Fable 5 模型 ID,或用ANTHROPIC_DEFAULT_FABLE_MODEL固定。
如果你直连 Anthropic API,且用户设置里的模型是 claude-fable-5 或 claude-fable-5[1m](比如 v2.1.257 之前在 /model 选择器里选了 Fable),第一次运行 v2.1.257 或更新版本时 Claude Code 会把这个保存的值改成 fable 或 fable[1m] 别名,启动的模型行会显示一次 (auto-updated);项目、本地或托管设置里的 claude-fable-5 保持不变。被 Fable 的安全分类器标记的请求(最常见于网络安全和生物领域)会触发「自动模型降级」。
用好 Fable 的几条建议:描述想要的结果而不是步骤,让它自己规划路径(想让它持续朝结果工作,可以设一个目标);把含糊的问题交给它(根因调查、故障排查、架构决策最能体现额外调查和验证的价值);省掉验证提醒(它自己验证的提示需求更少);把通常要拆开的大任务整块给它。Fable 5.1 需要 v2.1.257+;Fable 在零数据保留下的可用性见官方 ZDR 页面。在 Anthropic API 上,Fable 出现在 /model 选择器里,除非 availableModels 或组织模型限制把它排除;组织根本无法使用 Fable 时(如零数据保留),该行仍在选择器里但灰显并注明原因。
Fable 与用量额度
取决于你的套餐和席位等级,Fable 用量可能计入「用量额度」而不是消耗套餐包含的额度;此时 /model 选择器的 Fable 行显示「Requires usage credits」。交互会话里,Fable 请求要计入用量额度之前 Claude Code 会显示同意提示(使用组织计费的 Enterprise 成员不会看到)。你可以选择用用量额度继续 Fable,或切到默认模型,也可以关闭提示:用 /model 选 Fable 时关闭提示则保持当前模型;会话中途关闭则这一回合继续用默认模型。选择用用量额度继续之后不再显示该提示。
在连接了 Remote Control 的会话、后台会话或智能体团队队友的会话里,可能没有人在终端前,所以 Claude Code 把会话中途的同意提示保留到 dialogExpiry 期限(默认五分钟)。到期没人回答则结束这一回合且不发送请求,在转录里加一条通知(Remote Control 客户端也显示),你的模型选择不变,下一条消息再次请求同意。等待期间:Remote Control 连接时或在队友会话里,在终端按任意键取消期限、让它一直等你回答;后台会话要在期限前回答;在有人在终端输入之前从远程客户端发新消息,会同样结束这一回合并让新消息开始下一回合,有人在终端输入之后则继续等待并把新消息排在后面。经 Agent SDK 由其他应用托管的会话,是否出现提示取决于该应用,出现了却在同一期限内无人回答时同样结束回合。在带 -p 的非交互模式和不显示提示的 Agent SDK 应用里,Claude Code 从不询问,Fable 请求要计入用量额度时直接计费。
设置模型的方式
按优先级从高到低:
- 会话中:
/model <alias|name>立即切换,或不带参数打开选择器。 - 启动时:
claude --model <alias|name>。 - 环境变量:
ANTHROPIC_MODEL=<alias|name>。 - 设置:设置文件的
model字段。 - 新会话默认值:
ANTHROPIC_DEFAULT_MODEL=<alias|name>。
/model 把你的选择作为新会话默认值保存到用户设置的 model 字段。选择器里:Enter 切换并保存为默认;s 只在本会话切换、不改默认(想用别的键可重绑定 modelPicker:thisSessionOnly)。直接键入 /model <名称> 等同 Enter;想只为本会话切换,打开选择器后在该行按 s。
在 Enterprise 套餐上,用 claude.ai 账号登录并用 /model 保存默认时,Claude Code 还会把该选择记录到账号上(需要 v2.1.280+):管理员没有设组织默认模型时,Default 选项可解析为记录的模型,此时选择器的 Default 行显示该模型名;记录的模型被模型限制排除或对账号不可用、且管理员没设组织默认时,Default 选项按未记录处理;在 /model 里选 Default 或 opusplan 不会改变记录。
- 用
/model切换也会影响继承主对话模型的子智能体,因为它们的模型是启动时按你当前会话所用模型解析的;想让自定义子智能体留在较小的模型上,在其定义里设model。 - 在带
-p的非交互模式里用/model设置(需要 v2.1.205+)只作用于当前会话,不保存为默认;项目和托管设置仍优先并在下次启动时重新生效;管理员配置为覆盖用户选择的组织默认模型也会在下次启动重新生效。v2.1.144 到 v2.1.152 里/model只作用于当前会话,选择器里按d才保存默认。 --model和ANTHROPIC_MODEL只作用于用它们启动的那个会话;想在不同终端同时跑不同模型,为每个终端用自己的--model启动,而不是用/model切换。- 选择器里的价格只在 Claude Code 与 Anthropic API 通信时出现(直连,或经代理它的 LLM 网关),每行价格是该行所选模型的价格;在 Bedrock 这类第三方提供商和 Claude apps gateway 上,价格由你的提供商或网关决定,选择器行不显示价格。价格只是显示标签,不影响选了哪个模型或提供商如何计费。
- 用
claude --resume、--continue或/resume恢复的会话保持转录保存时所用的模型,不管当前model设置;若恢复的模型已退役或被availableModels排除,则落到正常优先级。在使用提供商特定部署 ID 的提供商(Bedrock、Google Cloud 的 Agent Platform、Foundry)上,根本不恢复转录里的模型,按正常优先级解析。你为新启动用--model或ANTHROPIC_MODEL选的模型仍优先于恢复的模型;自 v2.1.195 起ANTHROPIC_DEFAULT_OPUS_MODEL这类家族变量也是;ANTHROPIC_DEFAULT_MODEL在其章节所列条件下也可以。 - 启动时的活动模型来自项目或托管设置、而不是你自己的选择时,启动标题会显示是哪个设置文件设的;运行
/model可以覆盖,项目或托管设置在下次启动重新生效。嵌入 Claude Code 并设置CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST的平台上,宿主的模型配置优先于托管模型设置,托管的availableModels白名单仍然有效,除非宿主提供了自己的。 - 若你或组织配置了
PreModelSwitchHook,它们在请求的切换生效前运行,可以阻止切换或要求你确认;Claude Code 无法判断组织的托管插件交付了哪些PreModelSwitchHook(如某个托管插件加载失败)时,会拒绝切换而不是不加检查地应用,并在每次新尝试时重新检查。 - 通过 Agent SDK 的
setModel()、桌面应用这类应用、或经 Remote Control 连接的设备切换模型时,Claude Code 在切换时检查该值:Agent SDK 或应用(v2.1.268+)里,除非 Claude Code 在本地接受该模型 ID(如你的自定义模型选项),否则它在会话第一次切到该 ID 时向提供商确认,任何提供商上都如此,提供商不提供的 ID 在切换时就被拒绝,而不是在下一次请求才失败;Remote Control 在 Anthropic API 上本地检查该值且不发请求。 - 用
--model、ANTHROPIC_MODEL或model设置设定模型时,Claude Code 不预先检查,拼写错误会在第一次请求时产生「There's an issue with the selected model」。请求的模型有计划退役日期或被自动重映射到更新版本时,Claude Code 显示点名该模型的警告:交互会话是启动通知;自 v2.1.182 起,非交互模式在默认文本输出格式下把同样的警告写到 stderr(--output-format json和stream-json时抑制,改从结果消息的modelUsage字段读取实际模型);检查也覆盖子智能体前置信息里的model。
示例:claude --model opus 启动,会话里 /model sonnet 切换;设置文件里写 "model": "opus"。
设置新会话的默认模型
设置 ANTHROPIC_DEFAULT_MODEL=<alias|name> 选择会话默认启动的模型(需要 v2.1.236+)。只有以下都没有选定模型时,新会话才以该变量的模型启动:--model 标志、ANTHROPIC_MODEL、任何设置文件里的 model 值(包括你用 /model 保存的选择)、组织默认模型。你用 /model 保存的选择在以后的启动里也优先于该变量;若改设 ANTHROPIC_MODEL,则无论你用 /model 保存了什么,下次启动都回到该变量的模型。Claude Code 还会把 Default 选项解析为该变量的模型(除非适用组织默认模型),此时选择器 Default 行显示标签「Set by ANTHROPIC_DEFAULT_MODEL」。
这些情况下 Claude Code 忽略该变量,Default 选项按你没设置它来解析:把它设为 default、inherit、opusplan 或 haiku;enforceAvailableModels 开启;组织的模型限制排除该模型;该模型对你的账号不可用。新会话会以该变量的模型启动时,用 claude --resume、--continue、/resume 恢复的会话也以它启动,不恢复转录里的模型;否则恢复会话不使用该变量。
新会话没有以你选的模型开始
用 /model 选了模型、下一个会话却用了别的,通常有这些原因:
- 你只为一个会话选了它:在选择器里按
s、用--model启动、在非交互模式运行/model,都只作用于当前会话,不改你保存的默认值。 - 更高优先级的东西设置了模型:项目或托管设置里的
model、你 shell 里的ANTHROPIC_MODEL,或管理员设为覆盖用户选择的组织默认值,会在每次启动重新生效;你的/model选择仍然保存着,只是被压过了。项目或托管设置设了模型时,启动标题会点名该文件。 - Claude Code 没能保存你的选择:
/model把model写入~/.claude/settings.json;如果你无法写该文件(例如别的工具生成它,或把它链接到只读副本),选择只在本会话有效,下次启动读到旧值。在生成该文件的工具里设置model,或让文件可写。 - 你恢复了一个会话:用
claude --resume或--continue恢复的会话通常保持它原来用的模型,而不是你当前的默认值。