Zum Hauptinhalt springen

Effort-Tuning: 5 Stufen, Modell-Standards und die Cache-Falle

Fortgeschritten

Am 22. Juli 2026 hat Anthropic effort in die Modellkonfiguration von Claude Managed Agents aufgenommen und damit den Kreis um eine Steuerung geschlossen, die die Messages API still auf fünf Stufen ausgebaut hat. Wenn du noch effort="high" aus einem Blogpost von Anfang 2026 auf der obersten Ebene von messages.create kopierst, sieht deine Anfrage gültig aus, aber Claude beachtet womöglich nicht das Feld, das du meinst — der Parameter gehört jetzt in output_config, und die API erzwingt nur die Stufen, die auf der Modellkarte dokumentiert sind.

Dies ist der praktische Tuning-Leitfaden: wohin effort in einer Anfrage tatsächlich gehört, was die fünf Stufen wirklich tun (sie verändern die Zahl der Tool-Aufrufe, nicht nur die Denktiefe), die überraschenden Standardwerte pro Modell und die eine Falle, die die Kosten still in die Höhe treibt — wer den Effort mitten in einer Unterhaltung ändert, macht den Prompt-Cache ungültig.

What you'll learn
  • Das Effort-Feld korrekt platzieren — in output_config bei der Messages API, im model-Objekt bei Managed Agents, über /effort oder CLAUDE_CODE_EFFORT_LEVEL in Claude Code
  • Pro Modell eine Startstufe wählen — high ist der API-Standard der meisten Modelle, aber NICHT bei Opus 5.5 und Haiku 5.5, die auf medium stehen, und der empfohlene Start-Effort variiert zusätzlich (Sonnet 5.5 medium für agentisches Coding, Sonnet 4.6 medium, Opus 4.7/4.8 xhigh, Fable 5.1 high)
  • Verstehen, dass Effort ALLE Tokens beeinflusst — Text, Tool-Aufrufe und (wenn aktiv) das Denken — ein niedrigerer Effort senkt also die Zahl der Tool-Aufrufe, nicht nur die Ausführlichkeit
  • Die Cache-Falle vermeiden — wer den Effort innerhalb einer Unterhaltung variiert, macht das Prompt-Caching ungültig und kann die Rechnung still verdoppeln
  • Die Effort-Oberfläche von Claude Code kennen — /effort, ultrathink (ein Zug), ultracode (xhigh + dauerhafte Multiagent-Erlaubnis), Überschreiben per Umgebungsvariable CLAUDE_CODE_EFFORT_LEVEL

Die fünf Stufen (und wo „ultracode“ hingehört)​

Die Effort-Skala hat Stand 22. Juli 2026 fünf Werte, die die API akzeptiert:

StufeWas sie bewirktWann man sie wählt
lowAm effizientesten. Deutliche Token-Ersparnis bei etwas geringerer Leistungsfähigkeit. Weniger Tool-Aufrufe, knappe Bestätigungen, keine Einleitung.Einfache Klassifikation, Workloads mit hohem Volumen, Chat, latenzkritische UX, Subagenten mit eng umrissenen Aufgaben
mediumAusgewogen. Moderate Token-Ersparnis gegenüber high.Agentische Aufgaben, bei denen Tempo, Kosten und Qualität im Gleichgewicht sein müssen; kostenbewusster Schritt nach unten von high
highHohe Leistungsfähigkeit. Entspricht dem Weglassen des Parameters — bei jedem Modell außer Opus 5.5 und Haiku 5.5, die standardmäßig medium verwenden.Komplexes Schlussfolgern, schwieriges Coding, agentische Aufgaben, bei denen Qualität wichtiger ist als Tempo
xhighErweiterte Leistungsfähigkeit für Langzeitaufgaben. Erwarte deutlich höheren Token-Verbrauch als bei high.Lang laufende (30+ Min.) agentische und Coding-Aufgaben, Token-Budgets im Millionenbereich, tiefe Refactorings über mehrere Dateien
maxAbsolut maximale Leistungsfähigkeit, keine Begrenzung der Token-Ausgaben.Nur echte Grenzprobleme. Kann bei Aufgaben mit strukturierter Ausgabe überdenken.

Weder max noch xhigh sind universell — prüfe die Stufe am Modell, bevor du auslieferst. xhigh wird unterstützt von Fable 5.1, Mythos 5.1, Fable 5, Mythos 5, Opus 5.5, Opus 5, Opus 4.8, Opus 4.7, Sonnet 5.5, Sonnet 5 und Haiku 5.5. max deckt all diese ab, plus Mythos Preview, Opus 4.6 und Sonnet 4.6. Opus 4.5 unterstützt Effort, aber keine der beiden obersten Stufen. In den Worten von Anthropic: "Not every model that supports max supports xhigh."

Pro tip
  • Den Effort auf den Standardwert des Modells zu setzen, ergibt exakt dasselbe Verhalten wie das Weglassen des Parameters — das ist 'high' bei den meisten Modellen, aber 'medium' bei Opus 5.5 und Haiku 5.5. Setze ihn in einer gecachten Unterhaltung nicht „nur zur Klarheit“, denn wer das Feld bei manchen Anfragen schreibt und bei anderen nicht, macht den Cache ungültig.
  • 'ultracode' ist keine sechste Stufe. Es ist xhigh + eine dauerhafte Erlaubnis für Claude Code, Multiagent-Workflows zu starten, erteilt über Systemnachrichten mitten in der Unterhaltung. Die API akzeptiert fünf Werte.

Die Feldstruktur, die die meisten Blogposts falsch haben​

Frühe Artikel von 2026 zum Effort-Parameter zeigen ein Feld auf oberster Ebene:

# WRONG on current models — silently ignored or 400
client.messages.create(
model="claude-opus-4-8",
effort="medium",
...
)

Die aktuelle API platziert effort in einem output_config-Objekt und übergibt es als Geschwister von messages/model:

Korrekte Effort-Platzierung — Messages API

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
  model="claude-opus-4-8",
  max_tokens=4096,
  output_config={"effort": "medium"},
  messages=[{
      "role": "user",
      "content": "Analyse the trade-offs between microservices and monoliths."
  }],
)

print(response.content[0].text)

Bei Claude Managed Agents (die Änderung vom 22. Juli 2026) gehört effort bei der Erstellung in das model-Objekt des Agenten. Die Sitzung legt ihn nicht fest — das tut die Agentenversion.

Korrekte Effort-Platzierung — Managed Agents (POST /v1/agents)

# Effort travels with the versioned agent config,
# not the per-run session. Every session pinned to
# this agent version runs at xhigh.

POST https://api.anthropic.com/v1/agents
{
"name": "code-reviewer",
"model": {
  "id": "claude-opus-4-8",
  "effort": "xhigh"
},
"system_prompt": "You review pull requests for security issues.",
"tools": [...],
"mcp_servers": [...]
}

Effort ist keine Denk-Steuerung​

Das ist das zweite große Missverständnis. Effort wirkt unabhängig davon, ob Thinking aktiviert ist, und verändert die Tokens, die Claude für Teile der Antwort aufwendet, die kein Denken sind:

  • Tool-Aufrufe. Weniger Effort → weniger Tool-Aufrufe. Claude fasst Operationen in einzelnen Aufrufen zusammen, überspringt optionale Erkundung und geht ohne Einleitung zur Aktion über.
  • Textlänge. Weniger Effort → knappere Ausgabe. Knappe Bestätigungen nach Tool-Aufrufen statt ausführlicher Zusammenfassungen. Weniger Code-Kommentare.
  • Denktiefe (wenn Thinking an ist). Weniger Effort → bei einfachen Prompts wird das Denken ganz übersprungen; bei wirklich schweren wird weiter gedacht, nur weniger.

Der letzte Punkt ist wichtig: Bei low denkt Claude bei einer Beweisaufgabe trotzdem, weil die Aufgabe es verlangt. Effort ist ein Verhaltenssignal, kein striktes Token-Budget. Erwarte keine harte Obergrenze.

Der thinking-Parameter und der effort-Parameter beantworten verschiedene Fragen. thinking entscheidet, ob Claude überhaupt Thinking-Blöcke erzeugt. effort entscheidet, wie viel Arbeit in die gesamte Antwort fließt — einschließlich dessen, wie oft und wie tief Claude denkt, wenn Adaptive Thinking aktiv ist. effort="adaptive" zu übergeben ist ein häufiger Fehler; adaptive ist ein Denkmodus, keine Effort-Stufe.

Pro tip

Bei Opus 4.5 — dem einzigen Modell nur mit Extended Thinking, das Effort unterstützt — setzt du Effort und budget_tokens zusammen. Wähle die Effort-Stufe passend zur Aufgabe und bemiss dann das Denk-Token-Budget nach der gewünschten Argumentationstiefe. Alle anderen Effort-fähigen Modelle nutzen Adaptive Thinking und nehmen kein budget_tokens.

Modellspezifische Startpunkte, die Teams überraschen​

Der API-Standard ist bei den meisten Effort-fähigen Modellen high — aber nicht bei allen. Opus 5.5 und Haiku 5.5 verwenden standardmäßig medium. Dazu kommt, dass Anthropics empfohlener Start-Effort je nach Modell variiert, und in dieser Abweichung geben Teams zu viel oder zu wenig aus.

Guided walkthrough1 of 9
  1. Opus 5.5 ist der einzige Opus mit medium als Standard. Eine Anfrage ohne Effort läuft also eine Stufe NIEDRIGER als derselbe Code auf Opus 5. Wenn nach der Migration die Qualität nachgelassen hat, prüfe das zuerst. Adaptive Thinking ist immer an und lässt sich nicht abschalten (thinking: {type: 'disabled'} liefert auf jeder Stufe 400), daher ist Effort deine einzige Steuerung dafür, wie viel das Modell nachdenkt und was die Anfrage kostet. Führe einen frischen Effort-Sweep durch, statt Einstellungen zu übernehmen — auf gleicher Stufe denkt es pro Zug mehr als Opus 5.

Die Cache-Falle — die, die deine Rechnung still verdoppelt​

Prompt-Caching bietet Cache-Lesevorgänge zu einem Bruchteil des Standard-Eingabepreises (ein Zehntel bei den meisten Modellen, bei den neuesten weniger — siehe Pricing). Wer das oberste output_config.effort zwischen Anfragen derselben Unterhaltung ändert, macht den Cache ungültig, genau wie beim Modellwechsel: Der Effort der obersten Ebene prägt den gerenderten Prompt, ein neuer Wert bedeutet also, dass kein gecachtes Präfix mehr passt. Bei langem Kontext ist das ein erneutes Lesen deiner gesamten Historie zum vollen Preis, bei jeder einzelnen Folgerunde.

Der Ausweg: Effort pro Nachricht (Beta)​

Die neuesten Modelle erlauben es, den Effort zu ändern, ohne den Cache zu verlieren. Füge eine role: "system"-Nachricht mit leerem content hinzu, die die neue Stufe in output_config.effort trägt, und alles davor bleibt byte-identisch — das gecachte Präfix passt also weiterhin.

Effort mitten in der Unterhaltung ändern, ohne Cache-Miss

# Beta header required:
#   anthropic-beta: mid-conversation-output-config-2026-07-01

{
"model": "claude-fable-5-1",
"max_tokens": 4096,
"output_config": {"effort": "high"},
"messages": [
  {"role": "user", "content": "Plan a migration from SQLite to PostgreSQL."},
  {"role": "assistant", "content": "1. Export... 2. Create schema... 3. Import."},
  {"role": "system", "content": [], "output_config": {"effort": "low"}},
  {"role": "user", "content": "Summarize the plan in one sentence."}
]
}

Verfügbarkeit Stand 19. Oktober 2026: Auf der Claude API und Google Cloud funktioniert es mit Fable 5.1, Mythos 5.1, Opus 5.5, Opus 5, Sonnet 5.5 und Haiku 5.5; auf Amazon Bedrock nur mit Fable 5.1, Mythos 5.1 und Opus 5.5. Es braucht den Beta-Header mid-conversation-output-config-2026-07-01 — ohne ihn liefert ein output_config pro Nachricht 400 messages.N.output_config: Extra inputs are not permitted. Mit dem Header, aber bei einem nicht unterstützten Modell (darunter Fable 5), erhältst du 400 output_config.effort requires a model that supports per-turn effort; this model does not.

Zwei Modelle verweigern den Effort-Wechsel pro Zug, sobald das Thinking festgelegt ist: Sonnet 5.5 mit thinking: {"type": "between_tools"} und Haiku 5.5 mit thinking: {"type": "disabled"} liefern 400, wenn eine Stufe pro Nachricht von der gerade geltenden abweicht. Nutze dort Adaptive Thinking, um den Effort zu variieren.

Bei allem anderen gilt weiter die alte Regel — wähle eine Stufe und behalte sie bei:

Pro tip
  • Bei Modellen ohne Effort pro Nachricht variierst du den Effort ZWISCHEN Workloads, nicht INNERHALB einer gecachten Unterhaltung. Wähle die Stufe zu Beginn der Unterhaltung und halte sie konstant, bis du /clear ausführst.
  • Bevorzuge Effort pro Nachricht gegenüber einer Änderung auf oberster Ebene, auch wenn beides geht: Bei Fable 5.1 steuert ein Wechsel auf oberster Ebene das Modell zudem weniger zuverlässig, weil seine früheren Antworten auf der alten Stufe geschrieben wurden und es dazu neigt, konsistent mit ihnen zu bleiben.
  • In Claude Code ist /effort mitten in der Sitzung gleichbedeutend mit einem Modellwechsel — erwarte im nächsten Zug einen großen Cache-Miss.
  • Wenn du die Tiefe nur für einen Zug erhöhen willst, nutze in Claude Code 'ultrathink' (ein Schub tieferen Schlussfolgerns für einen Zug) statt /effort xhigh — so änderst du die Sitzungskonfiguration nicht.
  • Wenn du für den Rest der Sitzung erhöhen musst, tu es früh. Ein Wechsel bei Zug 3 ist billig; ein Wechsel bei Zug 30 liest 30 Züge Kontext zum vollen Preis neu.

Die Folgerung: Wer effort="high" bei manchen gecachten Anfragen explizit setzt und bei anderen weglässt, macht den Cache auf dieselbe Weise ungültig — denn beides ist im Verhalten gleich, aber im Text verschieden. Wähle eine Konvention (immer setzen oder immer weglassen) und halte sie ein.

Claude Code — die CLI-Oberfläche​

Claude Code stellt Effort als interaktiven Befehl, als Startflag und als Umgebungsvariable bereit (die höchste Priorität gewinnt, in umgekehrter Reihenfolge):

# In-session (interactive slider, or direct)
/effort
/effort xhigh
/effort auto # reset to model default

# At launch
claude --effort low

# Environment (overrides everything else)
CLAUDE_CODE_EFFORT_LEVEL=high claude

Zwei verwandte Befehle sind wissenswert, weil sie keine Effort-Stufen sind, sich aber ähnlich verhalten:

  • ultrathink — ein Schub tieferen Schlussfolgerns für einen Zug, der den Sitzungs-Effort nicht verändert. Nutze ihn, wenn der nächste Zug härter nachdenken soll, ohne den Cache für alle folgenden Züge ungültig zu machen.
  • ultracode — setzt für die ganze Sitzung xhigh und erteilt Claude Code die dauerhafte Erlaubnis, Multiagent-Workflows zu starten (über Systemnachrichten mitten in der Unterhaltung). Die API kennt keinen ultracode-Wert — es ist eine CLI-Komfortfunktion, die xhigh mit einer Orchestrierungserlaubnis kombiniert.

Persistenzregeln zum Merken: low, medium, high und xhigh bleiben über Claude-Code-Sitzungen hinweg erhalten, sobald du sie gesetzt hast. max gilt nur für die aktuelle Sitzung — du musst es beim nächsten Mal erneut anwenden.

Ein Tuning-Durchlauf — ein Prompt, drei Efforts​

Um ein Gefühl zu bekommen, führe denselben Prompt auf drei Stufen aus und vergleiche die Form der Ausgabe:

Tuning-Kalibrierungs-Prompt (bei low, high, xhigh ausführen)

Task: Review this pull request for security issues.

<pr_diff>
[paste a real diff — 300+ lines, multi-file, at least one auth-touching change]
</pr_diff>

Report: severity-tagged findings + a one-line fix per finding.
Do not restate what the diff does.

Erwarte ungefähr:

  • low — findet die offensichtlichen Probleme mit hohem Schweregrad (SQL-String-Verkettung, ungeprüfte Nutzereingabe in einem Header). Übersieht subtile Logikfehler. 1–2 Tool-Aufrufe, falls Tools verfügbar sind. Kurze Ausgabe. Schnell.
  • high — vollständige Analyse. Findet die meisten Schwachstellen, auch subtile. Mehrere gezielte Tool-Aufrufe, um verwandte Dateien zu lesen. Strukturierte Befunde. Hier hören die meisten Teams auf.
  • xhigh — erschöpfend. Berücksichtigt neuartige Angriffsvektoren und Defense in Depth. Liest benachbarte Dateien, die low/high nicht angefasst haben. Deutlich mehr Tool-Aufrufe. Merklich höherer Token-Verbrauch.

Wenn deine Evals zeigen, dass high und xhigh bei deiner Codebasis dieselben Befunde liefern, liefere mit high aus. Der Wert von xhigh zeigt sich gerade dann, wenn die Aufgabe von wiederholten Tool-Aufrufen und detaillierter Erkundung profitiert — und genau dann empfiehlt Anthropic es.

Sonnet 5 hat die Kalibrierung verschoben — Stufen nicht blind übertragen​

Wenn du Sonnet 4.6 mit high betrieben hast und auf Sonnet 5 migriert bist, verbraucht Sonnet 5 bei gleicher Stufe eher das, was Sonnet 4.6 bei max verbraucht hat — die Effort-Skala von Sonnet 5 ist verschoben. Anthropics eigene Empfehlung: Sonnet 5 medium ≈ Sonnet 4.6 high. Das ist ein Kostenunterschied pro Anfrage, den du prüfen solltest, wenn du Traffic ohne Effort-Anpassung wiedergegeben hast. Die ganze Migrationsgeschichte findest du im Sonnet-5-Praxisleitfaden.

Festigen​

Drücke Enter oder die Leertaste, um die Karte umzudrehen. Nutze die Pfeiltasten links und rechts, um zwischen den Karten zu wechseln.Begriff angezeigt.
1 / 9

Teste dich selbst

0/7
  1. Welcher dieser Werte ist KEIN gültiger Effort-Wert in der Messages API?
  2. Du führst eine gecachte Unterhaltung mit 20 Zügen und stellst in Zug 21 den Effort auf OBERSTER Ebene von high auf xhigh um. Was passiert?
  3. Du nutzt Opus 5.5 und lässt den Effort-Parameter ganz weg. Welche Stufe läuft?
  4. Du bist in Claude Code und willst, dass nur der NÄCHSTE Zug härter nachdenkt, ohne die Effort-Einstellung deiner Sitzung anzufassen. Was ist das Beste?
  5. Bei Opus 4.8 mit effort='xhigh' werden deine Antworten nach langem Denken immer wieder mit stop_reason='max_tokens' abgeschnitten. Was ist die wahrscheinlichste Lösung?
  6. Wohin gehört Effort, wenn du einen Claude-Managed-Agents-Agenten erstellst (das Update vom Juli 2026)?
  7. Welche Änderung sorgt dafür, dass Sonnet 5 'medium' sich am ehesten wie Sonnet 4.6 bei 'high' verhält?

Quellen & weiterführende Literatur​

Weiter​