帖子说了什么
@tidyowl 提醒:在 Claude Code 里,Fable 是给大块、长时间任务用的模型,部分套餐用它时不走套餐自带额度,而是扣 usage credits。交互会话会先弹一个确认,但用 claude -p 跑脚本时,这个确认根本不会出现,直接计费。作者建议在脚本和 CI 里把模型名写死,不要用 best。
官方文档怎么写
对照官方 模型配置文档 的「Fable and usage credits」一节:
- 是否扣 credits 看套餐和席位:取决于你的套餐和席位类型,Fable 的用量可能计入 usage credits,而不是套餐额度。这种情况下,
/model选择器里 Fable 那一行会显示「Requires usage credits」。 - 交互会话会先问一次:第一次要用 credits 跑 Fable 时,会弹出确认,可以选继续用 Fable,或切回默认模型。选了继续之后,就不会再问。Enterprise 组织统一计费的成员不会看到这个提示。
- 没人在键盘前:接了 Remote Control、后台会话、agent team 队友会话里,确认会挂着等
dialogExpiry(默认 5 分钟),没人回应就结束这一轮、不发请求。 -p不问:用-p的非交互模式,以及不展示这个提示的 Agent SDK 应用,Claude Code 从不征求同意,需要扣 credits 时直接扣。best别名:只要你能用 Fable,best就解析成 Fable,否则等同opus。
怎么避免被脚本悄悄扣费
- 先看
/model:Fable 那一行有没有「Requires usage credits」,有就说明你的套餐会这样计费。 - 脚本、cron、CI 里写明模型名:
claude -p调用都显式加--model,用具体的模型名或sonnet、opus这类别名,别用best,也别留空依赖默认值。 - 翻一遍现有自动化:在仓库里搜
claude -p、--model best、--model fable,以及 SDK 代码里设置模型的地方。 - 检查顾问模型设置:文档把
advisorModel设置和--advisor也列为会用到其他模型的入口,确认它不是你不想付费的模型。 - 定期看花费:在 claude.ai 的 Settings > Usage 里查看 usage credits 的余额和使用情况。
小结
交互会话里那一次确认是唯一的提醒,而无人值守的脚本连这一次都没有。要用 Fable 就在会话里主动选它;自动化任务一律把模型钉死。
