damngoodprompts

Claude (Anthropic)

Prompting Claude

How to route work across Claude Fable, Opus, Sonnet, and Haiku, and how Claude.ai behavior differs from API prompting.

Last reviewed: September 14, 2026Official docswebmobileapicoding-agententerprise
Tip

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

ModelStatusBest fitAPI ID
Claude Fable 5.1currentDemanding reasoning and long-horizon agentic work (API claude-fable-5-1)Varies by surface
Claude Opus 5currentComplex tasks, hard code, deep analysis, and long agentic chainsVaries by surface
Claude Sonnet 5defaultEveryday work, coding, writing, analysis, and most user-facing chat tasksVaries by surface
Claude Haiku 4.5currentFast answers, cheaper high-volume work, and low-latency tasksVaries by surface
Claude Fable 5, Opus 4.8/4.7/4.6/4.5 and Sonnet 4.6/4.5legacyCompatibility with older prompts, evaluations, or integrations that have not migrated yetVaries 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.”

Source set