Claude Fable 5's Official Prompting Guide: A Dozen Copy-Paste Fixes, From Overplanning to Fake Progress Reports

Anthropic's official doc teaches you how to tune system prompts and engineering scaffolding for the new model — the same methods apply to Claude Mythos 5
By Anthropic 官方文档07-02 · 9 min read⚑ Tutorial / how-to
Deep Dive · XiaoHu Explains
60-Second Overview
  • Anthropic released an official prompt-engineering guide for Claude Fable 5 and Claude Mythos 5, listing this generation's behavioral differences from Claude Opus 4.8 and how to adjust your prompts and engineering scaffolding accordingly
  • The guide gives a dozen-plus instruction snippets you can paste straight into your system prompt — for curbing overplanning, blocking unsolicited refactors, trimming verbose output, and drawing the line on when the model should actually stop and ask
  • One audit-style instruction requires the model to verify its progress claims against this session's actual tool-call results before reporting. Anthropic says this nearly eliminated fabricated status reports on tasks specifically designed to elicit them
  • The guide recommends adding a send_to_user tool for long-horizon async agents, so content that must reach the user verbatim skips summarization entirely
  • A warning: if your prompt asks the model to restate its internal reasoning inside the reply text, it may trigger Fable 5's reasoning_extraction refusal category, causing the request to auto-downgrade to Claude Opus 4.8
⚑A note on stance: this is Anthropic's own official product documentation, written to help you get the most out of their new model. The capability claims in it — and conclusions like "nearly eliminated" or "correct on the first try" — come from the vendor's internal testing and early-tester feedback, unverified by any third party. What follows is a faithful retelling of the document's content and its copy-paste instructions, nothing more.
1Background · What It Is

What Problem This Doc Solves

Anthropic recently released an official prompt-engineering guide for Claude Fable 5 and Claude Mythos 5, summarizing how this generation's behavior differs from Claude Opus 4.8, and what to change in your prompts and engineering scaffolding as a result.

In plain terms, this is a tuning manual: the new model is more capable, but a few default behaviors have changed, and reusing your old prompts and old engineering frameworks as-is will trip you up. The doc pairs every behavior change with an instruction snippet you can paste straight into your system prompt.

🎯Why it's worth reading: it doesn't just talk technique in generalities — it hands you a dozen-plus ready-to-use instruction snippets, one of which (the audit-style instruction) nearly wiped out fabricated status reports on internal test tasks specifically designed to induce the model to make things up. You don't have to trial-and-error your way to these settings yourself.
lowmedhighxhigh
First, pick the right effort tier
→
✓✓✓✓
Then get it to run the long haul — minutes to hours — verifying evidence before every progress report. Those two things are the spine of this whole guide

Where it beats the previous generation (quick pass)

The doc lists seven improvements over Claude Opus 4.8. Quick one-liners each, no deep dive:

  • Long-horizon autonomy: works unsupervised for hours to days without losing the thread of what it originally set out to do
  • Correct on the first try: systems that used to take days of iteration reportedly came out right in a single pass for early testers (per tester accounts)
  • Visual understanding: reads dense technical diagrams, web apps, and detailed screenshots more accurately, with more token-efficient output; uses bash and cropping tools to handle rotated, blurry, or noisy images
  • Enterprise workflows: sticks to instructions better and produces more professional output on financial analysis, spreadsheets, slides, and documents, with less drift
  • Code review and debugging: notably higher bug-recall than Opus 4.8 (except in cybersecurity), and can search across codebases and history
  • Ambiguity handling: can take a messy, multi-threaded complex request and figure out the next step on its own
  • Subagent collaboration: dispatches parallel subagents more readily, and holds up better in sustained async communication with long-running subagents and peer agents

It also runs safety classifiers that block three categories of requests: offensive cybersecurity (building exploits, malware, attack tools), biology and life sciences (experimental methods, molecular mechanisms), and extracting the model's internal summarized reasoning. Legitimate adjacent work can get caught by mistake too. You can configure a server-side or client-side fallback so refused requests automatically fall back to Claude Opus 4.8.

2Fixing Overplanning

Fixing Overplanning: One Line to Make It Act Once It Has Enough

Whenever a task gets ambiguous or effort is set high, Fable 5 tends to overthink: re-deriving facts already established in the conversation, listing options it was never going to take anyway, dragging out the preamble. The instruction below tells it to act as soon as it has enough information.

Without the instruction
  • Re-states known facts, re-litigates decisions already made in the conversation
  • Lists a bunch of options it was never going to pursue
  • Long-winded root-cause explanations, way more preamble than conclusion
With "act once you have enough"
  • Acts as soon as it has enough information
  • Gives one recommendation for a trade-off, not an exhaustive list
  • Leads with the conclusion, keeps reasoning in the thinking block
Stops it from overplanning, re-stating known facts, or narrating options it won't pursue
When you have enough information to act, act. Do not re-derive facts already established in the conversation, re-litigate a decision the user has already made, or narrate options you will not pursue in user-facing messages. If you are weighing a choice, give a recommendation, not an exhaustive survey. This does not apply to thinking blocks.

A related engineering-side note that pairs with this section: long-horizon autonomy means the model can work unsupervised for a long stretch — hours or even days without losing the thread. The trade-off is that a single request runs longer: at higher effort, on tasks that require gathering context and self-verification, one request may take dozens of minutes, and autonomous runs may stretch to hours. Before migrating, tune your client-side timeouts, streaming display, and user-facing progress indicators accordingly — ideally switch your engineering framework to periodic async polling of task status instead of blocking and waiting for a hard return.

3Effort Tiers

How to Set the Effort Tier, and How to Stop It From Refactoring Code on Its Own

Effort is Fable 5's main dial for balancing "smart, slow, expensive," with four tiers: low, medium, high, xhigh. Default to high; use xhigh for the most capability-hungry tasks; dial down to medium or low for routine work. The key point: this generation's low tier often beats the previous generation's xhigh. If a task gets done but slower than it needs to be, drop a tier. Click each tier below to see what it's for.

low
Fastest, cheapest — for routine, light work. Drop here when you want speed and a more conversational feel; performance still holds up well, often beating the previous generation's xhigh.
Smarts
Latency
Cost
medium
Another option for routine work. Drop here from high when a task gets done but is slower than it needs to be, to trade for speed.
Smarts
Latency
Cost
high (default)
The default tier for most tasks. Already delivers strong verification behavior, complex reasoning, and the most rigorous output. The trade-off: on routine work it may gather context and think more than the task actually calls for.
Smarts
Latency
Cost
xhigh
Reserved for the most capability-hungry tasks. Smartest, slowest, priciest — and most prone to overthinking routine work.
Smarts
Latency
Cost
Three bars showing relative position only — not official figures, meant only to convey "higher tier = smarter but slower and pricier"
An analogy

Effort works like a camera's focus mode: auto is fine for everyday shots, and you only switch to manual precision focus for the hardest shot. Higher isn't always better — you push it up only for the harder work.

Bumping the tier up has a side effect: at higher effort, Fable 5 tends to do extra work on its own — adding features, refactoring, adding unnecessary validation. To stop this "cleanup on its own initiative," add the snippet below:

Stops it from adding features, refactoring, or adding unnecessary validation on its own at higher effort tiers
Don't add features, refactor, or introduce abstractions beyond what the task requires. A bug fix doesn't need surrounding cleanup and a one-shot operation usually doesn't need a helper. Don't design for hypothetical future requirements: do the simplest thing that works well. Avoid premature abstraction and half-finished implementations. Don't add error handling, fallbacks, or validation for scenarios that cannot happen. Trust internal code and framework guarantees. Only validate at system boundaries (user input, external APIs). Don't use feature flags or backwards-compatibility shims when you can just change the code.
4 tiers
Effort splits into low / medium / high / xhigh; the official recommendation is high by default for most tasks, xhigh for the most capability-hungry ones, and lower for routine work
low > prior high
Fable 5's low-effort setting still performs well, often beating the previous generation's xhigh performance
4Output and Pausing

Making Summaries Sound Human, and Knowing When to Actually Stop and Ask

This generation follows instructions so tightly that one line can steer a whole category of behavior — no need to spell out every case individually. This section gives two: one to fix verbosity, one to draw the line on when the model should genuinely stop and ask the user.

Left unconstrained, Fable 5 tends to sprawl: reviewing options it won't take, long-winded root-cause explanations, heavily structured PR descriptions, a comment on every line explaining what the next line does. A short precision instruction works just as well as listing every individual quirk:

Makes replies lead with the outcome, without compressing into arrow-chain jargon
Lead with the outcome. Your first sentence after finishing should answer "what happened" or "what did you find": the thing the user would ask for if they said "just give me the TLDR." Supporting detail and reasoning come after. Being readable and being concise are different things, and readability matters more.

The way to keep output short is to be selective about what you include (drop details that don't change what the reader would do next), not to compress the writing into fragments, abbreviations, arrow chains like A → B → fails, or jargon.

The same goes for "pausing to ask the user" in long workflows — you don't need to enumerate every scenario. Only three situations genuinely call for a stop: an irreversible or destructive action, a real scope change, or information only the user can provide. Hit one of these, ask, and end the turn — rather than dropping a promise and stopping mid-stream.

Draws the line on when the model should genuinely stop and ask the user
Pause for the user only when the work genuinely requires them: a destructive or irreversible action, a real scope change, or input that only they can provide. If you hit one of these, ask and end the turn, rather than ending on a promise.
5Fixing Fake Progress · Core

Fixing Fake Progress Reports: Make It Back Up Claims With Evidence

When running long autonomously, the model can fabricate progress reports — claiming a step is done when it isn't. Anthropic's fix: have it self-audit before reporting. Every claim gets checked against an actual tool-call result from this session, and anything unverified must be stated explicitly.

A Rare Paragraph With Effect Data

This is one of the few places in the whole doc where Anthropic gives actual effect data. They say that on test tasks specifically designed to elicit fabricated progress, adding this audit-style instruction nearly wiped out fabricated status reports.

① Claim: a step is complete
↓
② Go back through this session, dig up the matching tool-call result
↓Compare line by line
Evidence found
Write it into the report, state the conclusion plainly, no hedging
No evidence
Mark it explicitly in the report: not yet verified
↺ Next claim, repeat the check
The audit-style instruction for fixing fake progress reports
Before reporting progress, audit each claim against a tool result from this session. Only report work you can point to evidence for; if something is not yet verified, say so explicitly. Report outcomes faithfully: if tests fail, say so with the output; if a step was skipped, say that; when something is done and verified, state it plainly without hedging.
Nearly eliminated
After adding the audit-style verification instruction, fabricated status reports nearly vanished on test tasks specifically designed to elicit fabricated progress (Anthropic internal test results)
Days → correct in one pass
Early testers report that some systems that used to need days of iteration got correct in a single pass with Fable 5 (tester reports, not an official benchmark)
6Action Boundaries

Drawing the Line: Don't Take Action While Just Analyzing

Fable 5 occasionally acts on its own initiative — drafting an email nobody asked for, or creating a "just in case" git branch as a backup. The instruction below stops that, separating "should report" from "should act."

Two core boundaries. First: when the user is describing a problem, asking a question, or thinking out loud rather than requesting a change, the deliverable is your assessment — report it and stop, don't go fix things before anyone's asked. Second: before running a command that changes system state (restart, delete, config edit), confirm the evidence actually supports that specific action — a signal that pattern-matches a known failure might have a different cause.

Draws the action boundary, so it doesn't act on its own while just analyzing a problem
When the user is describing a problem, asking a question, or thinking out loud rather than requesting a change, the deliverable is your assessment. Report your findings and stop. Don't apply a fix until they ask for one. Before running a command that changes system state (restarts, deletes, config edits), check that the evidence actually supports that specific action. A signal that pattern-matches to a known failure may have a different cause.
7Subagents · Memory

Using Parallel Subagents Well, and Building a Self-Accumulating Memory System

Fable 5 dispatches parallel subagents more readily than the previous generation, and holds up better in sustained async communication with long-running subagents. It comes down to three things: dispatch more, be clear about when to delegate, and receive messages asynchronously instead of blocking on each subagent returning one by one. Click below to compare the old and new orchestration styles.

Orchestrator→Subagent A⏳ wait for returnSubagent B⏳ wait againSubagent C
Serial: every step is blocked on the previous subagent returning. Total time is the sum of every subagent — the slowest one drags down the whole thing.
Orchestrator⇉ dispatch at onceSubagent ASubagent BSubagent C↩ receive asyncOrchestrator keeps working
Parallel: dispatch every independent subtask at once, orchestrator doesn't block and keeps moving forward — whoever finishes reports back asynchronously. Long-running subagents keep context across subtasks, saving time and cost via cached reads, and don't get stuck waiting on the slowest one. Step in only if a subagent goes off track or lacks context.
Encourages it to use parallel subagents more, without blocking and waiting
Delegate independent subtasks to subagents and keep working while they run. Intervene if a subagent goes off track or is missing relevant context.

Now give it a memory system that accumulates experience

Fable 5 does especially well when it "can record past lessons and reference them later." Give it somewhere to write notes — a single Markdown file is enough. The writing rules:

Writing rules for building the memory system
Store one lesson per file with a one-line summary at the top. Record corrections and confirmed approaches alike, including why they mattered. Don't save what the repo or chat history already records; update an existing note rather than creating a duplicate; delete notes that turn out to be wrong.

If you want to cold-start this memory from existing session history, have it review past sessions, use subagents to distill themes and lessons, and store them in a designated file:

Cold-starting the memory system from session history
Reflect on the previous sessions we've had together. Use subagents to identify core themes and lessons, and store them in [X]. Make sure you know to reference [X] for future use.
8Preventing Drop-Off

Keeping It From Stalling: No Getting Stuck Waiting for Permission Mid-Run

Two small quirks that only surface occasionally in very long sessions, each with a fix from the doc.

First: late in a conversation, it may state "I'll go run X now" without actually issuing the matching tool call, or stop and ask "want me to…?" even when it already has enough information. A simple "continue" or "go ahead and do it end to end" gets it moving again. Add the system reminder below to autonomous pipelines to prevent this at the root:

System reminder to prevent it from stalling to ask permission mid-run in autonomous pipelines
You are operating autonomously. The user is not watching in real time and cannot answer questions mid-task, so asking "Want me to…?" or "Shall I…?" will block the work. For reversible actions that follow from the original request, proceed without asking. Offering follow-ups after the task is done is fine; asking permission after already discussing with the user before doing the work is not. Before ending your turn, check your last paragraph. If it is a plan, an analysis, a question, a list of next steps, or a promise about work you have not done ("I'll…", "let me know when…"), do that work now with tool calls. End your turn only when the task is complete or you are blocked on input only the user can provide.

Second: in very long sessions, it may occasionally propose starting a new session, offer to summarize and hand off, or cut its own workload short on its own initiative. This is usually triggered by the engineering framework showing the model a "remaining token countdown." Try not to expose the specific context-remaining number to it; if the framework must display it, add a reassuring line:

A reassuring line to stop it from proactively suggesting a stop when it sees a context countdown
You have ample context remaining. Do not stop, summarize, or suggest a new session on account of context limits. Continue the work.
9Channels and Landing

Explaining the "Why," a Dedicated User-Facing Channel, and a Final Checklist

The last two improvements plus a dedicated channel, then a landing checklist to wrap up.

Add the "why" to your requests

Fable 5 performs better when it understands the intent behind a request: with that context, it can tie the task to relevant information rather than guessing at intent on its own. This matters especially for long-running agents driving multiple workflows — tell it why you're asking:

A template for adding the "why" to a request
I'm working on [the larger task] for [who it's for]. They need [what the output enables]. With that in mind: [request].

Speak plainly when wrapping up a long session

In agent conversations heavy with tool calls and context, Fable 5 tends to produce hard-to-read text: dense arrow-chain jargon, implementation details buried deep, references to internal thinking the user never saw, overly technical phrasing. Add a communication-style addendum to make it switch back to plain language for the final summary, instead of continuing the working shorthand:

Makes it speak plainly when wrapping up a long session, instead of continuing working jargon
Terse shorthand is fine between tool calls (that's you thinking out loud, and brevity there is good). Your final summary is different: it's for a reader who didn't see any of that.

If you've been working for a while without the user watching (overnight, across many tool calls, since they last spoke), your final message is their first look at any of it. Write it as a re-grounding, not a continuation of your working thread: the outcome first, then the one or two things you need from them, each explained as if new. The vocabulary you built up while working is yours, not theirs; leave it behind unless you re-introduce it.

When you write the summary at the end, drop the working shorthand. Write complete sentences. Spell out terms. Don't use arrow chains, hyphen-stacked compounds, or labels you made up earlier. When you mention files, commits, flags, or other identifiers, give each one its own plain-language clause. Open with the outcome: one sentence on what happened or what you found. Then the supporting detail. If you have to choose between short and clear, choose clear.

Add a dedicated user-facing channel: the send-to-user tool

For long-running async agents, give it a way to push content out mid-turn that the user must see verbatim — a deliverable (a generated code snippet, a drafted message), a progress update with concrete numbers, or a direct answer to something the user asked mid-task. The tool's input is the message to display; once the model calls it, you render the input straight to the interface, and the tool result just returns a simple confirmation. The key: the tool input is never summarized — the content arrives verbatim.

An analogy

The send-to-user tool is like handing your boss a note directly during a meeting, instead of waiting until after the meeting to relay what the note said. The content arrives intact, on the spot, with no compression along the way.

Regular text reply
Written into the turnContent is mixed in with the model's narration text
End of turnMay get summarized or compressed by the system
The user sees a summary
send_to_user tool
As tool inputContent goes into the tool call
Delivered mid-runTool input isn't summarized, turn doesn't end
The user sees the original, word for word
JSON definition of the send_to_user tool
{
  "name": "send_to_user",
  "description": "Display a message directly to the user. Use this for progress updates, partial results, or content the user must see exactly as written before the task finishes.",
  "input_schema": {
    "type": "object",
    "properties": {
      "message": {
        "type": "string",
        "description": "The content to display to the user."
      }
    },
    "required": ["message"]
  }
}

Defining the tool alone isn't enough: without a calling instruction in the system prompt, Fable 5 rarely calls it on its own. Pair it with a prompt, and restrict it to user-facing content only — don't let narration or internal reasoning leak into this channel:

Calling instruction to pair with the send_to_user tool
Between tool calls, when you have content the user must read verbatim (a partial deliverable, a direct answer to their question), call the send_to_user tool with that content. Use send_to_user only for user-facing content, not for narration or reasoning.

Landing checklist

The doc closes with a recommended set of scaffolding changes — just follow along:

  1. Set a higher difficulty ceiling. Pick a task harder than what you'd have assigned to the previous generation, and let Fable 5 scope it itself, ask clarifying questions, and execute. Testing it only on easy tasks will make you underestimate its ceiling.
  2. Explicitly schedule self-checks in long runs. An independent, fresh-context verification subagent is usually more reliable than self-critique. Add this to long-running tasks:
    Instruction template for periodic self-checks during long runs
    Establish a method for checking your own work at an interval of [X] as you build. Run this every [X interval], verifying your work with subagents against the specification.
  3. Re-audit old skills and prompts. Skills written for the previous generation are often overly granular for Fable 5, and can actually drag down output quality. A lot of that old rule-by-rule style can just be deleted — check the default behavior first. Fable 5 can also update skills on the fly as it works.
  4. Don't let it restate its internal reasoning. Verbatim-restating internal reasoning inside the reply text is a hard line for this generation. ⚠ Prompts, skills, or harness instructions that ask the model to echo, transcribe, or speak its internal reasoning as reply text may trigger Fable 5's reasoning_extraction refusal category, causing the request to auto-downgrade back to Claude Opus 4.8. When migrating, audit old skills and system prompts for instructions like "reflect" or "show your thinking" and remove them. For reasoning visibility, use the structured thinking blocks from adaptive thinking instead, and surface progress via the send-to-user tool during long runs.
  5. Install the send-to-user tool. Give long-running async agents a client-side tool that delivers messages to the user verbatim without ending the turn.
In Anthropic's testing, this nearly eliminated fabricated status reports even on tasks designed to elicit them.Prompting Claude Fable 5, official Anthropic documentation
Source: Anthropic's official documentation, "Prompting Claude Fable 5" (platform.claude.com). This piece is a Chinese-language visual explainer of that vendor documentation; the capability claims, internal test results, and early-tester feedback quoted here are all Anthropic's own self-reported figures, unverified by any third party. The same methods apply equally to Claude Mythos 5. All English instruction text inside the code blocks is verbatim from the source document, unchanged, and ready to reuse as-is.
Source
Anthropic 官方文档Anthropic 官方文档·Read the source
↑ End of article
✓ This article is free to read in full

Members can copy or download the full Markdown, and let their AI subscribe and ask.

Read the original ↗
📮 New explainers, straight to your inbox

Found this useful? Leave your email — every new explainer, the moment it's out. Unsubscribe anytime.