Anthropic 全新的 Claude Fable 5 推理引擎会为每个请求持续开启深度思考,转而让开发人员上下调节推理的深度。过去,大语言模型(LLM)在固定的计算参数上运行,无论查询的复杂程度如何,都以统一的速度生成 Token。简单的问候与高深的数学证明消耗着相同的处理能量。通过 Fable 5,Anthropic 引入了一套混合推理框架:思考始终处于激活状态,而您通过单一的 effort(努力程度)设置来控制模型的工作强度。本教程将阐述该 API 的工作原理、如何选择合适的努力程度,以及如何在生产流水线中落地这一架构。

[!WARNING] API 限制警告:Fable 5 的思考始终开启,您无法将其关闭。传递 thinking: {type: "enabled"}thinking: {type: "disabled"},或提供 budget_tokens 值,都会返回 HTTP 400 错误 —— 这些参数已被移除。请改用 output_config: {effort: "..."} 来控制推理深度,并在使用较高努力程度时,为最终回答在 max_tokens 中预留足够的空间。

核心要点:

  • 调节努力程度,而非开关切换:将 output_config.effort 设为 lowmediumhighxhighmax —— 不存在开/关开关。
  • 思考自动进行:省略 thinking,或传入 {type: "adaptive"};自适应思考会在每个请求上运行。
  • 解析流数据:在实时服务器流中处理带 thinking_delta 增量的 thinking 内容块。
  • 管理费用:缓存系统提示词(prompt caching)可减少重复的思考处理周期。

解释 Claude 的混合推理引擎

Fable 5 的核心创新在于它能够在输出最终答案之前把问题想清楚。这意味着模型在响应客户端请求之前,会在内部先梳理出解决方案的逻辑草稿。关键在于,这个思考阶段始终开启 —— 您无法将其关闭,也不存在一个可供切换进入的独立“速度模式”。

当您提交一个复杂的问题时,模型不会试图立即预测下一个词。相反,它会生成内部的思考 Token,模拟一个逐步推理的过程。这种架构极大地提高了数学、编码和逻辑评估的准确性。

为了满足不同的企业需求,Anthropic 允许开发人员通过单一的 effort 控制项按需调整思考的深度。在 low(低)努力程度下,模型只做简短思考并快速作答,从而压低延迟和 Token 开销。在 high(高)或 max(最高)努力程度下,它会推理得更加深入,投入攻克高难度数学、多步骤逻辑和复杂代码所需的额外算力。速度与深度之间的权衡完全通过这一努力程度来表达,而不是通过启用/禁用的开关。

探索 AI 集成服务

配置 Fable 5 API 参数

要在您的软件中实现这些功能,您必须使用更新后的 Anthropic API 架构。此架构可确保您的客户端应用程序指定正确的模型名称和执行参数。

推理深度通过 output_config 配置块来设置。在其中,effort 字段接受 "low""medium""high""xhigh""max" 之一,这个单一取值取代了旧的 Token 预算拨盘。在简单场景下,您完全不需要传递 thinking 块 —— 自适应思考会自动运行。下面的 JavaScript 集成演示了如何构建此请求:

 1import Anthropic from "@anthropic-ai/sdk";
 2
 3export default {
 4  async fetch(request, env) {
 5    const anthropic = new Anthropic({ apiKey: env.ANTHROPIC_API_KEY });
 6
 7    try {
 8      const response = await anthropic.messages.create({
 9        model: "claude-fable-5",
10        max_tokens: 8192,
11        // Thinking is always on for Fable 5; dial reasoning depth with effort:
12        output_config: { effort: "high" }, // "low" | "medium" | "high" | "xhigh" | "max"
13        messages: [
14          {
15            role: "user",
16            content: "Generate an optimised database migration script for 10 million records."
17          }
18        ]
19      });
20
21      return Response.json(response);
22    } catch (err) {
23      return Response.json({ error: err.message }, { status: 500 });
24    }
25  }
26};

请不要试图禁用思考或传递 budget_tokens 值:在 Fable 5 上,thinking: {type: "disabled"}thinking: {type: "enabled"} 以及任何 budget_tokens 字段都会返回 HTTP 400,因为这些参数已在该模型(以及 Opus 4.7 和 4.8)上被移除。想要更快就选择较低的努力程度,想要更深就选择较高的努力程度,并在提升努力程度时为最终回答在 max_tokens 中预留足够的余量。有关无服务器架构的详细信息,请阅读我们关于 使用 Cloudflare Workers 构建无服务器 API 的指南。


处理流数据中的推理 Token

对于诸如聊天界面之类的实时应用,流式传输响应至关重要。Fable 5 通过 SSE(Server-Sent Events)通道输出思考步骤和最终内容。

在流传输期间,思考以 thinking 内容块的形式到达,通过 delta.type"thinking_delta"content_block_delta 事件传递。从 delta.thinking 读取文本,而从常规的 text_delta 增量读取最终答案。原始的思维链永远不会被返回 —— 要获得可读的摘要,您必须通过 thinking: {type: "adaptive", display: "summarized"} 主动开启;默认的 "omitted" 会流式传输空的思考文本。一个最小化的处理程序如下所示:

 1const stream = await anthropic.messages.stream({
 2  model: "claude-fable-5",
 3  max_tokens: 8192,
 4  output_config: { effort: "high" },
 5  thinking: { type: "adaptive", display: "summarized" },
 6  messages: [{ role: "user", content: prompt }]
 7});
 8
 9for await (const event of stream) {
10  if (event.type === "content_block_delta") {
11    if (event.delta.type === "thinking_delta") {
12      process.stdout.write(event.delta.thinking); // summarised reasoning
13    } else if (event.delta.type === "text_delta") {
14      process.stdout.write(event.delta.text);      // final answer
15    }
16  }
17}

您可以将这些 thinking_delta 数据块导入一个可折叠的“Thinking…”面板,或者将它们丢弃、只渲染最终答案。有关 Anthropic 集成的详细参考,请直接参阅 Anthropic 开发者文档

请仔细管理您的 Token 记账。思考 Token 会计入您的输出 API 计费。因此,请实施强力的提示词缓存,以避免在相同的输入上重复运行推理周期。在规划生产部署时,通过边缘遥测层跟踪这些指标有助于您识别思考 Token 使用量超出典型参数的位置。


步骤式 API 集成工作流

要在应用中集成推理引擎,首先更新您的本地依赖包以符合 Fable 5 规范。旧版本的 SDK 仍会发送 budget_tokens,而这现在会在 API 序列化期间触发 HTTP 400 架构错误。

接下来,定义清晰的延迟阈值。对于简单的对话流或问候语,设置 low(低)努力程度以降低延迟。将 high(高)或 max(最高)努力程度保留给代码生成或数学等任务。

此外,使用 Wrangler 等工具将您的 API 凭据安全地存储在无服务器环境参数中。在处理流输出事件时,编写健壮的前端处理程序以过滤掉 thinking_delta 数据包 —— 除非您打算直接显示模型的推理步骤,否则这是必要的。最后,审计提示词缓存命中率,以确认缓存最小化了 Token 消耗开销。要了解边缘 API 设计,请探索我们的 Cloudflare Workers AI 教程


低努力程度对比高努力程度一览

选择努力程度是延迟、成本和回答质量之间的权衡。下表对比了在评估请求规模时最关键的维度。延迟和吞吐量数据仅供说明,并会根据提示词长度、负载和地区而变化,但它们之间的关系是成立的。

维度低努力程度高努力程度
首字输出时间亚秒级(仅供说明)随模型思考增多而增长
单次请求成本思考 Token 更少,因此花费更低思考 Token 更多,按输出速率计费
难题准确率基准水平在数学、多步骤逻辑和代码上显著提高
Token 可预测性更紧凑、更易预测可变,在高难度提示词上更大
最契合的负载聊天、分类、检索格式化调试、证明、规划、复杂内容生成
属性配置output_config.effort = "low"output_config.effort = "high""max"

核心要点是,思考 Token 就是实实在在的输出 Token。低努力程度的请求只做简短思考,费用主要来自它所编写的回答;而高努力程度或最高努力程度的请求,在回答的第一个字出现之前,就可能生成大量的思考 Token。思考永远不会关闭 —— 您选择的只是投入多少思考。


何时使用每种努力程度

一种实用的方法是将每种任务类型映射到默认的努力程度,然后仅在某个特定请求明显需要更多计算空间时才进行覆盖。对于错误答案在下游代价高昂的问题,请保留高努力程度和最高努力程度。

任务类型推荐努力程度
问候、FAQ 和闲聊low
意图分类与路由分发low
短文档摘要low
结构化数据提取lowmedium
多文件代码生成high
财务或数学推理highxhigh
根因调试xhighmax

在以下情况选择低努力程度:当响应较短且在很大程度上是确定性的,当首字输出时间直接影响用户体验(在线客服、自动完成、表单助手),或者当您运行大批量、低利润的负载,其中每个额外的输出 Token 都会在数百万次调用中成倍累加。

在以下情况选择高努力程度或最高努力程度:当单个错误回答会带来实际损失时 —— 损坏的迁移脚本、计算错误的报价、不安全的代码路径 —— 或者当任务涉及模型必须协同处理的多个相互依赖的步骤。在这些负载中,几秒钟的额外延迟换来的是可靠性的显著提升。


具体示例:延迟与成本的权衡

假设一个客服助手每天处理 50,000 个请求。假设每个最终回答约为 250 个 Tokenlow(低)努力程度只会增加少量思考 Token,而 high(高)努力程度在典型的困难查询中大约消耗 1,500 个思考 Token。以下所有 Token 价格仅用于说明 —— 请将其视为建模练习而非实际报价 —— 并假设输出费率为 每百万 Token 15 美元

以低努力程度运行每个请求,大约产生 50,000 × 250 = 每天 1250 万个输出 Token,按说明费率计算约为 每天 188 美元。相反,以高努力程度运行每个请求,每天计费 50,000 × (1,500 + 250) = 每天 8750 万个 Token,大约 每天 1,313 美元 —— 贵了七倍,其中大部分花在了那些根本不需要额外深度的查询上。

现在采用选择性路由。假设一个低成本的低努力程度分类器判定只有 15% 的流量真正复杂。将 7,500 个请求发送到高努力程度、42,500 个发送到低努力程度,每天产生 1310 万 + 1060 万 ≈ 每天 2370 万个 Token,约为 每天 356 美元 —— 相比于一刀切地全部使用高努力程度 节省了约 73%,同时仍然在能发挥价值的地方应用深度推理。

延迟的情况也反映了这一点。在低努力程度下,第一个 Token 通常在远不到一秒的时间内出现。在高努力程度下,模型会在回答开始之前生成大得多的推理草稿,因此一个 1,500 Token 的内部草稿,按每秒 60 个 Token 的说明性速度计算,会使可见的响应延迟约 25 秒。将 thinking_delta 数据块流式传输到一个可折叠的“Thinking…”面板中,正是让终端用户能够容忍这段等待时间的做法。


迁移和总拥有成本(TCO)

如果您是从固定计算模型迁移过来的,最大的转变是:推理深度现在是一个您按请求设置的拨盘,而不是您在每次调用中支付的固定费率。账单上最大的杠杆并非任何单次调用的 effort 级别,而是决定哪些请求真正值得使用高努力程度的 路由层。一个轻量级的低努力程度分类调用(几百个 Token)作为昂贵的高努力程度调用的门槛,几乎总能收回成本。

有两个习惯可以保持总拥有成本的可预测性。首先,为每一类任务设置能可靠解决问题的最低努力程度,而不是宽泛的全局默认值;在所有地方都套用 max 努力程度是意外账单的最常见来源。其次,缓存稳定的系统提示词,这样重复的上下文就不会在每个推理周期中被重新计费。将按请求路由与提示词缓存相结合,就能把大部分支出推向真正从中受益的少数请求上。


核心要点

  • Fable 5(claude-fable-5,100 万 Token 上下文、最大输出 128K Token)始终开启思考;您调节的是它的深度,而不是开关它。
  • 使用 output_config: {effort: "low" | "medium" | "high" | "xhigh" | "max"} 配置推理深度;budget_tokens 以及 thinking.type 的 “enabled”/“disabled” 现在都会返回 HTTP 400。
  • 通过 thinking 内容块(thinking_delta 增量)流式传输思考过程,以向终端用户展示模型的步骤;使用 thinking: {type: "adaptive", display: "summarized"} 主动开启可获得可读的摘要。
  • 通过选择可行的最低努力程度并缓存常用提示词来控制 API 计费成本。
  • 在无服务器边缘网络上部署您的 API 中间件以减少传输延迟。

常见问题(FAQ)

什么是 Claude Fable 5 推理? Claude Fable 5 推理是一种始终开启的能力,模型会在输出最终响应之前生成内部的思考 Token 来解决复杂的逻辑问题。网络不会试图立即猜测下一个词,而是模拟逐步思考的过程来解决架构、数学和编码方面的错误,而您可以通过 effort 设置来调节它思考的深度。

如何在 API 中配置推理的努力程度? 您可以通过在 API 请求负载中传递 output_config: { effort: "low" | "medium" | "high" | "xhigh" | "max" } 来配置推理深度。较低的努力程度只做简短思考、用更少的 Token 更快作答,而较高的努力程度则推理得更深入。旧的 budget_tokens 参数已被移除,现在在 Fable 5 上会返回 HTTP 400 错误。

推理 Token 的计费方式不同吗? 不,推理 Token 按模型的标准输出 Token 费率计费。因为这些 Token 代表输出的计算量,它们会直接计入您的 API 账单,这使得提示词缓存和合理的努力程度对于控制软件支出至关重要。

如何让 Fable 5 响应得更快? 您无法禁用推理 —— Fable 5 的思考始终开启,传递 thinking: {type: "disabled"} 会返回 HTTP 400 错误。要降低延迟,请使用 output_config: { effort: "low" } 调低努力程度,这会缩短思考阶段,并将基本对话任务的首字输出时间降到最低。

如何从 SSE 流中实时解析推理 Token? 在无服务器 SSE 流传输期间,思考以 thinking 内容块的形式,通过 delta.typethinking_deltacontent_block_delta 事件到达;从 delta.thinking 读取文本,将其与标准的 text_delta 输出分开。通过 thinking: {type: "adaptive", display: "summarized"} 主动开启以获得可读的摘要,然后根据前端 UI 偏好来渲染或丢弃这些 Token。