Build1 publisher3 min readPublished
A dev.to tutorial documents the new schema: thinking is permanently on, depth comes from a five-step effort enum, and clients that computed a token budget have to be recalibrated by hand rather than translated.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
A validation error is the cheapest kind of breaking change. The old thinking block does not quietly degrade to a default on Fable 5; per the dev.to tutorial documenting the updated schema, it fails at the API boundary, as does any `budget_tokens` field [3][13]. A schema that accepted those fields and ignored them would have left teams shipping requests whose reasoning spend they could not account for. Failing closed is the right call here.
The grep is the easy half. `budget_tokens` was a number, and the tutorial describes the new `effort` field as the single value that replaces that token-budget dial [8]. `effort` has five stops: low, medium, high, xhigh, max [2]. So five discrete settings now stand in for an integer [9]. If your client derived a thinking budget from prompt length, from a per-tenant quota, or from a latency SLO, none of that arithmetic carries across, because the source names no token count for any effort level and no equivalence table between the two [7]. Each call site gets a level chosen by measurement.
The accounting inside `max_tokens` changes shape too. The guidance is to leave enough of `max_tokens` for the final answer at higher effort levels [6], which is a heuristic without a number attached: you no longer set the size of the thinking phase, so you cannot subtract it. The worked example pairs `max_tokens: 8192` with `effort: "high"` [10]. Treat that as one data point from someone else's prompt. For it to transfer, your answers would have to be about as long as that example's and your effort level no higher, and at `max` neither assumption holds by default.
Two smaller edges. Thinking arrives in streams as content blocks carrying `thinking_delta` deltas, so a parser that switches on block type needs a branch for it [11]. And caching system prompts is offered as the lever for reducing redundant thinking cycles [12], which is now the main billing control you have, since the direct one was removed.
What the material supports and what it does not is worth being exact about. It supports the enum, the 400, the always-on behaviour, the adaptive option, and a blast radius that also covers Opus 4.7 and 4.8 [1][2][3][4][5]. It contains no latency figures, no prices, and no per-level token consumption [7]. It is also a single publisher's tutorial rather than Anthropic's own reference [13]. That is enough to plan a code change and not enough to plan capacity.
The upside of a deleted parameter is that nobody can misconfigure it. The cost is that the migration runs in two passes: strip every `thinking` and `budget_tokens` field, then re-pick an effort level per route while watching for truncated answers. The first pass is mechanical; the second is where the week goes.
Ranked by verification strength, evidence, and original report placement.
Server streams deliver thinking content blocks with thinking_delta deltas, which clients must handle in real time.
Claude Fable 5 keeps deep thinking switched on for every request; thinking is always active and cannot be switched off.
Reasoning depth on Fable 5 is set through an output_config block whose effort field accepts "low", "medium", "high", "xhigh" or "max".
Passing thinking: {type: "enabled"}, thinking: {type: "disabled"}, or any budget_tokens value returns an HTTP 400 error on Fable 5, because those parameters were removed.
Callers either omit the thinking block entirely or pass {type: "adaptive"}; adaptive thinking runs on every request.
The guidance is to leave enough of max_tokens for the final answer when effort is set higher.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One tutorial, no vendor trail
Every specific — the output_config block, the five effort values, the status code — comes from a single dev.to post by an integration shop, which links to Anthropic's developer documentation in general terms rather than to any note announcing the removal. It sits this high rather than lower because the claims are exact and falsifiable: send a budget_tokens field and the API answers. Nobody in our coverage has done that, and the model name itself remains uncorroborated.
Adoption unverified
What we have here is a schema description rather than deployment evidence. No one in our coverage reports shipping against Fable 5, no traffic, download or customer figure appears, and the code sample is illustrative, so there is nothing here to measure.
Adjectives outrun the parameters
The mechanics are stated plainly and would be easy to verify; the surrounding copy is where the stretch lives. Always-on thinking is called the core innovation and credited with drastically improved accuracy for maths, coding and logic, and caching is offered as billing relief, none of it with a benchmark, a latency band or a price. The overstatement is in the framing rather than in the field names.
Migration guide with a sales button
The post is agency work: a call-to-action for its own AI integration services appears mid-article, and it links twice to the author's other guides. That does not make the field names wrong, but it explains why a breaking change gets documented fast by someone whose business is repairing broken clients, and why the confident passages are the ones a consultancy sells against.
Held loosely, settled by one call
One publisher, no corroboration, and a model name that appears nowhere else in our sources, yet each claim names an exact field and an exact failure code, so a single request against the API would confirm or sink most of this reporting.
build
Fable 5.1 binds each thinking block to the exact bytes of the prefix that produced it1 publisher
build
Claude's system prompt grew ninefold in two years. Version yours like code.1 publisher
build
SSE in Go breaks twice before your handler runs: an illegal header, then a 30-second timeout1 publisher
build
Anthropic's 24 August incident took claude.ai, the API, Claude Code and Cowork down together1 publisher
Publishers with included, body-backed reporting in this cluster.
1 article · September 7, 2026