Claude (Anthropic)
Prompting Claude
How to route work across Claude Fable, Opus, Sonnet, and Haiku, and how Claude.ai behavior differs from API prompting.
What this model is particularly good at:
- Strong long-context reading, careful writing, coding, and multi-step agentic work
- A broad model ladder for routing between everyday work, hard problems, and fast answers
- Clear product-level effort controls in Claude.ai and API-level thinking controls for developers
Current model routing
| Model | Status | Best fit | API ID |
|---|---|---|---|
| Claude Fable 5.1 | current | Demanding reasoning and long-horizon agentic work (API claude-fable-5-1) | Varies by surface |
| Claude Opus 5 | current | Complex tasks, hard code, deep analysis, and long agentic chains | Varies by surface |
| Claude Sonnet 5 | default | Everyday work, coding, writing, analysis, and most user-facing chat tasks | Varies by surface |
| Claude Haiku 4.5 | current | Fast answers, cheaper high-volume work, and low-latency tasks | Varies by surface |
| Claude Fable 5, Opus 4.8/4.7/4.6/4.5 and Sonnet 4.6/4.5 | legacy | Compatibility with older prompts, evaluations, or integrations that have not migrated yet | Varies by surface |
Which model to choose
Pick the Claude model before tuning the prompt. Start with Sonnet 5 for most work. Escalate to Opus 5 for complex agentic coding, deep technical analysis, and long chains of work. Use Fable 5.1, and its paired Mythos 5.1 release, when you need the highest available Claude capability and the extra usage cost is justified. Use Haiku 4.5 for quick answers and high-volume tasks.
Older Opus and Sonnet models still matter when an existing prompt, evaluation, or production integration is pinned to them. Do not treat a legacy model as wrong by default; treat it as a compatibility choice that should be rechecked.
Prompting in Claude.ai
Claude.ai exposes model selection and effort as product controls. The current model menu distinguishes everyday work, complex tasks, fastest answers, and the highest-capability tier. Treat those controls as part of the prompt. Choose the model and effort in the interface, then write a clear brief.
For agentic work, say whether Claude should make changes or only advise. Anthropic has described an advisor strategy where Sonnet or Haiku can handle execution while Opus is consulted at hard decision points. Treat that as a tool/product control, not a phrase to paste into an ordinary Claude.ai prompt.
Prompting through the API
In the API, keep durable behavior in the top-priority instruction channel supported by your integration and put the user request in the user message. Use model selection and effort/thinking controls as request settings, not prose.
Claude’s prompting docs say XML tags help Claude parse complex prompts when instructions, context, examples, and variable inputs are mixed:
<instructions>Compare the contracts and flag material risk.</instructions>
<document><source>vendor-a.md</source>{{vendor_a}}</document>
<document><source>vendor-b.md</source>{{vendor_b}}</document>
Based on the documents above, recommend which agreement needs legal review first.
Request skeleton:
{
"model": "claude-sonnet-5",
"system": "You are reviewing a migration plan. Be direct and cite the section that supports each concern.",
"messages": [
{
"role": "user",
"content": "<document><source>migration-plan.md</source>{{plan}}</document>\n\nWhat should change before this is approved?"
}
],
"thinking": {
"type": "adaptive",
"display": "summarized"
},
"output_config": {
"effort": "high"
}
}
Current prompting guidance
- Be clear, direct, and specific.
- Add context that explains why a constraint matters.
- Use examples when you need to steer format or voice, but keep them few and high quality.
- Use XML tags for long, mixed-context prompts.
- Put long documents before the question.
- Avoid manual chain-of-thought scaffolding unless the visible explanation itself is the deliverable.
- In agentic contexts, distinguish “make the change” from “suggest a change.”
- Set thinking depth with the effort control (low, medium, high default, xhigh, max) instead of asking Claude to “think harder” in prose.
- On Fable 5.1, cache reads cost 2.5% of base input while 5-minute writes cost 1.25x, so caching pays off after a single read. Mark stable prefixes (system prompt, tool definitions, long docs) with cache_control and leave them byte-identical across calls because rewording forces a full-price rewrite.
- Fable 5.1 runs adaptive thinking always on with high default effort, so set effort explicitly for cheaper runs.
- On Opus 5, effort controls thinking volume, not visible answer length; prompt for length separately.
Examples
GUI prompt:
Use Opus 5 with high effort for this. Review the attached migration plan.
Be direct, cite the section that supports each concern, and distinguish blocking
risks from cleanup items.
What should change before this is approved?
API prompt content:
You are reviewing a migration plan. Be direct, cite the section that supports each
concern, and distinguish blocking risks from cleanup items.
<document><source>migration-plan.md</source>{{plan}}</document>
What should change before this is approved?
Prompt upgrade example:
Stale pattern: “Think step by step. First identify risks, then score each risk, then generate alternatives, then self-critique.”
Better pattern: “Identify the blocking risks and the assumptions behind them. Recommend the smallest next action that would change the decision.”