Two Frontier Tiers, One Decision
Claude Fable 5.1 sits at the top of Anthropic's lineup as its most capable widely released model. Claude Opus 5.5 is the newest release in the Opus line, succeeding Opus 5 at a lower price ($4 / $20 per million tokens versus Opus 5's $5 / $25). On paper the two look similar: both accept up to 1M tokens of context, both produce up to 128K output tokens, and both think adaptively on every request. The real difference is where they sit on the cost-capability curve, and that's the decision every AI product team now has to make deliberately rather than by habit.
The Side-by-Side That Matters
Price: Opus 5.5 is $4 input / $20 output per million tokens, with cache reads at $0.20; Fable 5.1 is $10 / $50, with cache reads at $0.25. Context and output: identical at 1M context and 128K output. Thinking: always on for both, with effort (low, medium, high, xhigh, max) as the only lever for depth, latency, and cost. Speed: Opus 5.5 offers a fast mode on the Claude API at $8 / $40 per million tokens; Fable 5.1 does not. Data handling: Fable 5.1 requires 30-day data retention and isn't available under zero data retention unless Anthropic expressly authorizes it, which matters for regulated clients in legal, health, and finance. Behavior: Fable 5.1 turns on hard problems can run for many minutes, so your UX needs streaming and progress states, not a spinner.
When We Reach for Fable 5.1
We route to Fable 5.1 when a wrong answer is expensive and the task genuinely needs the extra reasoning headroom: multi-step research across large document sets, long-horizon autonomous agents that plan and execute over many tool calls, complex code migrations spanning a whole repository, and analysis where a subtle mistake reaches a client's customers. In those cases the 2.5x token premium is small compared to the cost of an engineer cleaning up a confidently wrong result. We judge cost per completed task, not per request: a cheaper model that needs three retries isn't cheaper.
When Opus 5.5 Is the Right Call
For most production traffic, Opus 5.5 is where we start. In-app copilots, RAG-grounded support assistants, agentic workflow steps like dispatch triage, document extraction, and day-to-day coding agents all sit comfortably inside its capability range. At $4 / $20 it's the cheapest Opus-tier model Anthropic has shipped, and fast mode gives latency-sensitive features a way to cut wait time without dropping to a smaller model. One detail to watch when migrating: Opus 5.5 defaults to medium effort where Opus 5 defaulted to high, so a route that 'just worked' on Opus 5 can feel shallower until you set effort explicitly.
Routing Between Them in Code
Rather than picking one model for an entire product, we route per task. Routine, high-volume calls go to Opus 5.5 at low or medium effort; tasks flagged as high-stakes or that failed an evaluation check escalate to Fable 5.1. Keep each route on one model for the whole conversation where you can: prompt caches are model-scoped, and thinking blocks don't carry cleanly between the two families, so a mid-conversation switch costs both cache hits and reasoning context.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
type Tier = "standard" | "critical";
const ROUTES = {
standard: { model: "claude-opus-5-5", effort: "medium" },
critical: { model: "claude-fable-5-1", effort: "high" },
} as const;
export async function runTask(tier: Tier, system: string, prompt: string) {
const { model, effort } = ROUTES[tier];
const stream = client.messages.stream({
model,
max_tokens: 64000,
output_config: { effort },
system,
messages: [{ role: "user", content: prompt }],
});
const message = await stream.finalMessage();
if (message.stop_reason === "refusal") {
throw new Error(`Request declined: ${message.stop_details?.category}`);
}
return message;
}Migration Gotchas We've Hit
Both models reject a few patterns older integrations relied on. Forced tool use (tool_choice 'any' or a named tool) returns a 400 on both, so switch to 'auto' with strict tool schemas and an explicit instruction in the prompt, then check that the call actually happened. Thinking can't be disabled on either model; lower effort instead. Assistant-message prefill is gone, so use structured outputs for JSON. And if your code edits earlier turns of a conversation (injecting and later removing reminders, swapping the system prompt mid-session), move to an append-only history: both models tie thinking blocks to the exact conversation that produced them.
Our Recommendation
Start every new build on Claude Opus 5.5 with effort set explicitly per route. Build a small evaluation set from real user tasks before launch, and only promote a task type to Claude Fable 5.1 when the eval shows Opus 5.5 missing the bar at high or xhigh effort. That keeps the default bill low, gives you evidence for every dollar spent on the top tier, and makes the next model upgrade a measured change instead of a guess.
