Follow Discord
Sweep 30 Oct 2026 · 01:02Z Build v2.1.314 532 read Stable v2.1.308 Latest v2.1.314 Next v2.1.314 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

whats-new-fable-5-1 changedmodels/fable-5-1/whats-new-fable-5-1

Nearest release: v2.1.314, published 6 hours after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Recorded here
Lines+17added
Lines−11removed
From line 59 where the diff opens
First seen 1 Sep 2026 this site's first read of the page
Recorded edits24to this page, all time

The whole hunk

from line 59, old and new numbered
/
lines
from line 59
5959 
6060### Editing earlier turns invalidates thinking blocks
6161 
62Modifying anything before a Claude Fable 5.1 thinking block (the `system` prompt, the `tools`, or an earlier message) results in an error on the next request, or in the block being dropped if you opt into that. Claude Mythos 5.1 doesn’t run this check. Claude Code, claude.ai, [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview), and the [Claude Agent SDK](https://code.claude.com/docs/en/agent-sdk/overview) keep that prefix intact for you. If your code builds the `messages` array itself, check it before you migrate: [Preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) walks through the check and each fix. The check is enforced for new accounts created on or after August 31, 2026. For accounts created earlier, the API records the mismatch but acts on it only when the request sets `thinking.block_binding.prefix_mismatch_behavior`.
62On Claude Fable 5.1 and Claude Mythos 5.1, a thinking block you send back stays valid only while everything before it is unchanged: the `system` prompt, the `tools`, and every earlier message. Claude Code, claude.ai, [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview), and the [Claude Agent SDK](https://code.claude.com/docs/en/agent-sdk/overview) keep that history intact for you. If your code builds the `messages` array itself, check it before you migrate: [Preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) explains the prefix check and how to replace each edit.
6363 
64These patterns invalidate every later thinking block:
64To keep thinking valid across a long session, treat the conversation as append-only. Add instructions with a [mid-conversation system message](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages). If an instruction should apply to one turn only, use a [turn-scoped system message](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#turn-scoped-system-messages-beta) instead. Change tools with [mid-conversation tool changes](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages#mid-conversation-tool-changes) rather than editing `system` or `tools`. Trim context with server-side [context editing](https://platform.claude.com/docs/en/build-with-claude/context-editing) or [compaction](https://platform.claude.com/docs/en/build-with-claude/compaction), which don’t count as edits. These patterns also keep the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) warm. To find out whether your integration edits history, run the migration guide’s [three-step check](https://platform.claude.com/docs/en/models/fable-5-1/migration-guide#fable-5-1-check-integration).
6565 
66The following changes invalidate every later thinking block:
67 
6668* Editing, reordering, or removing an earlier turn while keeping later ones
6769* Injecting per-request text into an earlier turn (a reminder or status line) that you remove on the next request
6870* Rebuilding the top-level `system` prompt or `tools` array between requests in the same conversation
69* Using an image or document URL that serves different bytes on a later request (the check covers the bytes, not the URL, so a rotating signed URL for the same file is fine)
71* Using an image or document URL that serves different bytes on a later request (the prefix check covers the bytes, not the URL, so a rotating signed URL for the same file is fine)
72* Removing a thinking block from the middle of the history while keeping later ones
7073 
71These keep later blocks valid: removing a leading run of thinking blocks (oldest first), letting server-side compaction or context editing trim the history, moving `cache_control` markers, and changing `effort` between requests. Removing a thinking block from anywhere other than the start of the run invalidates every thinking block after it.
74The following changes keep later blocks valid:
7275 
73Where the check is enforced, a request that replays an invalidated block is rejected with a 400 whose message says `The block is bound to a different conversation`. To drop the block and continue instead, send the `thinking-binding-controls-2026-08-01` beta header with `thinking.block_binding.prefix_mismatch_behavior: "drop_block"`. The drop is reported in `input_transformations` with `reason: "prefix_binding_mismatch"`.
76* Removing the oldest thinking blocks (from the start of the history), the newest (from the end), or all of them
77* Letting server-side compaction or context editing trim the history
78* Moving `cache_control` markers
79* Changing `effort` between requests
7480 
75To keep thinking valid across a long session, treat the conversation as append-only. Add instructions with a [mid-conversation system message](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages) (a [turn-scoped system message](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#turn-scoped-system-messages-beta) if it should apply to one turn only) and change tools with [mid-conversation tool changes](https://platform.claude.com/docs/en/build-with-claude/mid-conversation-system-messages#mid-conversation-tool-changes) rather than editing `system` or `tools`. Trim context with server-side [context editing](https://platform.claude.com/docs/en/build-with-claude/context-editing) or [compaction](https://platform.claude.com/docs/en/build-with-claude/compaction), which don’t count as edits. These patterns also keep the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) warm. To find out whether your integration edits history, run a session with `prefix_mismatch_behavior: "drop_block"` and log `input_transformations`: the migration guide has the three-step [history-editing check](https://platform.claude.com/docs/en/models/fable-5-1/migration-guide#fable-5-1-preserved-thinking). See [Keeping the prefix unchanged](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#prefix-check) for the full rules.
81When a request sends back an invalid block, `thinking.block_binding.prefix_mismatch_behavior` (beta header `thinking-binding-controls-2026-08-01`) determines what happens. `"error"` rejects the request with a 400 error whose message says `The block is bound to a different conversation`. `"drop_block"` drops the block and every thinking block after it, and the request succeeds. The response lists each drop in `input_transformations` with `reason: "prefix_binding_mismatch"`. When a request leaves the field unset, the API returns the 400 error on Claude Mythos 5.1. On Claude Fable 5.1, it returns the error for accounts created on or after August 31, 2026. [When `prefix_mismatch_behavior` is unset](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#enforcement) has the full table.
7682 
7783### Some advisor tool pairings are not supported
7884 
from line 497
491497 
4924981. Remove any `tool_choice` of type `any` or `tool`. Move schema enforcement to [strict tool use](https://platform.claude.com/docs/en/agents-and-tools/tool-use/strict-tool-use) with `tool_choice: {"type": "auto"}` or to [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).
4934992. If you use the advisor tool (beta), choose an advisor at least as capable as Claude Fable 5.1. See [Some advisor tool pairings are not supported](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#advisor-tool-pairings).
4943. Pass thinking blocks back unchanged and keep the history append-only. If your code builds the `messages` array itself, run the [history-editing check](https://platform.claude.com/docs/en/models/fable-5-1/migration-guide#fable-5-1-preserved-thinking): move per-turn reminders you currently inject and delete to [turn-scoped system messages](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#turn-scoped-system-messages-beta), move `system` and `tools` changes to mid-conversation system messages, trim context server-side or strip thinking blocks from turns you carry across a client-side summary, then pick a production [`prefix_mismatch_behavior`](https://platform.claude.com/docs/en/build-with-claude/thinking#preserved-thinking-controls) and monitor `input_transformations`.
5003. Pass thinking blocks back unchanged and keep the history append-only. If your code builds the `messages` array itself, run the migration guide’s [three-step check](https://platform.claude.com/docs/en/models/fable-5-1/migration-guide#fable-5-1-check-integration). Move per-turn reminders you inject and delete to [turn-scoped system messages](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#turn-scoped-system-messages-beta), and move `system` and `tools` changes to mid-conversation system messages. Trim context server-side, or strip thinking blocks from turns you carry across a client-side summary. Then set [`prefix_mismatch_behavior`](https://platform.claude.com/docs/en/build-with-claude/thinking#preserved-thinking-controls) on every production request and monitor `input_transformations`.
4955014. Re-tune effort from the default (`high`), and consider [changing it mid-conversation](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#change-effort-mid-conversation-beta) instead of holding one level for the whole session.
4965025. In agent loops, watch for one tool call in each turn where Claude Fable 5 batched several, and add the per-turn note from [Prompting Claude Fable 5.1](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-fable-5-1).
4975036. Re-run your evals. Refusal handling, fallback, fallback credit, and the tokenizer carry over unchanged. Cache reads cost less (see [cache read prices](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#pricing)), and default behavior differs in the ways listed under [Changed from Claude Fable 5](https://platform.claude.com/docs/en/models/fable-5-1/whats-new-fable-5-1#changed-from-claude-fable-5).
Feedback