Claude Fable 5.1 在 Claude Fable 5 的基础上进行了扩展,输入和输出价格保持不变,缓存读取成本降至四分之一,并在长时间运行的智能体编码、多步骤研究以及文档、电子表格和幻灯片工作方面表现更强。对于大多数工作负载,请从 Claude Opus 5.5 开始(请参阅选择模型)。对于要求较高的推理和长周期智能体工作,或者当您在更高 effort 下对 Claude Opus 5.5 的评估仍未达标时,请使用 Claude Fable 5.1。Claude Mythos 5.1 提供相同的能力,但仅面向通过 Anthropic 验证计划(例如 Cyber Verification Program)验证的组织。

如果您已经在调用 Claude Fable 5,有三项变更属于破坏性变更:强制工具使用会返回错误、只有 Claude Fable 5.1 和 Claude Mythos 5.1 可以读取 Claude Fable 5.1 的思考块,以及编辑较早的轮次会使思考块失效。另有五项为新增功能:按消息设置 effort(beta)、轮次范围的系统消息(beta)、工具调用之间的可读进度更新(display: "updates",beta)、更低的缓存读取价格,以及内容来源标识。

模型

模型 Claude API ID 描述 可用性
Claude Fable 5.1 claude-fable-5-1 Claude Fable 5 的后继模型,适用于长时间运行的智能体编码、知识工作和研究 所有客户,可在 Claude API 和合作伙伴平台上使用
Claude Mythos 5.1 claude-mythos-5-1 与 Claude Fable 5.1 能力相同。Claude Mythos 5 的后继模型。 通过 Anthropic 验证计划(例如 Cyber Verification Program)验证的组织

Claude Fable 5.1 和 Claude Mythos 5.1 的规格和定价相同:

  • 上下文窗口和输出: 1M 令牌的上下文窗口(默认值和最大值),整个窗口均按标准的每令牌价格计费,最大输出令牌数为 128k。
  • 思考: 自适应思考始终开启。使用 effort 参数控制思考深度。
  • 定价: 与 Claude Fable 5 相同,但缓存读取价格更低。
  • 分词器: 与 Claude Fable 5 相同(随 Claude Opus 4.7 引入)。与早于 Claude Opus 4.7 的模型相比,相同文本产生的令牌数大约多 30%。请参阅令牌计数。

有关所有当前模型,请参阅模型概述。

破坏性变更

不支持强制工具使用

Claude Fable 5.1 和 Claude Mythos 5.1 不支持强制工具使用。将 tool_choice 设置为 {"type": "any"} 或 {"type": "tool", "name": "..."} 会返回 400 invalid_request_error:

tool_choice: type "tool" and "any" are not supported for this model.

tool_choice: {"type": "auto"}(默认值)和 {"type": "none"} 保持不变。相同的验证也适用于令牌计数端点。

这些模型的思考始终开启,而强制工具调用会跳过思考。模型会转而将其推演过程写入工具参数中,从而降低参数质量。如需符合 schema 的 JSON,请保持 tool_choice: {"type": "auto"} 并通过严格工具使用设置 strict: true,或将 schema 移至结构化输出。若要让模型调用工具而不是以文本回复,请在提示中说明何时适用该工具(例如,“使用 get_weather 工具来回答”)。Claude Fable 5.1 能够可靠地遵循明确的工具指令。

只有 Claude Fable 5.1 和 Claude Mythos 5.1 能读取 Claude Fable 5.1 的思考块

每个思考块都会记录生成它的模型。Claude Fable 5.1 可以读取早期模型的思考块,但只有 Claude Fable 5.1 和 Claude Mythos 5.1 能读取 Claude Fable 5.1 的思考块。切换到 Claude Fable 5.1 的对话(从 Claude Opus 5、Claude Fable 5 或任何更早的 Claude 模型切换)会保留其推理。从 Claude Fable 5.1 切换到任何其他模型的对话,在该模型上运行的轮次中会丢失这些推理。

当请求携带目标模型无法读取的块时(例如,在对话中途切换模型的路由器或回退机制),API 会在模型看到该块之前将其丢弃。被丢弃的块不计入 input_tokens,也不计费。使用 thinking-binding-controls-2026-08-01 beta 标头时,丢弃情况会在顶层的 input_transformations 数组中报告。不使用该标头时,丢弃是静默进行的。请参阅在对话中途切换模型。

编辑较早的轮次会使思考块失效

在 Claude Fable 5.1 和 Claude Mythos 5.1 上,您回传的 thinking 块仅在其之前的所有内容保持不变时才有效:包括 system 提示、tools 以及之前的每一条消息。Claude Code、claude.ai、Claude Managed Agents 和 Claude Agent SDK 会为您保持该历史记录完整。如果您的代码自行构建 messages 数组,请在迁移之前进行检查:保留思考说明了前缀检查以及如何替换每一处编辑。

要在长会话中保持思考有效,请将对话视为仅追加(append-only)。使用对话中途系统消息添加指令。如果某条指令只应适用于单个轮次,请改用轮次范围系统消息。使用对话中途工具变更来更改工具,而不是编辑 system 或 tools。使用服务器端的上下文编辑或压缩来精简上下文,这些操作不算作编辑。这些模式还能让提示缓存保持预热状态。要确定您的集成是否会编辑历史记录,请运行迁移指南中的三步检查。

以下变更会使之后的所有 thinking 块失效:

  • 编辑、重新排序或删除较早的轮次,同时保留之后的轮次。
  • 向较早的轮次注入每个请求特有的文本(提醒或状态行),并在下一个请求中将其删除。
  • 在同一对话的请求之间重建顶层 system 提示或 tools 数组。
  • 使用在后续请求中返回不同字节的图像或文档 URL(前缀检查针对的是字节而非 URL,因此同一文件使用轮换的签名 URL 是没有问题的)
  • 从历史记录中间移除某个思考块,同时保留其后的思考块

以下更改可使后续块保持有效:

  • 移除最旧的 thinking 块(从历史记录开头)、最新的 thinking 块(从末尾),或全部移除
  • 让服务器端压缩或上下文编辑裁剪历史记录
  • 移动 cache_control 标记
  • 在请求之间更改 effort

当请求回传无效块时,由 thinking.block_binding.prefix_mismatch_behavior(beta 标头 thinking-binding-controls-2026-08-01)决定如何处理。"error" 会拒绝该请求并返回 400 错误,其消息为 The block is bound to a different conversation。"drop_block" 会丢弃该块及其之后的所有 thinking 块,且请求会成功。响应会在 input_transformations 中列出每次丢弃,并带有 reason: "prefix_binding_mismatch"。当请求未设置该字段时,API 在 Claude Mythos 5.1 上会返回 400 错误。在 Claude Fable 5.1 上,对于 2026 年 8 月 31 日或之后创建的账户,会返回该错误。未设置 prefix_mismatch_behavior 时提供了完整的表格。

新功能

在对话中途更改 effort(beta)

在 Claude Fable 5.1 上,您可以在对话中途更改 effort 级别,而不会使提示缓存失效。在困难的步骤中提高它,在常规步骤中降低它。按消息设置 effort 目前处于 beta 阶段:请包含 mid-conversation-output-config-2026-07-01 beta 标头。Claude Fable 5.1 和 Claude Mythos 5.1 在 Claude API、Claude Models on Google Cloud (Google managed) 和 Amazon Bedrock 上支持此功能。若要通过 Amazon Bedrock InvokeModel API 在 Claude Fable 5.1 上使用此功能,请改为在请求正文的 anthropic_beta 数组中发送该值。有关支持此功能的其他模型及各自的平台,请参阅在对话中途更改 effort。

cURL

# 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mid-conversation-output-config-2026-07-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-fable-5-1",
    "max_tokens": 4096,
    "output_config": {"effort": "high"},
    "messages": [
      {"role": "user", "content": "Plan a migration from SQLite to PostgreSQL in three short steps."},
      {"role": "assistant", "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."},
      {"role": "system", "content": [], "output_config": {"effort": "low"}},
      {"role": "user", "content": "Summarize the plan in one sentence."}
    ]
  }'

CLI

ant beta:messages create --beta mid-conversation-output-config-2026-07-01 <<'YAML'
model: claude-fable-5-1
max_tokens: 4096
output_config:
  effort: high
messages:
  - role: user
    content: Plan a migration from SQLite to PostgreSQL in three short steps.
  - role: assistant
    content: "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."
  # 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
  - role: system
    content: []
    output_config:
      effort: low
  - role: user
    content: Summarize the plan in one sentence.
YAML

Python

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=4096,
    output_config={"effort": "high"},
    messages=[
        {
            "role": "user",
            "content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
        },
        {
            "role": "assistant",
            "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
        },
        # 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
        {"role": "system", "content": [], "output_config": {"effort": "low"}},
        {"role": "user", "content": "Summarize the plan in one sentence."},
    ],
    betas=["mid-conversation-output-config-2026-07-01"],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

TypeScript

const client = new Anthropic();

const response = await client.beta.messages.create({
  model: "claude-fable-5-1",
  max_tokens: 4096,
  output_config: { effort: "high" },
  messages: [
    {
      role: "user",
      content: "Plan a migration from SQLite to PostgreSQL in three short steps."
    },
    {
      role: "assistant",
      content:
        "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."
    },
    // 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
    { role: "system", content: [], output_config: { effort: "low" } },
    { role: "user", content: "Summarize the plan in one sentence." }
  ],
  betas: ["mid-conversation-output-config-2026-07-01"]
});

for (const block of response.content) {
  if (block.type === "text") {
    console.log(block.text);
  }
}

C#

using Anthropic.Models.Beta;
using Anthropic.Models.Beta.Messages;
using Model = Anthropic.Models.Messages.Model;

AnthropicClient client = new();

var response = await client.Beta.Messages.Create(new MessageCreateParams
{
    Model = Model.ClaudeFable5_1,
    MaxTokens = 4096,
    OutputConfig = new() { Effort = Effort.High },
    Messages =
    [
        new BetaUserMessageParam { Content = "Plan a migration from SQLite to PostgreSQL in three short steps." },
        new BetaAssistantMessageParam { Content = "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts." },
        // 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
        new BetaSystemMessageParam
        {
            Content = new([]),
            OutputConfig = new() { Effort = BetaSystemMessageOutputConfigEffort.Low },
        },
        new BetaUserMessageParam { Content = "Summarize the plan in one sentence." },
    ],
    Betas = [AnthropicBeta.MidConversationOutputConfig2026_07_01],
});

foreach (var block in response.Content)
{
    if (block.TryPickText(out var textBlock))
    {
        Console.WriteLine(textBlock.Text);
    }
}

Go

client := anthropic.NewClient()

response, err := client.Beta.Messages.New(context.Background(), anthropic.BetaMessageNewParams{
	Model:     anthropic.ModelClaudeFable5_1,
	MaxTokens: 4096,
	OutputConfig: anthropic.BetaOutputConfigParam{
		Effort: anthropic.BetaOutputConfigEffortHigh,
	},
	Messages: []anthropic.BetaMessageParam{
		anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Plan a migration from SQLite to PostgreSQL in three short steps.")),
		{
			Role:    anthropic.BetaMessageParamRoleAssistant,
			Content: []anthropic.BetaContentBlockParamUnion{anthropic.NewBetaTextBlock("1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.")},
		},
		// 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
		anthropic.NewBetaSystemMessage(anthropic.BetaSystemMessageOutputConfigParam{
			Effort: anthropic.BetaSystemMessageOutputConfigEffortLow,
		}),
		anthropic.NewBetaUserMessage(anthropic.NewBetaTextBlock("Summarize the plan in one sentence.")),
	},
	Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaMidConversationOutputConfig2026_07_01},
})
if err != nil {
	log.Fatal(err)
}

for _, block := range response.Content {
	if textBlock, ok := block.AsAny().(anthropic.BetaTextBlock); ok {
		fmt.Println(textBlock.Text)
	}
}

Java

import com.anthropic.models.beta.AnthropicBeta;
import com.anthropic.models.beta.messages.BetaMessage;
import com.anthropic.models.beta.messages.BetaOutputConfig;
import com.anthropic.models.beta.messages.BetaSystemMessageOutputConfig;
import com.anthropic.models.beta.messages.BetaSystemMessageParam;
import com.anthropic.models.beta.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;

void main() {
    AnthropicClient client = AnthropicOkHttpClient.fromEnv();

    MessageCreateParams params = MessageCreateParams.builder()
        .model(Model.CLAUDE_FABLE_5_1)
        .maxTokens(4096L)
        .addBeta(AnthropicBeta.MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01)
        .outputConfig(BetaOutputConfig.builder()
            .effort(BetaOutputConfig.Effort.HIGH)
            .build())
        .addUserMessage("Plan a migration from SQLite to PostgreSQL in three short steps.")
        .addAssistantMessage("1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.")
        // 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
        .addMessage(BetaSystemMessageParam.builder()
            .contentOfBlocks(List.of())
            .outputConfig(BetaSystemMessageOutputConfig.builder()
                .effort(BetaSystemMessageOutputConfig.Effort.LOW)
                .build())
            .build())
        .addUserMessage("Summarize the plan in one sentence.")
        .build();

    BetaMessage response = client.beta().messages().create(params);
    response.content().stream()
        .flatMap(block -> block.text().stream())
        .forEach(textBlock -> IO.println(textBlock.text()));
}

PHP

use Anthropic\Beta\AnthropicBeta;
use Anthropic\Beta\Messages\BetaMessageParam;
use Anthropic\Beta\Messages\BetaOutputConfig;
use Anthropic\Beta\Messages\BetaSystemMessageOutputConfig;
use Anthropic\Client;

$client = new Client();

$response = $client->beta->messages->create(
    model: 'claude-fable-5-1',
    maxTokens: 4096,
    outputConfig: BetaOutputConfig::with(effort: 'high'),
    messages: [
        BetaMessageParam::with(role: 'user', content: 'Plan a migration from SQLite to PostgreSQL in three short steps.'),
        BetaMessageParam::with(role: 'assistant', content: '1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.'),
        // 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
        BetaMessageParam::with(
            role: 'system',
            content: [],
            outputConfig: BetaSystemMessageOutputConfig::with(effort: 'low'),
        ),
        BetaMessageParam::with(role: 'user', content: 'Summarize the plan in one sentence.'),
    ],
    betas: [AnthropicBeta::MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01],
);

foreach ($response->content as $block) {
    if ($block->type === 'text') {
        echo $block->text, PHP_EOL;
    }
}

Ruby

client = Anthropic::Client.new

response = client.beta.messages.create(
  model: "claude-fable-5-1",
  max_tokens: 4096,
  output_config: {effort: :high},
  messages: [
    {role: "user", content: "Plan a migration from SQLite to PostgreSQL in three short steps."},
    {role: "assistant", content: "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."},
    # 仅含 effort 的系统消息:新级别从下一个用户轮次起生效。
    {role: "system", content: [], output_config: {effort: :low}},
    {role: "user", content: "Summarize the plan in one sentence."}
  ],
  betas: [Anthropic::AnthropicBeta::MID_CONVERSATION_OUTPUT_CONFIG_2026_07_01]
)

response.content.each do |block|
  puts block.text if block.type == :text
end

详情请参阅按消息设置 effort。

轮次范围的系统消息(beta)

对话中途的系统消息可以限定在一个轮次内。在 role: "system" 消息上设置 clear_at: "next_user_message",其文本将在当前轮次中具有系统提示的权威性,并在之后出现 user 消息时停止渲染。该消息保留在 messages 中,您需要继续原样发回,因此对话中较早的内容不会发生任何变化。提示缓存会继续匹配,之后的思考块保持有效,并且已清除的消息不消耗输入令牌。可将其用于工具循环中的每轮提醒(“在运行更多代码之前检查您的收件箱”、“用户看不到该工具输出”),而不是将文本注入历史记录并在下一个请求中删除。轮次范围的系统消息目前处于 beta 阶段:请包含 mid-conversation-system-clear-at-2026-08-21 beta 标头。请参阅轮次范围的系统消息。

{
  "role": "system",
  "clear_at": "next_user_message",
  "content": "Results have landed in your inbox. Check it before running more code."
}

工具调用之间的进度更新(beta)

与 Claude Fable 5 一样,Claude Fable 5.1 会在工具调用之间编写简短的进度更新,说明它发现了什么以及接下来要做什么,但数量更少(请参阅相对于 Claude Fable 5 的变化)。每条更新都作为独立的 thinking 块,紧接在工具调用之前到达。在默认的 thinking.display 值 "omitted" 下,这些块与推理一样返回为空,因此较长的智能体轮次在您的用户看来可能毫无动静。新增的是 display: "updates" 选项:配合 thinking-display-updates-2026-08-18 beta 标头进行设置,即可以文本形式接收进度更新,同时推理保持隐藏。此时任何包含非空文本的 thinking 块都是可以向用户展示的状态行。"summarized" 也会返回这些更新,但会与摘要后的推理混合在一起。请参阅工具调用之间的进度更新。

内容来源标识

在提供该模型的每个平台上,Claude Fable 5.1 和 Claude Mythos 5.1 生成的文本都带有 Anthropic 的统计文本水印。Claude 生成的受支持的图像、视频和音频文件(例如通过代码执行工具生成),在您通过 Claude API 上的 Files API 检索时,会带有经过签名的 C2PA Content Credentials。

水印不会改变输出的含义、质量或可读性。它不会增加令牌或隐藏字符,不携带有关您或您组织的任何信息,也无需对您的请求或响应进行任何更改。有关背景信息,请参阅 Claude 如何标记 AI 生成的内容和 Claude 的文本水印如何工作。

行为差异

相对于 Claude Fable 5 的变化

Claude Fable 5.1 与 Claude Fable 5 在若干方面存在差异,这些差异无需任何代码更改即会显现。每一项在为 Claude Fable 5.1 编写提示中都有相应的提示修复方法:

  • 并行工具调用更加多变。 在 Claude Fable 5 会批量发出多个工具调用的情况下,Claude Fable 5.1 可能每轮只发出一个工具调用。这种情况出现在下一步独立读取仅被隐含暗示的长智能体循环中:自定义编码智能体、bash 加编辑器的工具框架、计算机使用。额外的轮次会消耗令牌、往返次数和实际耗时,但不会降低回答质量。明确列出多个要获取内容的请求仍会并行运行。请添加在智能体循环中批量执行独立工具调用中的单行批处理指令。
  • 长时间工具运行期间的进度更新更少。 模型在工具调用之间编写的面向用户的文本更少,在较高 effort 下尤其如此。将 thinking.display 设置为 "updates"(beta)以接收它确实编写的进度更新,并删除任何要求它将发现保留到最终回复的提示行。如果您的 UI 依赖于叙述,请明确要求开场白、定期更新和结尾总结。请参阅要求面向用户的进度更新。
  • 在 low effort 下更常凭记忆作答。 在最低 effort 级别下,模型调用搜索或检索工具的频率更低。对于需要最新信息的轮次,请提高 effort(包括在对话中途提高),或添加低 effort 下的搜索触发中的验证提示。
  • 部分场景下文字更密集。 在某些情况下,其文字比 Claude Fable 5 更密集,句子更长,段落分隔更少。请参阅写作密度。
  • 聊天中的格式更少。 与早期 Claude 模型相比,该模型较少使用粗体、标题和列表,因此为那些模型编写的反格式化规则可能会抑制内容所需的结构。请参阅聊天中的格式。
  • 摘要中出现未标记的引用。 在总结文档时,模型更有可能复述源文档中的段落而不将其标记为引用。请参阅引用检索到的来源。
  • 小改动也重写整个文件。 在编辑文本文件时,模型更有可能重写整个文件,而不是进行有针对性的编辑。结果通常相同,但重写会消耗更多输出令牌和时间。请参阅优先进行有针对性的编辑而非重写整个文件。

与 Claude Fable 5 相同之处

以下 Messages API 行为沿用自 Claude Fable 5,保持不变:

  • 自适应思考始终开启。带有 budget_tokens 的 thinking: {"type": "enabled"} 和 thinking: {"type": "disabled"} 都会返回 400 错误。请省略 thinking 或发送 {"type": "adaptive"}。
  • thinking.display 默认为 "omitted"。可以使用 "summarized",原始思维链永远不会返回。
  • 工具调用之间的推理出现在思考块中而非文本中,并且交错思考是自动的,无需 beta 标头。
  • 预填充助手回复会返回 400 错误。
  • 设置 temperature、top_p 或 top_k 会返回 400 错误。
  • 最小可缓存提示长度为 512 个令牌。
  • 支持对话中途的系统消息和工具变更。

能力改进

Claude Fable 5.1 在 Claude Fable 5 的基础上有所改进,且在较高 effort 级别下差距最大。提升集中在六个方面:

  • 长会话中的智能体编码,包括在持续数小时的会话中进行多文件功能开发、大型重构和迁移、调试以及代码审查。
  • 涉及文档、电子表格和幻灯片的知识工作,将分析从最初的问题推进到完成的文档、带实时公式的电子表格,或从空白页构建的幻灯片。
  • 研究和搜索,在多步骤网络研究和会跟进所发现内容的深度研究任务上准确性更高。
  • 视觉,读取密集的图表、申报文件以及嵌套在 PDF 中的表格,包括在图表上使用裁剪和缩放工具。
  • 长上下文工作,在完整的 1M 令牌上下文窗口中进行推理并关联细节。
  • 计算机使用,更可靠地操作浏览器和桌面应用程序,并能从失败的步骤中恢复。

多语言性能与 Claude Fable 5 相当。

拒绝、回退和计费

Claude Fable 5.1 包含安全分类器,涵盖与 Claude Fable 5 相同的 stop_details 类别,拒绝和回退中的所有内容均适用。它可能返回 stop_reason: "refusal",因此请处理拒绝并配置回退。

  • 拒绝: 被拒绝的请求会返回 HTTP 200,带有 stop_reason: "refusal" 以及一个 stop_details 对象,其中指明触发的策略领域。
  • 回退: 使用服务器端回退、SDK 中间件或您自己的重试逻辑,在另一个模型上重试被拒绝的请求。fallbacks: "default"(beta)会在 Anthropic 针对该类别推荐的模型上重试被拒绝的请求。Claude Fable 5.1 允许的回退目标是 Claude Opus 4.8 和 Claude Opus 5。
  • 计费: 在产生任何输出之前到达的拒绝,如果属于误报量较低的类别,则会计费,以阻止大规模规避 Anthropic 安全措施的尝试(拒绝如何计费)。在 2026 年 9 月 24 日之前,这些拒绝不计费。流式传输中途的拒绝会按正常费率对输入令牌和已流式传输的输出计费。对于 Claude Fable 5.1,回退抵扣会退还切换模型产生的提示缓存成本。

定价

Claude Fable 5.1 和 Claude Mythos 5.1 的定价与 Claude Fable 5 相同,但缓存读取除外(价格以美元计):

基础输入 5 分钟缓存写入 1 小时缓存写入 缓存读取 输出
$10 / MTok $12.50 / MTok $20 / MTok $0.25 / MTok $50 / MTok

在这些模型上,缓存读取(命中和刷新)的成本为基础输入价格的 0.025 倍,而 Claude Opus 5.5 和 Claude Sonnet 5.5 为 0.05 倍,其他 Claude 模型为 0.1 倍。重复读取缓存前缀的长智能体会话只需支付 Claude Fable 5 费率的四分之一。缓存写入和 512 令牌的最小可缓存提示长度保持不变。

批处理的价格为每百万输入令牌 5 美元、每百万输出令牌 25 美元。有关数据驻留和工具定价,请参阅定价。

可用性

Claude Fable 5.1 可在以下平台上使用:

Claude Mythos 5.1 仅面向通过 Anthropic 验证计划(例如 Cyber Verification Program)验证的组织提供。如需申请访问权限,请申请适用于您用例的计划,或联系您的 Anthropic、AWS 或 Google Cloud 客户团队。

Claude Fable 5.1 和 Claude Mythos 5.1 采用 30 天数据保留,除非获得 Anthropic 明确授权,否则不可在零数据保留下使用。与 Claude Fable 5 和 Claude Mythos 5 一样,两者均为 Covered Models。请参阅特定模型的数据保留要求。

从 Claude Fable 5 迁移

要从 Claude Fable 5 迁移,请更新您的模型 ID:

Python

model = "claude-fable-5"  # Before
model = "claude-fable-5-1"  # After

TypeScript

let model = "claude-fable-5"; // Before
model = "claude-fable-5-1"; // After

C#

var model = Model.ClaudeFable5; // Before
model = Model.ClaudeFable5_1; // After

Go

model := anthropic.ModelClaudeFable5  // Before
model = anthropic.ModelClaudeFable5_1 // After

Java

Model model = Model.CLAUDE_FABLE_5; // Before
model = Model.CLAUDE_FABLE_5_1; // After

PHP

$model = 'claude-fable-5'; // Before
$model = 'claude-fable-5-1'; // After

Ruby

model = "claude-fable-5" # Before
model = "claude-fable-5-1" # After

然后检查以下事项:

  1. 删除任何类型为 any 或 tool 的 tool_choice。将 schema 强制执行移至使用 tool_choice: {"type": "auto"} 的严格工具使用,或移至结构化输出。
  2. 原样传回思考块,并保持历史记录仅追加。如果您的代码自行构建 messages 数组,请运行迁移指南中的三步检查。将您注入并删除的每轮提醒移至轮次范围的系统消息,并将 system 和 tools 的变更移至对话中途的系统消息。在服务器端修剪上下文,或从您跨客户端摘要保留的轮次中剥离思考块。然后在每个生产请求上设置 prefix_mismatch_behavior,并监控 input_transformations。
  3. 从默认值(high)重新调整 effort,并考虑在对话中途更改它,而不是在整个会话中保持同一级别。
  4. 在智能体循环中,留意在 Claude Fable 5 会批量发出多个工具调用的地方每轮只发出一个工具调用的情况,并添加为 Claude Fable 5.1 编写提示中的每轮说明。
  5. 重新运行您的评估。拒绝处理、回退、回退抵扣和分词器均保持不变。缓存读取成本更低(请参阅定价),默认行为的差异见相对于 Claude Fable 5 的变化中所列。

有关分步说明(包括从 Claude Opus 5 和更早模型迁移),请参阅迁移指南。

后续步骤