Anthropic's official Opus 5 prompting guide is mostly about what to delete

Eight prompts you can copy straight into production, plus one counterintuitive catch: tell it to report only high-severity issues and it may genuinely report fewer.
By Anthropic 官方文档07-25 · 10 min read⚑ Tutorial / how-to
🎧 Listen to the podcast0:00 / --:--
0:00 / --:--
Deep dive · XiaoHu explains
The one-minute version
  • Anthropic published a page devoted to one question: which lines of your existing prompts need to change once you move to Opus 5. The strangest part is that three of its eight sections are about taking things out
  • Top of the delete list: "add a verification step at the end" and "use a subagent to double-check." Opus 5 already verifies itself, so these carryovers from the previous generation just make it verify twice — more tokens, same quality
  • Code review prompts need the opposite instinct. Write "report only high-severity issues" or "be conservative" and it may take you literally. The fix is to let it report everything and filter in a separate pass
  • It talks more than its predecessor, narrates more, and delegates to subagents more eagerly. The doc supplies eight copy-paste prompts, one per symptom
  • Thinking is now on by default. You can only disable it at high effort or below (low through max are the five effort levels; full table in section 8) — pair disabled thinking with xhigh or max and the API returns a 400
⚑ The material comes from Anthropic's own documentation, describing how to tune its own model — capability claims and recommended settings are self-reported. The five-level breakdown, error details, and cache minimum come from the Effort docs and migration guide on the same site; the text flags each one where it appears.
1 What this is

A document that tells you to delete things

If your system prompt contains a line like "after completing the task, add a verification step," it started costing you money the moment you switched to Claude Opus 5.

Anthropic wrote a standalone prompting page for Opus 5 — eight sections, a bit over 1,500 words. Three of those sections are about removing things from your prompt.

The same system prompt, after moving to Opus 5
−
Add a verification step at the end of any non-trivial task.
Use a subagent to double-check the result.
Re-check your answer before responding.

+
Keep responses as long as they need to be, no longer.
Delegate only work that's genuinely large and parallelizable.
Deliver what was asked; don't expand the scope yourself.
All three lines on the left were written for the previous generation. Opus 5 folds those behaviors into its defaults, so keeping the lines just makes it do the work twice.

The reversal isn't hard to follow. For years the default move in prompt engineering was addition: the model wouldn't check itself, so you wrote a line forcing it to; it delivered half-finished work, so you wrote a line forcing it to finish; it wouldn't verify, so you hung a subagent off the end to review. Every one of those lines patched a weakness.

Opus 5 closed a batch of them. It verifies on its own, finishes the whole task instead of handing back a stub (no placeholder functions with a name and nothing inside), and goes back to fix its own mistakes when it spots them. Those forcing lines now force behavior it would produce anyway.

These instructions cause Claude Opus 5 to over-verify. Removing them reduces wasted tokens with no loss in quality.Prompting Claude Opus 5 · Anthropic

Worth separating this page from the Opus 5 launch announcement — they're different documents. The announcement covers how capable the model is, what it costs, and whether it's worth switching. This page covers exactly one thing: once you've switched, which lines in the prompts you inherited from the Opus 4.7 and 4.8 era need editing.

Related on this site
Claude Opus 5: half the price, close to Anthropic's own top model Fable 5 — but still behind on 5 of 12 benchmarks
2 Delete

Start by cutting every line that tells it to check its own work

This is the first thing to do in the whole document. The lines you're hunting for come in two flavors, and both will look familiar.

The first is task-level verification: "include a final verification step for any non-trivial task," "use a subagent to verify." The second is response-level self-checking: "double-check your answer," "confirm before you respond." Same treatment for both — delete.

One instruction, two generations of model
Previous generation: without this line, it really doesn't verify
Do the work
→
The pass you asked for
→
Deliver
Here the line earns its keep — it supplies the step the model was missing.
Opus 5: it already verified
Do the work
→
Its own pass
→
The pass you asked for
→
Deliver
Same output, one extra lap. The cost of that lap is real; the return is zero.

The cleanup goes beyond your prompt text. The doc calls this out specifically: if the harness you built for older models contains a separate verification stage, tear that out too. The prompt is what you say to the model; the harness is the code wrapped around it that decides when to call the model, how many times, and with what. Both layers need clearing.

Where this lands for Claude Code users

The page is written entirely from an API perspective — system prompts and outer harnesses. If you're using Opus 5 inside Claude Code, the equivalent surfaces are CLAUDE.md and your own skill files. The lines to look for read like this: "after editing code, have a subagent review it," "verify each step before moving on," "reconfirm all changes before delivering." All three should go. The doc doesn't spell out this layer; it's our extrapolation, same model and same system prompt.

3 Invert it

Ask a review prompt for "only the serious ones" and you'll get fewer

This is the least intuitive item in the guide, and the easiest one to trip over inside your own automation.

Start with what's working: Opus 5 reviews code with high precision and high recall. A large share of what it flags in any given pass is a real bug, and most of the extra findings are genuine too, not noise padding the list. More usefully, that precision holds up at lower effort settings — so you can do a cheap fast sweep first, then a deeper pass.

The trouble starts with where you put the filter. If your prompt says "report only high-severity issues" or "be conservative," Opus 5 may follow that literally and report less. The doc's fix is to move filtering out of the prompt entirely: let it report everything, then run a separate pass to filter.

Option A: filter inside the prompt
"Report only high-severity issues"
It judges severity for you. The grayed-out findings die on its lips. You never learn they existed and can't go back for them.
Option B: report all, filter in a second pass
"Report everything" + one independent filtering pass
You set the threshold. Everything is in front of you; what stays and what goes is your call, adjustable any time.
Illustrative: the number and ratio of blocks are there to show the difference between the two approaches, not to represent measured data.

Reduced to its core, the difference between the two is who decides what counts as serious. Put it in the prompt and that judgment happens inside the model, out of your view. Run it as a separate pass and the judgment stays with you.

4 Rein it in

It got wordier in three separate places, and each needs its own fix

Opus 5's user-facing responses run longer than the previous Opus. The instinct is to dial down effort and save some words, but that path doesn't work — first you need to understand what the effort parameter actually controls.

effort governs how many tokens the model is willing to spend thinking, not how much it ends up saying. Turn it down and thinking shrinks, but visible response length doesn't necessarily follow. If you want shorter answers, you have to ask for them explicitly.

Four things in a single response — the effort dial reliably moves the first one, not the other three
effort thinking dial ? ? ? Thinking effort controls this User-facing response needs its own line Documents on disk needs its own line Progress narration needs its own line
Each of the bottom three has a ready-made prompt below. Asking explicitly beats turning the dial, and all three are copy-paste.

One: the user-facing response

For multi-turn user-facing products
Keep responses focused, brief, and concise. Keep disclaimers and caveats short, and spend most of the response on the main answer. When asked to explain something, give a high-level summary unless an in-depth explanation is specifically requested.
What it does: keeps the answer tight, pushes caveats and disclaimers down to a line, and defaults to a high-level summary unless depth is explicitly requested.

If your system prompt is long, there's a companion move: append a short reminder at the end of it, paired with the block above.

Appended to the end of a long system prompt
<tone_preference>
Keep outputs reasonably concise.
</tone_preference>
What it does: a short trailing nudge toward concise output, positioned where a long prompt is most likely to be attended to.

Two: files written to disk

This is a separate problem from chat verbosity and needs its own fix. Reports, Markdown docs, and summary files that Opus 5 writes also run longer than before. If your product has it generate documents for users, give it an explicit length calibration.

Calibrating the length of documents written to disk
Match the length of written documents to what the task needs: cover the substance, but do not pad with filler sections, redundant summaries, or boilerplate.
What it does: ties document length to what the task actually requires — cover the substance, skip the filler sections, redundant summaries, and boilerplate.

Three: narration while it works

In agentic settings — where you turn it loose to run on its own — Opus 5 likes to talk: it announces what it's about to do before acting, and each message runs longer than before. To bring that down, don't order it to be quiet. Describe the rhythm and shape you want.

Dialing down narration density
Before your first tool call, say in one sentence what you're about to do. While working, give a brief update only when you find something important or change direction. When you finish, lead with the outcome: your first sentence should answer "what happened" or "what did you find," with supporting detail after it for readers who want it.
What it does: one sentence before the first tool call, brief updates only on important findings or changes of direction, and a closing message that leads with the outcome and puts detail after it.

Want it to narrate more, or in a different style? Same lever, opposite direction. There's a general craft lesson hiding here too: showing a positive example of the communication style you want beats listing a pile of don'ts.

5 Rein it in

It spawns subagents more eagerly, including for small jobs

A subagent is a chunk of work the main model hands off to a freshly spawned instance, which finishes it independently and hands the result back. Each instance reads its own copy of the context and generates its own output, burning its own tokens.

Opus 5 delegates more readily than its predecessor. On genuinely independent, substantial tasks — a wide investigation spanning many files, say — that pays off. On small tasks, cost and time multiply.

Doing it itself
Main model
One context
One generation cost
Done and delivered
Three subagents on the same small job
Agent 1
Agent 2
Agent 3
Three reads of the context
Three generation costs
Finish time set by the slowest
Constraining subagent use
Delegate to a subagent only for large tasks that are genuinely independent and parallelizable, such as a wide multi-file investigation. Do not delegate work you can finish yourself in a handful of tool calls, and do not use subagents to verify or double-check your own work. If one subagent can complete the task, use one rather than several, and keep spawn counts low.
What it does: reserves delegation for large, genuinely parallelizable work like wide multi-file investigation; blocks handing off anything you could finish in a few tool calls; blocks subagents used for self-verification; and caps spawn counts at the minimum that works.

One line in that block links back to section 2: do not use subagents to verify your own work. The same habit gets blocked twice — once at the verification behavior itself, once at the delegation habit that carries it.

There's a harder version too: if your harness supports it, hard-code the maximum number of subagents. The prompt persuades; a cap in the harness enforces. For cost-sensitive setups, do both.

6 Rein it in

It will expand the job on its own

Beyond over-verifying, Opus 5 also broadens task scope by itself: adding steps nobody asked for, or applying its own judgment to redefine what the task should be. For narrow, well-defined tasks, you need to nail the boundary down.

The block the doc supplies here is the longest and most carefully constructed of the eight. It defends against four different kinds of drift at once — worth unpacking sentence by sentence:

Deliver what was asked, at the scope intended.
The thesis statement. It guards against both expansion and quiet shrinkage.
Make routine judgment calls yourself, and check in only when different readings of the request would lead to materially different work.
Guards the opposite extreme. Once you pin the boundary down, the model can start asking permission at every step. This sets an explicit bar for when a question is warranted.
If the request seems mistaken or a better approach exists, say so in a sentence and continue with the task as asked rather than quietly narrowing, widening, or transforming it.
It may object; it may not act on the objection. The second half names three specific failure modes by name: narrowing, widening, transforming.
Finish the whole task, and stop short of actions that are clearly beyond what was asked.
Two rails at once: finish everything, and stop at the line.

The phrasing here sits very close to several passages in Claude Code's default system prompt — that's our observation, not something the doc addresses. If you've written similar boundary constraints into your own project, you can diff them against this and fill in what's missing.

7 Mechanics

Thinking is on by default, and turning it off invites two failure modes

There's one real mechanical change between Opus 5 and the previous generation. On Opus 4.8, omitting the thinking field meant no thinking. On Opus 5, that same request runs with thinking on. To get the old behavior, you have to add thinking: {"type": "disabled"} yourself.

And that switch is conditional: disabling thinking is only allowed when effort is high or below. Pair it with xhigh or max and you get a 400 back, validated per request. (The error code and the per-request validation come from Anthropic's migration guide; the effort ceiling itself is stated in the prompting page.)

Once thinking is actually off, two problems surface occasionally. The first is the expensive one, because it's silent.

How a tool call can vanish with thinking disabled
1
The model prepares to call a tool
2
It writes that call as prose for a human instead of a structured call your code can parse
3
Your code finds nothing where the call should have been
4
The turn ends normally, with no error — the call simply never happened
5
The fake call stays in the conversation history
6
Every later turn reads it, and the damage propagates forward

This shows up most often in tool-heavy work — search tasks, for example. The second failure mode is easier to spot: the model leaks internal tags like <thinking> into the response users can see.

That second one comes with a counterintuitive trap. If your system prompt contains a rule telling the model "do not think" or "do not reason," delete it — that kind of instruction makes the tag leakage worse. By the same logic, naming the thinking tag specifically works less well than a generic phrasing, which is why the mitigation block below doesn't mention a single tag name.

The preferred fix is not to disable it

For both failure modes, the first recommendation isn't a mitigation at all. Leave thinking on and use a lower effort level to control cost. In Anthropic's words: on most tasks, running low effort with thinking enabled outperforms disabling thinking at roughly the same price.

If you must disable thinking, this block covers both failure modes
When you use a tool, you may say a brief sentence first. If no tool can express what the user asked for, say so instead of guessing. Do not include internal or system XML tags in your response.
What it does: permits a short sentence before a tool call, gives the model an honest exit when no tool fits, and bans internal or system XML tags from the response.

Each sentence targets one cause. The first grants permission to speak before calling a tool, so the model doesn't have to cram its prose into the call. The second offers an escape route when no tool fits, so it doesn't force one. The third is a general tag ban that names no specific tag.

8 Effort levels

Picking among five effort levels, and the combination that returns a 400

The prompting guide itself covers effort in a single paragraph; the full table lives in Anthropic's Effort documentation. The material in this section comes mainly from that page and the migration guide, not from the prompting guide.

LevelWhat it isTypical use
maxPeak capability, no constraint on token spendTasks needing the deepest reasoning and most thorough analysis. Thinking cannot be disabled here
xhighCapability extended for long-horizon workCoding and agentic runs over 30 minutes with token budgets in the millions. Thinking cannot be disabled here
highHigh capability; equivalent to omitting the parameter (the default)Complex reasoning, hard coding problems, agentic tasks
mediumBalanced, with moderate token savingsAgentic tasks that need a balance of speed, cost, and quality
lowLeanest; substantial token savings with some capability dropSimple tasks where speed and cost matter most — subagents, for instance

The recommendation for Opus 5: start at the default high, then move in either direction based on your own evals. Push hard coding and agentic work up to xhigh, and reserve max for tasks worth spending anything on. Use low and medium freely — as long as your evals show quality holding, treat them as your first lever for controlling token cost and latency.

That starting point differs from the previous generation, which is worth calling out. Anthropic's official advice for Opus 4.8 was to start coding and agentic work at xhigh; for Opus 5 it's "start at high." The same capability rundown adds another line: low and medium now deliver strong quality at a fraction of the tokens and latency of the higher levels.

400
The error the API returns for disabled thinking plus xhigh or max, validated per request
64k
Recommended starting max_tokens for xhigh or max — it caps thinking and response combined
512
Minimum prompt length (tokens) eligible for caching; it was 1024 on Opus 4.8

Prompt caching stores the unchanging opening of your prompt so that sending it again costs neither compute nor wait time. Dropping the threshold from 1024 to 512 means prompts that were previously too short to cache now qualify.

Three follow-up moves, all of which come up in any automated pipeline. First, when migrating from an older model, don't copy your old effort settings across — assemble a set of the real tasks you run most and compare old settings against new. Second, tasks that ran without thinking on Opus 4.8 will now run with it, and since max_tokens caps thinking plus response together, that value needs another look. Third, changing effort invalidates the prompt cache: in a long cache-dependent session, pick a level at the start and stay there — switch between tasks, not mid-task.

Related on this site
Claude Fable 5's official prompting guide: a dozen copy-paste fixes, from over-planning to fake progress reports
9 Takeaways

The one-pager: what to cut from your old prompts, and what to add

Everything above, compressed into a list you can act on. The three deletions come first because they cost nothing and pay off immediately.

✅ Opus 5 prompt overhaul checklist
All eight English prompts you can paste straight into a system prompt live in the code blocks above: response length, the trailing reminder, narration rhythm, document length, task scope, subagent limits, correction narration, and the combined mitigation for disabled thinking.

One more block, not covered above

Opus 5 catches and fixes its own earlier mistakes, which is good — but it's also more inclined than its predecessor to announce "I was wrong a moment ago" in front of the user. For user-facing products, this block trims correction narration down to the cases that actually matter.

Less announcing of its own corrections
Only correct an earlier statement when the error would change the user's code, conclusions, or decisions. State corrections plainly and briefly, then continue the task. For slips that change nothing for the user, make the fix and move on without noting it.
What it does: limits corrections to errors that would change the user's code, conclusions, or decisions; keeps them plain and short; and lets inconsequential slips be fixed silently.

What the doc doesn't give you

"Longer responses," "more narration," "more eager to delegate" — all qualitative, not a single percentage. How much longer, how much more? Readers have no way to know; you have to run your own comparison. Same with "deleting verification instructions saves tokens without hurting quality" — a conclusion, offered without supporting data. And "thinking on at low effort beats thinking off" is likewise a judgment, not a measured number.

What is solid is the eight prompt blocks themselves. They're copy-paste material, and whether they help is one before-and-after run on your own regular workload away.

Source
Prompting Claude Opus 5Anthropic·platform.claude.com
Editorial note
The five-level effort table, the 400 error details, the 64k and 512 figures, and the cache invalidation rule all come from the Effort documentation and the migration guide rather than the prompting page; each is flagged where it appears. The eight prompt blocks are quoted in the original English. All diagrams were made by this site; the blocks in the review-approach comparison are illustrative, not measured data. "Where this lands for Claude Code users" and the note about phrasing close to the default system prompt are our own observations.
↑ 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.