Effort-Tuning: 5 Stufen, Modell-Standards und die Cache-Falle
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.
- 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:
| Stufe | Was sie bewirkt | Wann man sie wählt |
|---|---|---|
low | Am 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 |
medium | Ausgewogen. 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 |
high | Hohe 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 |
xhigh | Erweiterte 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 |
max | Absolut 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."
- 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.
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.
- 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.
- Das andere Modell mit medium als Standard und der erste Haiku überhaupt mit Effort-Unterstützung. Starte bei medium für die meiste Arbeit, einschließlich agentischem Coding. Nutze low — am günstigsten und schnellsten — für Chat, kurze Tool-Aufgaben und einfache Anfragen mit hohem Volumen, aber kenne den Preis: In langen Agenten-Prompts überspringt es bei low eher eine Suche, hört früh auf oder lässt eine Prüfung aus. Wechsle zu high für Wissensarbeit, längere Agentenaufgaben und strikte Befolgung von Anweisungen. Vergleiche xhigh/max mit Sonnet 5.5 bei Kosten und Tempo, bevor du dich festlegst.
- Beide haben high als Standard und unterstützen alle fünf Stufen. Starte bei Fable 5.1 mit high, geh für die leistungskritischsten agentischen und Coding-Aufgaben auf xhigh/max und für medium/low zurück, sobald deine Evals zeigen, dass die Qualität hält. Die Stufen von Sonnet 5.5 sind gegenüber Sonnet 5 NEU KALIBRIERT — eine Stufe bringt nicht mehr dieselbe Menge Denken, also sweep erneut. Für agentisches Coding auf Sonnet 5.5 starte bei medium für klar spezifizierte Aufgaben und geh für schwierigere auf high; setze für agentisches Coding max_tokens auf 128.000, das Maximum des Modells, und streame.
- Sonnet 5 nutzt sowohl in der API als auch in Claude Code high als Standard, und die Empfehlung deckt sich damit. Geh nur für die schwersten Coding- und Agentenaufgaben auf xhigh. Als Sparmaßnahme geh auf medium — Sonnet 5 medium ist mit Sonnet 4.6 high vergleichbar. Nutze low für Chat und latenzkritische Workloads ohne Coding.
- Sonnet 4.6 hat high als Standard, aber Anthropics eigene Empfehlung nennt medium als ausgewogenen Standard für die meisten Anwendungen, einschließlich agentischem Coding. Setze effort='medium' explizit — sonst erbst du high und zahlst für Latenz, die du nicht bestellt hast.
- Der Standard ist high, aber die Empfehlung für Coding und agentische Arbeit lautet xhigh. Nutze high als Minimum für intelligenzkritische Workloads. Geh nur auf medium, wenn deine Evals zeigen, dass die Qualität hält. Hebe max für echte Grenzprobleme auf — bei den meisten Workloads bringt max erhebliche Mehrkosten für kleine Qualitätsgewinne, und bei Aufgaben mit strukturierter Ausgabe kann es überdenken.
- Opus 4.7 (und 4.8) fassen die Arbeit bei low/medium enger als Opus 4.6. Wenn du bei low flaches Schlussfolgern bei einem komplexen Prompt beobachtest, erhöhe den Effort, statt per Prompt drumherum zu arbeiten. Wenn dich die Latenz bei low hält, füge eine gezielte Zeile hinzu wie 'This task involves multistep reasoning. Think carefully before responding.'
- Effort ist bei Fable 5 der wichtigste Hebel für Intelligenz, Latenz und Kosten. Starte bei high (dem Standard), nutze xhigh für die leistungskritischste Arbeit und geh bei Routineaufgaben auf medium oder low — niedrigere Stufen bei Fable 5 übertreffen immer noch frühere Modelle bei xhigh. Setze bei high/xhigh ein großes max_tokens, da es Denken und Antworttext zusammen begrenzt.
- Beide Modelle können bei xhigh/max über Subagenten und Tool-Aufrufe hinweg stark verbrauchen. Anthropic empfiehlt, max_tokens bei 64k zu beginnen und von dort aus anzupassen. Lässt du es bei 4096, bekommst du nach vielversprechendem Start eine abgeschnittene Antwort mit stop_reason='max_tokens'.
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:
- 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 Sitzungxhighund erteilt Claude Code die dauerhafte Erlaubnis, Multiagent-Workflows zu starten (über Systemnachrichten mitten in der Unterhaltung). Die API kennt keinenultracode-Wert — es ist eine CLI-Komfortfunktion, diexhighmit 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
Teste dich selbst
0/7Quellen & weiterführende Literatur
- Anthropic — Effort (build-with-claude/effort) — maßgebliche Referenz für die fünf Stufen,
output_config.effortund die Empfehlungen pro Modell - Anthropic — Thinking (build-with-claude/thinking) — wie Effort mit Adaptive Thinking zusammenspielt und wann man welche Steuerung nutzt
- Anthropic Platform Release Notes — Eintrag vom 22. Juli 2026 — die Einführung von
effortbei Managed Agents und die am selben Tag ausgelieferten Änderungen an Webhooks und Session-Seeding - Prompting Claude Sonnet 5 — Effort und Denktiefe kalibrieren — die Verschiebung der Effort-Skala bei Sonnet 5 und wann man zu xhigh greift
- Anthropic — Task budgets — beratende Token-Budgets für ganze agentische Schleifen, eine Ergänzung zu Effort bei langen Läufen
- AILmanac — Extended Thinking & Effort — die einführende Einordnung, die diese Seite voraussetzt
- AILmanac — Claude Sonnet 5: Der Praxisleitfaden — die Geschichte von Migration und Neukalibrierung
- AILmanac — Prompt caching — die Cache-Ökonomie, die den Effort-Wechsel mitten in der Unterhaltung so teuer macht