Claude Sonnet 5: Der Feldführer
Am 30. Juni 2026 lieferte Anthropic Claude Sonnet 5 (claude-sonnet-5) aus und machte es still zum Default-Modell in Claude Code. Auf dem Papier ist es ein Drop-in für Sonnet 4.6 zum gleichen Listenpreis. In der Praxis werden drei API-Einschränkungen naive Migrationen mit 400 Bad Request zurückgeben lassen, ein neuer Tokenizer erzeugt grob 30% mehr Tokens für denselben Text (was sowohl dein Kontextbudget als auch deine Kosten pro Request ändert), und die Effort-Skala hat sich genug verschoben, dass "alles gleich lassen" nicht dasselbe ist. Warst du auf Sonnet 4.6 mit high, ist Sonnet 5 mit high näher an Sonnet 4.6 mit max.
Diese Seite ist der praktische Feldführer: was sich änderte, was bricht, die genaue Migrations-Checkliste, die Preismathematik zum Tokenizer-Shift und die Prompting-Muster, die die meisten Teams zuerst neu tunen.
- Verstehe, was Sonnet 5 tatsächlich ist — 1M Kontext by default, adaptives Denken an by default, das erste Sonnet mit echtzeit-Cybersecurity-Safeguards
- Kenne die drei API-Einschränkungen, die deinen bestehenden Code mit 400 abweisen, und den Einzeiler-Fix für jeden
- Modelliere die Preismathematik des neuen Tokenizers: derselbe $/Token, aber ~30% mehr Tokens = eine andere Rechnung pro Request
- Rekalibriere Effort-Level: Sonnet 5 medium ≈ Sonnet 4.6 high, und Sonnet 5 high ≈ Sonnet 4.6 max
- Passe die Prompting-Muster an, die sich am stärksten verschieben: Verbosität, Tool-Use-Triggering, Code-Review-Recall und Design-Defaults
Die Ein-Absatz-Version
Sonnet 5 ist die ausgewogene "Start-hier"-Sonnet-Stufe, über Sonnet 4.6 zum gleichen Listenpreis positioniert und jetzt Claude-Code-Default. Es unterstützt das 1M-Token-Kontextfenster by default (es gibt keine kleinere Kontext-Variante), 128k max Output und adaptives Denken by default. Drei API-Verträge brechen bei der Migration: manuelles Extended Thinking (thinking: {type: "enabled", budget_tokens: N}) wurde entfernt und gibt 400 zurück, nicht-default Sampling-Parameter (temperature, top_p, top_k) geben 400 zurück, und der Tokenizer änderte sich — derselbe Eingabetext erzeugt grob 30% mehr Tokens als auf Sonnet 4.6. Priority Tier ist auf Sonnet 5 nicht verfügbar. Das ist die ganze Form des Releases.
Warum "Drop-in" ein Sternchen braucht
Anthropics eigene Docs beschreiben Sonnet 5 als "Drop-in-Ersatz für Claude Sonnet 4.6" — und für Prompt-Inhalte stimmt das. Aber die API-Oberfläche änderte sich genug, dass "Model-String tauschen und ausliefern" auf Requests, die gestern gut liefen, Fehler produziert. Vier Dinge beißen dich, in der Reihenfolge, wie oft wir sie Integrationen brechen sehen:
temperature,top_podertop_kauf nicht-default Werte gesetzt geben jetzt400zurück. Nicht still ignoriert. Nicht geklippt. Ein harter Fehler. Das ist neu für Sonnet-Class-Modelle; Opus 4.7 führte dieselbe Einschränkung ein. Wenn dein SDK-Wrapper immertemperature: 0.7sendet, wird er jetzt immer fehlschlagen.- Manuelles Extended Thinking wurde entfernt.
thinking: {type: "enabled", budget_tokens: N}war auf 4.6 deprecated und gibt auf Sonnet 5400zurück. Nutze stattdessen adaptives Denken mit dem Effort-Parameter. - Adaptives Denken ist by default an. Requests ohne
thinking-Feld auf Sonnet 4.6 liefen ohne Denken; auf Sonnet 5 laufen sie mit adaptivem Denken.max_tokensist ein harter Cap auf Gesamt-Output — Denken plus Antwort-Text — sodass ein für "nur die Antwort" auf Sonnet 4.6 dimensioniertes Limit die Antwort auf Sonnet 5 abschneiden kann. - Der neue Tokenizer erzeugt grob 30% mehr Tokens für denselben Text. Keine API-Änderung — Request- und Response-Shapes sind identisch — aber alles, was du in Tokens misst oder budgetierst, misst jetzt höher.
Die API-Einschränkungen, die dich mit 400 abweisen
- Entferne jegliches temperature, top_p oder top_k, das nicht der API-Default ist. Braucht deine App stilistische Vielfalt, nutze System-Prompt-Anweisungen statt temperature (das ist jetzt der einzige Hebel). Brauchst du diverse Design-Outputs, bitte das Modell, N distinkte Richtungen vorzuschlagen und eine zu wählen — das gibt dir Vielfalt über Runs hinweg selbst mit festem Sampling.
- Lösche jegliches thinking: {type: "enabled", budget_tokens: N} in deinem Request-Builder. Setze stattdessen effort (low / medium / high / xhigh / max) und lass adaptives Denken entscheiden, wann gedacht wird. Berechnetest du dynamisch ein Denk-Budget pro Request, ersetze diese Logik durch einen Effort-Selector — Anthropic empfiehlt explizit, nicht zu versuchen, das alte Verhalten zu reproduzieren.
- Auf Sonnet 4.6 bedeutete ein ausgelassenes thinking-Feld kein Denken. Auf Sonnet 5 bedeutet es adaptives Denken. Da max_tokens ein harter Cap auf Gesamt-Output ist (Denk-Blöcke + Antwort-Text), kannst du bei einer meist-denkenden Antwort und einer abgeschnittenen Antwort mit stop_reason: "max_tokens" enden. Entweder max_tokens erhöhen, effort auf medium senken oder thinking: {type: "disabled"} übergeben, wenn du wirklich kein Denken willst.
- Das ist von Sonnet 4.6 geerbt, nicht neu — aber viele Teams, die von Sonnet 4.5 oder früher migrieren, treffen es hier zum ersten Mal. Nutze stattdessen Structured Outputs, System-Prompt-Anweisungen oder output_config.format. Prefilling gibt einen 400-Fehler zurück.
Minimale sichere Migration — ein Diff
# Before (Sonnet 4.6) — worked
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
temperature=0.7, # 400 on Sonnet 5
thinking={"type": "enabled",
"budget_tokens": 8000}, # 400 on Sonnet 5
messages=[...],
)
# After (Sonnet 5) — one-liner replacements
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=8192, # raise: thinking now shares the budget
# temperature removed — use system prompt instead
# thinking removed — adaptive is on by default
extra_body={"effort": "high"}, # was implicit in budget_tokens
messages=[...],
)Der Tokenizer-Shift ist eine Preisgeschichte, keine API-Geschichte
Der neue Tokenizer ist die Änderung, die dein Finance-Team am wahrscheinlichsten überrascht. Requests und Responses sehen über die Leitung identisch aus, aber derselbe Eingabetext erzeugt grob 30% mehr Tokens als auf Sonnet 4.6. Der genaue Multiplier hängt vom Inhalt ab — Code, englische Prosa, nicht-englischer Text und strukturierte Daten shiften alle anders — aber 30% ist die Zahl, die Anthropic zitiert.
Drei Dinge ändern sich gleichzeitig:
- Kosten pro Request. Pro-Token-Preis ist unverändert gegenüber Sonnet 4.6 bei $3 / $15 pro MTok Standard (und $2 / $10 bis 31. August 2026). Aber wenn derselbe Text 30% mehr Tokens erzeugt, kostet derselbe Text nach Anlauf des Standardtarifs etwa 30% mehr.
- Kontextkapazität in Textbegriffen. Das Kontextfenster ist immer noch 1M Tokens, aber jeder Token deckt im Schnitt weniger Text ab. Dasselbe Dokument nimmt ~30% mehr deines Fensters ein.
max_tokens-Truncation-Risiko. Ein für "grob so viel Text" auf Sonnet 4.6 getunter Output-Cap kann äquivalenten Output auf Sonnet 5 still abschneiden. Überprüfe jedes Limit, das nah an deiner erwarteten Output-Länge liegt.
Die Preismathematik, ehrlich aufgezeichnet:
| Zeitraum | Listenpreis | Derselbe Text → Kosten vs. Sonnet 4.6 |
|---|---|---|
| Jetzt → 31. Aug 2026 (Einführung) | $2 in / $10 out | Grob 13% günstiger (30% mehr Tokens × $2 vs. Sonnet 4.6 bei $3) |
| Ab 1. Sep 2026 (Standard) | $3 in / $15 out | Grob 30% teurer für äquivalenten Text |
Wenn du eine App auf Einführungspreis-Tokens kalkulierst und den 1.-September-Flip nicht modelliert hast, wirst du es merken.
Zähle deine Prompts unter dem neuen Tokenizer neu
# Recount before you migrate — don't trust old numbers
count = client.messages.count_tokens(
model="claude-sonnet-5", # count under the NEW tokenizer
messages=[{"role": "user", "content": your_prompt}],
system=your_system,
)
print(count.input_tokens) # roughly 30% higher than on claude-sonnet-4-6Die Effort-Skala verschob sich — rekalibriere vor dem Vergleich
Der Effort-Parameter (low / medium / high / xhigh / max) hat immer noch dieselben fünf Werte, aber Anthropic gibt bei Migration eine explizite Cross-Modell-Zuordnung, die die meisten Teams beim ersten Lesen verpassen:
- Sonnet 5 mit
medium≈ Sonnet 4.6 mithigh. - Sonnet 5 mit
high≈ Sonnet 4.6 mitmax. xhighwird für die härtesten Coding- und Agentic-Tasks empfohlen.maxentfernt Token-Ausgabe-Constraints komplett.
Zwei Implikationen:
- Warst du auf Sonnet 4.6 mit
highund tauschst das Modell ohne Effort-Änderung, läufst du jetzt mit mehr Denken, mehr Tokens und wahrscheinlich besseren Outputs — aber einer größeren Rechnung. Erwäge, aufmediumzu droppen. - Warst du auf Sonnet 4.6 mit
maxund tauschst auf Sonnet 5 mitmax, zahlst du vielleicht für Headroom, den du nicht brauchst. Probiere zuerstxhigh.
Anthropic warnt auch, Sonnet 5 respektiert Effort strikt, besonders am unteren Ende. low und medium scopen Arbeit auf das Gefragte; sie gehen nicht "über das Übliche hinaus". Das ist gut für Latenz und Kosten, aber bei mäßig komplexen Tasks mit low besteht ein echtes Risiko von Under-Thinking. Der empfohlene Fix ist, Effort zu erhöhen, statt drumherum zu prompten.
Sonnet 5 ist jetzt Claude-Code-Default — was sich ändert
Ab Claude Code v2.1.197 (30. Juni 2026) ist claude-sonnet-5 das Default-Modell. Setzt du nichts, laufen deine Sessions auf Sonnet 5. Praktische Konsequenzen:
- Du bekommst 1M Kontext, aber deine
max_tokensund Effort-Einstellungen sind geerbt. Claude Codes Defaults sind auf das neue Modell getunt; custom CLAUDE.md-Configs, diemax_tokenspinnten oder ein Effort-Override setzten, sollten re-verifiziert werden. - Schnelleres, agentischeres Default-Verhalten. Sonnet 5 ist out of the box agentischer als Sonnet 4.6 — es greift bereitwilliger zu Tools und läuft Self-Verification-Loops. Warst du gewohnt, dass Claude Code beim Ausführen von Kommandos konservativ ist, erwarte mehr Initiative.
- Regelmäßige nutzer-sichtbare Fortschritts-Updates. Sonnet 5 liefert schon hochwertigere Zwischen-Updates auf langen Traces. Prompt-Scaffolding wie "nach je 3 Tool-Aufrufen Fortschritt zusammenfassen" kann meist entfernt werden.
- Sonnet 4.6 ist jetzt ein Legacy-Modell. Weiter verfügbar (pinne
claude-sonnet-4-6, falls du einen Grund hast), aber nicht mehr die On-Ramp.
Die vier Prompting-Muster, die die meisten Teams neu tunen
1. Verbosität kalibriert sich zur Task-Komplexität
Sonnet 5 wählt Antwortlänge basierend auf der Task-Komplexität, statt auf eine feste Verbosität zu defaulten. Einfache Lookups bekommen kürzere Antworten; offene Analyse bekommt längere. Willst du in deinem Produkt einen konsistenten Stil, tune den Prompt — Anthropics eigener Snippet funktioniert:
Zähme Verbosität, wenn du eine feste Stimme brauchst
Provide concise, focused responses. Skip non-essential context, and keep examples minimal.
Positive Beispiele ("so formulierst du das prägnant") funktionieren besser als negative ("nicht überklären").
2. Tool-Use-Triggering ist agentischer — und lässt sich dialen
Sonnet 5 greift bereitwilliger zu Tools als 4.6. Zwei Hebel:
- Effort.
highoderxhighzeigen substanziell mehr Tool-Nutzung in Agentic-Search- und Coding-Workloads.lowundmediumscopen die Arbeit eng. - Denken aus. Mit
thinking: {type: "disabled"}greift das Modell weniger wahrscheinlich zu Tools. Deaktivierst du Denken, verlässt dich aber weiter auf Tool-Aufrufe, füge einen expliziten Nudge im System-Prompt hinzu.
3. Code-Review-Harnesses können Recall-Drop sehen — das ist das Modell, das wörtlicher ist
Sagt dein Review-Prompt "nur High-Severity-Issues melden" oder "nicht nitpicken", kann Sonnet 5 das treu befolgen — genauso gründlich untersuchen, dieselben Bugs finden, dann Funde nicht melden, die es unter deiner erklärten Schwelle beurteilt. Präzision steigt typischerweise, Recall kann scheinbar fallen. Anthropics empfohlener Fix trennt Find-Phase von Ranking-Phase:
Recall-orientierter Code-Review-Prompt für Sonnet 5
Report every issue you find, including ones you are uncertain about or consider low-severity. Do not filter for importance or confidence at this stage - a separate verification step will do that. Your goal here is coverage: it is better to surface a finding that later gets filtered out than to silently drop a real bug. For each finding, include your confidence level and an estimated severity so a downstream filter can rank them.
Du musst den zweiten Schritt gar nicht bauen, damit der Prompt hilft — das Verschieben des Confidence-Filterns aus der Find-Phase heraus ändert das Verhalten.
4. Design-Defaults setzen sich zu einem "Haus-Stil" — überschreib ihn explizit
Auf offenen Frontend- und Design-Briefings tendiert Sonnet 5 zu einem konsistenten Default-Visual-Style. Das liest sich gut für manche Produkte, falsch für Dashboards, Dev-Tools, Fintech, Healthcare oder Enterprise-Apps. Generisches Zurückschieben ("mach es weniger generisch") verschiebt das Modell tendenziell zu einem anderen festen Stil, statt Vielfalt zu erzeugen. Zwei Muster, die funktionieren:
- Spezifiziere eine konkrete Alternative — Hex-Codes, Typeface-Namen, Layout-Regeln. Sonnet 5 folgt expliziten Specs präzise.
- Bitte das Modell, N Optionen vor dem Bauen vorzuschlagen. Da nicht-default
temperature400 zurückgibt, ist das jetzt der empfohlene Weg, um bedeutungsvoll unterschiedliche Design-Richtungen über Runs hinweg zu erzeugen.
Erzwinge Design-Vielfalt ohne temperature
Before building, propose 4 distinct visual directions tailored to this brief (each as: bg hex / accent hex / typeface, plus a one-line rationale). Ask the user to pick one, then implement only that direction.
Cybersecurity-Safeguards: Refusals als HTTP 200
Sonnet 5 ist das erste Sonnet-Tier-Modell mit echtzeit-Cybersecurity-Safeguards. Wird ein Request abgelehnt, kommt es als erfolgreicher HTTP 200 mit stop_reason: "refusal" zurück — kein Fehler. Hast du keinen Refusal-Handling-Zweig gebaut, wird deine App die leere Response als erfolgreiche leere Antwort behandeln und still an den Nutzer ausliefern.
Der Fix ist ein Zweig auf der Response:
Refusals sauber behandeln
resp = client.messages.create(model="claude-sonnet-5", messages=[...]) if resp.stop_reason == "refusal": # Show a graceful message. Optionally retry on a fallback model # (Opus 4.8 is a common choice). You are NOT billed for a refusal # returned before any output was generated. return handle_refusal(resp) # Otherwise process resp.content as normal
Das ist dieselbe Form wie Fable 5s In-Band-Refusals — bearbeitest du die schon, bist du abgedeckt. Bist du neu darin, siehe den Fable 5 Feldführer für das vollere Muster inklusive des fallbacks-Parameters.
Priority Tier ist nicht verfügbar — plane drumherum
Jedes andere aktuelle Anthropic-Modell unterstützt Priority Tier für reservierte Kapazität und vorhersagbare Latenz. Sonnet 5 tut das nicht. Hast du eine Enterprise-Workload, die heute von Priority-Tier-Zusagen abhängt, sind deine Optionen:
- Halte die Workload auf Sonnet 4.6 (weiter supported, weiter auf Priority Tier).
- Migriere die Workload auf Opus 4.8, das auf Priority Tier ist und das Modell, gegen das Sonnet 5 für harte Tasks sowieso verglichen wird.
- Wechsle auf Standard-Tier auf Sonnet 5 und akzeptiere unreservierte Kapazität.
Es gibt keinen Beta-Header-Workaround. Ist Priority Tier für dich load-bearing, ist das der Migrationsblocker, um den du zuerst planen musst.
Sonnet 5 vs. Sonnet 4.6 vs. Opus 4.8 — die Wahl
| Wahl | Nimm es, wenn |
|---|---|
| Sonnet 5 | Default für alles Neue. Coding, Agentic-Tasks, 1M Kontext und Preissensitivität zeigen alle hierhin. |
| Sonnet 4.6 | Du brauchst Priority Tier, hast Prompts, die auf nicht-default Sampling-Parameter angewiesen sind, die du noch nicht umschreiben kannst, oder du bist mitten in einem Eval und willst eine stabile Baseline. |
| Opus 4.8 | Reasoning-Tiefe oder Long-Run-Stabilität, die Sonnet 5 nicht erreicht, oder du brauchst Priority Tier am oberen Ende. Paare mit einem Effort-Override — xhigh auf Opus 4.8 ist ein gängiger Sweet Spot. |
| Fable 5 / Mythos 5 | Du hast validiert, dass Opus 4.8 nicht reicht, und bist bereit, 5× Sonnet 5 Output-Preis für mehrtägige autonome Runs zu zahlen. Siehe den Fable 5 Feldführer. |
Migrations-Checkliste
- Nutze die Token-Counting-API mit model="claude-sonnet-5" für jeden Prompt, dessen Länge zählt. Überall wo du gegen ein festes 1M-Token-Budget vergleichst, gehe von ~30% mehr Verbrauch aus. Überall wo max_tokens knapp ist, erhöhe.
- Grep deine Codebase nach temperature, top_p, top_k. Jeder nicht-default Wert gibt jetzt auf Sonnet 5 400 zurück. Lösche oder setze auf Default.
- Grep nach thinking={"type": "enabled" und lösche. Füge einen Effort-Selector hinzu (starte bei high). Willst du gar kein Denken, übergebe explizit thinking: {type: "disabled"}.
- Cybersecurity-Safeguards sind neu auf Sonnet-Tier. Refusals sind HTTP 200, keine Fehler — verzweigst du nicht, lieferst du still leere Antworten aus.
- Hängt irgendeine Workload von Priority Tier ab, halte sie auf Sonnet 4.6 oder migriere zu Opus 4.8 — Sonnet 5 bietet kein Priority Tier.
- Einführungspreis läuft bis 31. August 2026. Ab 1. September kostet derselbe Text etwa 30% mehr als derselbe Text auf Sonnet 4.6. Kalkulierst du eine App auf Tokens, setz das in den Kalender.
Schnellcheck
Check yourself
0/5Quellen & weiterführende Lektüre
- What's new in Claude Sonnet 5 — offizielle Docs
- Prompting Claude Sonnet 5 — offizielle Docs
- Migration Guide — Sonnet 4.6 → Sonnet 5
- Claude Platform Release Notes — siehe den 30.-Juni-2026-Eintrag
- Effort-Parameter-Referenz
- Adaptive-Thinking-Referenz
- Token-Counting-API — nutze
model="claude-sonnet-5", um unter dem neuen Tokenizer zu messen - Claude Code Changelog — v2.1.197 machte Sonnet 5 zum Default
- Verwandt auf AILmanac: Claude Fable 5 & Mythos 5: The Flagship Field Guide, Choosing a Model, Thinking & Effort, Current Models & Pricing