2026 年 7 月 27 日核实
在 LangChain / LangGraph 里使用 Claude Fable 5
两个 SDK 都是一等支持。会出问题的,是你在这个模型存在之前写下的代码。
一句话结论
两种语言都支持。Python 里给 ChatAnthropic 传 model claude-fable-5,用带 effort 的 output_config 控制深度,agent 循环再加上 task_budget。JavaScript 里把 @langchain/anthropic 升级到包含 2026 年 6 月 9 日加入的 Claude 5 系列支持的版本。然后把你链路里所有 temperature 参数删掉 —— 这个模型直接拒绝采样参数。
支持状态
完全支持,2026 年 7 月 27 日核实。Python 这边,ChatAnthropic 暴露的 output_config 有三个有文档的键:effort,取 max、xhigh、high、medium 或 low;format,通常通过 with_structured_output 设置;以及 task_budget,一个给 agent 循环用的建议性 token 预算,目前是 beta,需要 langchain-anthropic 1.4.1 或更高。JavaScript 这边,对 claude-fable-5 和 claude-mythos-5 的支持在 2026 年 6 月 9 日落地 —— 那次改动为两个 ID 加了默认 max_tokens 的族映射,扩展了 adaptive-only 的调用兼容逻辑,让 Claude 5 系列遵循与 claude-opus-4-7 相同的采样与 thinking 约束,并升级了底层的 Anthropic SDK。
配置步骤
版本、模型、effort、预算 —— 按这个顺序来。
- 1
把版本 pin 到认识 Fable 5 的那一版
Python 里,如果你要用 task budget,就装 langchain-anthropic 1.4.1 或更高,并设好 ANTHROPIC_API_KEY。JavaScript 里,取一个包含 2026 年 6 月那次 Claude 5 系列改动的 @langchain/anthropic 版本;更旧的版本不会应用 adaptive-only 的参数处理,会把这个模型拒绝的默认值发出去。
- 2
构造模型时不要带采样参数
用 model claude-fable-5 和一个显式的 max_tokens 实例化 ChatAnthropic。不要传 temperature、top_p、top_k —— 这三个在这个模型上都返回 400。也别传 thinking 块:自适应思考永远开着,thinking 的 disabled 会被拒绝。
- 3
把 effort 明确设出来
传一个带 effort 值的 output_config,或者用 ChatAnthropic 上的顶层 effort 参数。默认是 high;把 effort 显式设成模型的默认值等同于不设 —— 那不会破坏 prompt 缓存,而在请求之间改动它会。
- 4
跑 LangGraph 循环时,加上 task budget
在 output_config 里加 task_budget,type 写 tokens,total 按真实数据来定,并带上 task-budgets-2026-03-13 这个 beta header。total 最小是 20000 token,低于这个数 API 返回 400。倒计时是服务端注入的,模型会照着它自己调整节奏。
坑
在 Opus 上跑得好好的链路,会以这四种方式在这里失灵。
task_budget 只是建议,把它饿着会看起来像拒答
这个预算是模型照着自己调节奏的倒计时,不是强制上限 —— max_tokens 仍然是唯一的硬限制,而且 Claude 宁可略微超一点也不愿中断一个进行中的动作。更麻烦的是:一个技术上合法但对长任务来说太小的预算,会让模型大幅缩减范围或提前停止,在你的日志里看起来就像拒答。如果加了预算之后突然出现意外的提前结束,先把预算调大,再去查别的。
旧版 @langchain/anthropic 会发出本该被剥掉的参数
JavaScript 那次加 Fable 5 的改动,同时扩展了 adaptive-only 的兼容逻辑和默认 max_tokens 映射。在旧版本上,model ID 照样能解析,所以 import 阶段看不出任何毛病 —— 你只是会在网络请求里带上默认采样参数,然后拿到一个 400,而你多半会先去自己的代码里找问题。
你抄过的每个 LangChain 示例里都有 temperature=0
在 LangChain 代码里,用 temperature=0 求确定性几乎是条件反射 —— 而它在 Fable 5 上是 400,top_p、top_k 也一样。把你的链路、agent 构造器和配置文件都搜一遍。改用 prompt 来引导;这个模型上没有采样旋钮可以补偿。
你没法靠关掉 thinking 来省钱
在 thinking 可选的模型上,关掉它是标准省钱手段。在 Fable 5 上,thinking 的 disabled 会返回 400 —— 自适应思考永远开着,effort 是唯一的深度控制。如果你的路由层会为便宜路径关掉 thinking,那里需要加一个按模型分支的判断。
成本注意事项
在 LangGraph agent 里,每个节点都是一次完整请求,所以 1M 上下文乘以节点数,就是预算消失的方式。真正能改变数字的有三件事。第一,effort 是主要杠杆,而 Anthropic 自己的说法是:Fable 5 的低 effort 常常胜过上一代的 xhigh —— 所以从 high 起步,在断定需要更多之前先测 medium。第二,prompt 缓存能在缓存输入读上返还 90%,但解析后的 effort 值会被渲染进 prompt,所以按节点变动 effort 会让缓存失效。第三,task budget 只塑造行为、不封顶开销;要硬上限,还是得你自己在循环里累加用量来执行。