Diese Funktion ist für Zero Data Retention (ZDR) qualifiziert. Wenn deine Organisation eine ZDR-Vereinbarung hat, werden Daten, die über diese Funktion gesendet werden, nicht gespeichert, nachdem die API-Antwort zurückgegeben wurde.
Adaptives Denken ist die empfohlene Methode, um erweitertes Denken mit Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 und Claude Sonnet 4.6 zu nutzen. Bei Claude Fable 5 und Claude Mythos 5 ist das Denken immer aktiviert und kann nicht deaktiviert werden; adaptives Denken ist der einzige Denkmodus. Bei Claude Mythos Preview ist adaptives Denken der Standardmodus und wird automatisch angewendet, wenn thinking nicht gesetzt ist. Anstatt manuell ein Token-Budget für das Denken festzulegen, lässt adaptives Denken Claude dynamisch bestimmen, wann und wie viel erweitertes Denken basierend auf der Komplexität jeder Anfrage verwendet werden soll. Bei Claude Opus 4.8 und Claude Opus 4.7 ist adaptives Denken der einzige unterstützte Denkmodus; manuelles thinking: {type: "enabled", budget_tokens: N} wird nicht mehr akzeptiert. Bei Claude Sonnet 5 ist adaptives Denken standardmäßig aktiviert; übergib thinking: {type: "disabled"}, um es auszuschalten, und manuelles {type: "enabled", budget_tokens: N} wird mit einem 400-Fehler abgelehnt.
Adaptives Denken kann bei vielen Workloads eine bessere Leistung erzielen als erweitertes Denken mit festem budget_tokens, insbesondere bei bimodalen Aufgaben und langfristigen agentischen Workflows. Es ist kein Beta-Header erforderlich.
Wenn dein Workload eine vorhersehbare Latenz oder präzise Kontrolle über die Denkkosten erfordert, ist erweitertes Denken mit budget_tokens bei Claude Opus 4.6 und Claude Sonnet 4.6 weiterhin funktionsfähig, aber veraltet und wird nicht mehr empfohlen. Siehe die Warnung unten.
Adaptives Denken wird von den folgenden Modellen unterstützt:
claude-fable-5) und Claude Mythos 5 (claude-mythos-5), adaptives Denken ist immer aktiviert; thinking: {type: "disabled"} wird nicht unterstütztthinking: {type: "disabled"} wird nicht unterstütztthinking: {type: "adaptive"} in deiner Anfrage setzt; manuelles thinking: {type: "enabled"} wird mit einem 400-Fehler abgelehnt.thinking: {type: "adaptive"} in deiner Anfrage setzt; manuelles thinking: {type: "enabled"} wird mit einem 400-Fehler abgelehnt.claude-sonnet-5), adaptives Denken ist standardmäßig aktiviert; manuelles {type: "enabled"} wird mit einem 400-Fehler abgelehnt.thinking.type: "enabled" und budget_tokens sind bei Opus 4.6 und Sonnet 4.6 veraltet und werden in einer zukünftigen Modellversion entfernt. Verwende stattdessen thinking.type: "adaptive" mit dem effort-Parameter. Bestehende budget_tokens-Konfigurationen sind weiterhin funktionsfähig, werden aber nicht mehr empfohlen; plane die Migration.
Ältere Modelle (Sonnet 4.5, Opus 4.5 usw.) unterstützen kein adaptives Denken und erfordern thinking.type: "enabled" mit budget_tokens.
Im adaptiven Modus ist das Denken für das Modell optional. Claude bewertet die Komplexität jeder Anfrage und bestimmt, ob und wie viel erweitertes Denken verwendet werden soll. Auf der Standard-Effort-Stufe (high) denkt Claude fast immer. Auf niedrigeren Effort-Stufen kann Claude das Denken bei einfacheren Problemen überspringen.
Adaptives Denken aktiviert außerdem automatisch verschachteltes Denken (interleaved thinking). Das bedeutet, dass Claude zwischen Tool-Aufrufen denken kann, was es besonders effektiv für agentische Workflows macht.
Setze thinking.type in deiner API-Anfrage auf "adaptive":
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even.",
}
],
)
for block in response.content:
if block.type == "thinking":
print(f"\nThinking: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")Du kannst adaptives Denken mit dem Effort-Parameter kombinieren, um zu steuern, wie viel Claude denkt. Die Effort-Stufe dient als weiche Orientierung für Claudes Denkzuteilung:
| Effort-Stufe | Denkverhalten |
|---|---|
max | Claude denkt immer, ohne Einschränkungen bei der Denktiefe. Verfügbar bei Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 und Claude Sonnet 4.6. |
xhigh | Claude denkt immer tiefgehend mit erweiterter Exploration. Verfügbar bei Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8 und Claude Opus 4.7. |
high (Standard) | Claude denkt fast immer. Bietet tiefgehendes Reasoning bei komplexen Aufgaben. |
medium | Claude verwendet moderates Denken. Kann das Denken bei sehr einfachen Anfragen überspringen. |
low | Claude minimiert das Denken. Überspringt das Denken bei einfachen Aufgaben, bei denen Geschwindigkeit am wichtigsten ist. |
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "medium"},
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(response.content[0].text)Adaptives Denken funktioniert nahtlos mit Streaming. Denkblöcke werden über thinking_delta-Events gestreamt, genau wie im manuellen Denkmodus:
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)| Modus | Konfiguration | Verfügbarkeit | Wann verwenden |
|---|---|---|---|
| Adaptiv | thinking: {type: "adaptive"} | Claude Fable 5 (immer aktiviert), Claude Mythos 5 (immer aktiviert), Claude Mythos Preview (Standard), Claude Opus 4.8 (einziger Modus), Opus 4.7 (einziger Modus), Opus 4.6, Sonnet 5, Sonnet 4.6 | Claude bestimmt, wann und wie viel erweitertes Denken verwendet wird. Verwende effort zur Steuerung. |
| Manuell | thinking: {type: "enabled", budget_tokens: N} | Alle Modelle außer Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8 und Claude Opus 4.7 (mit einem 400-Fehler abgelehnt). Veraltet bei Opus 4.6 und Sonnet 4.6 (erwäge stattdessen den adaptiven Modus). | Wenn du präzise Kontrolle über den Token-Verbrauch beim Denken benötigst. |
| Deaktiviert | thinking-Parameter weglassen oder {type: "disabled"} übergeben | Alle Modelle außer Claude Fable 5, Claude Mythos 5 und Claude Mythos Preview. Bei Claude Sonnet 5 übergib explizit {type: "disabled"} (das Weglassen von thinking führt standardmäßig zu adaptiv). | Wenn du kein erweitertes Denken benötigst und die niedrigste Latenz möchtest. |
Adaptives Denken ist bei Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Opus 4.6, Sonnet 5 und Sonnet 4.6 verfügbar. Bei Claude Fable 5 und Claude Mythos 5 ist adaptives Denken immer aktiviert: Es wird angewendet, wenn thinking nicht gesetzt ist, und kann nicht deaktiviert werden. Bei Mythos Preview ist adaptives Denken der Standard und wird automatisch angewendet, wenn thinking nicht gesetzt ist. Bei Claude Opus 4.8 ist adaptives Denken der einzige unterstützte Modus; das Denken ist ausgeschaltet, sofern du nicht explizit thinking: {type: "adaptive"} setzt, und manuelles type: "enabled" mit budget_tokens wird mit einem 400-Fehler abgelehnt. Bei Claude Opus 4.7 ist adaptives Denken der einzige unterstützte Modus und type: "enabled" mit budget_tokens wird abgelehnt. Bei Claude Sonnet 5 ist adaptives Denken standardmäßig aktiviert; manuelles type: "enabled" wird mit einem 400-Fehler abgelehnt, und {type: "disabled"} schaltet das Denken aus. Ältere Modelle unterstützen nur type: "enabled" mit budget_tokens. Bei Opus 4.6 und Sonnet 4.6 ist type: "enabled" mit budget_tokens weiterhin funktionsfähig, aber veraltet.
Verfügbarkeit von verschachteltem Denken nach Modus:
interleaved-thinking-2025-05-14.Bei der Verwendung von adaptivem Denken müssen vorherige Assistant-Turns nicht mit Denkblöcken beginnen. Dies ist flexibler als der manuelle Modus, bei dem die API erzwingt, dass Turns mit aktiviertem Denken mit einem Denkblock beginnen.
Aufeinanderfolgende Anfragen mit adaptive-Denken bewahren Prompt-Cache-Breakpoints. Das Wechseln zwischen adaptive- und enabled/disabled-Denkmodi bricht jedoch Cache-Breakpoints für Nachrichten. System-Prompts und Tool-Definitionen bleiben unabhängig von Moduswechseln gecacht.
Das Auslöseverhalten des adaptiven Denkens ist über Prompts steuerbar. Wenn Claude häufiger oder seltener denkt als gewünscht, kannst du deinem System-Prompt eine Anweisung hinzufügen:
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality, typically for problems
that require multi-step reasoning. When in doubt, respond directly.Um stattdessen das Denken zu fördern, verwende eine Formulierung wie:
This task involves multi-step reasoning. Think carefully before responding.Die Wirksamkeit der Steuerung kann von der genauen Formulierung abhängen. Wenn eine Formulierung nicht das gewünschte Verhalten erzeugt, probiere eine direktere Variante aus.
Du kannst das Denken auch pro Nachricht aus dem User-Turn heraus steuern. Das Anhängen von "Please think hard before responding." an eine User-Nachricht ermutigt Claude, in diesem Turn zu denken; "Answer directly without deliberating." unterdrückt es. Dies funktioniert unabhängig vom System-Prompt und ist nützlich, wenn nur einige Anfragen in einer Konversation erweitertes Reasoning erfordern.
Claude dazu zu bringen, seltener zu denken, kann die Qualität bei Aufgaben verringern, die von Reasoning profitieren. Miss die Auswirkungen auf deine spezifischen Workloads, bevor du Prompt-basiertes Tuning in der Produktion einsetzt. Erwäge, zuerst mit niedrigeren Effort-Stufen zu testen.
Verwende max_tokens als hartes Limit für die Gesamtausgabe (Denken + Antworttext). Der effort-Parameter bietet zusätzliche weiche Orientierung dafür, wie viel Denken Claude zuteilt. Zusammen geben dir diese eine effektive Kontrolle über die Kosten.
Auf den Effort-Stufen high und max kann Claude ausführlicher denken und mit höherer Wahrscheinlichkeit das max_tokens-Budget ausschöpfen. Wenn du stop_reason: "max_tokens" in Antworten beobachtest, erwäge, max_tokens zu erhöhen, um dem Modell mehr Spielraum zu geben, oder die Effort-Stufe zu senken.
Die folgenden Konzepte gelten für alle Modelle, die erweitertes Denken unterstützen, unabhängig davon, ob du den adaptiven oder manuellen Modus verwendest.
Wenn erweitertes Denken aktiviert ist, gibt die Messages API für Claude 4-Modelle eine Zusammenfassung von Claudes vollständigem Denkprozess zurück. Zusammengefasstes Denken bietet die vollen Intelligenzvorteile des erweiterten Denkens und verhindert gleichzeitig Missbrauch. Dies ist das Standardverhalten bei Claude 4-Modellen, wenn das Feld display in der Thinking-Konfiguration nicht gesetzt oder auf "summarized" gesetzt ist. Bei Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7 und Claude Mythos Preview ist display stattdessen standardmäßig auf "omitted" gesetzt, sodass du display: "summarized" explizit setzen musst, um zusammengefasstes Denken zu erhalten.
Hier sind einige wichtige Überlegungen zum zusammengefassten Denken:
In seltenen Fällen, in denen du Zugriff auf die vollständige Thinking-Ausgabe für Claude 4-Modelle benötigst, kontaktiere den Anthropic-Vertrieb.
Das Feld display in der Thinking-Konfiguration steuert, wie Thinking-Inhalte in API-Antworten zurückgegeben werden. Es akzeptiert zwei Werte:
"summarized": Thinking-Blöcke enthalten zusammengefassten Thinking-Text. Siehe Zusammengefasstes Thinking für Details. Dies ist die Standardeinstellung bei Claude Opus 4.6, Claude Sonnet 4.6 und früheren Claude 4-Modellen."omitted": Thinking-Blöcke werden mit einem leeren thinking-Feld zurückgegeben. Das signature-Feld enthält weiterhin das verschlüsselte vollständige Thinking für die Kontinuität über mehrere Turns hinweg (siehe Thinking-Verschlüsselung). Dies ist die Standardeinstellung bei Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7 und Claude Mythos Preview.Die Einstellung display: "omitted" ist nützlich, wenn deine Anwendung den Nutzern keine Thinking-Inhalte anzeigt. Der Hauptvorteil ist eine schnellere Zeit bis zum ersten Text-Token beim Streaming: Der Server überspringt das Streaming der Thinking-Tokens vollständig und liefert nur die Signatur, sodass das Streaming der endgültigen Textantwort früher beginnt.
Hier sind einige wichtige Überlegungen zum ausgelassenen Thinking:
signature, um das ursprüngliche Thinking für die Prompt-Konstruktion zu rekonstruieren (siehe Thinking-Blöcke beibehalten). Jeglicher Text, den du im thinking-Feld eines zurückgesendeten ausgelassenen Blocks platzierst, wird ignoriert.display ist ungültig mit thinking.type: "disabled" (es gibt nichts anzuzeigen).thinking.type: "adaptive" verwendest und das Modell das Thinking für eine einfache Anfrage überspringt, wird unabhängig von display kein Thinking-Block erzeugt.Das signature-Feld ist identisch, unabhängig davon, ob display auf "summarized" oder "omitted" gesetzt ist. Das Wechseln der display-Werte zwischen Turns in einer Konversation wird unterstützt.
Die display-Einstellung steuert nur die Sichtbarkeit. Bei jeder Einstellung findet das Denken statt und wird gleich abgerechnet.
Der Standardwert für thinking.display hängt vom Modell ab:
"omitted". Denkblöcke erscheinen weiterhin im Response-Stream, aber ihr thinking-Feld ist leer, sofern du dich nicht explizit dafür entscheidest. Dies ist eine stille Änderung gegenüber Claude Opus 4.6, wo der Standard "summarized" war."summarized". Die lesbare Zusammenfassung erscheint ohne explizites Opt-in.Um zusammengefassten Denktext bei Modellen zu erhalten, bei denen der Standard "omitted" ist, setze thinking.display explizit auf "summarized":
thinking = {
"type": "adaptive",
"display": "summarized",
}Codebeispiele und Streaming-Verhalten mit display: "omitted" findest du unter Anzeige des Denkens steuern auf der Seite zum erweiterten Denken. Die dortigen Beispiele verwenden type: "enabled"; mit adaptivem Denken verwende:
thinking = {"type": "adaptive", "display": "omitted"}Der vollständige Denkinhalt wird verschlüsselt und im Feld signature zurückgegeben. Dieses Feld wird verwendet, um zu verifizieren, dass die Denkblöcke von Claude generiert wurden, wenn sie an die API zurückgegeben werden.
Es ist nur dann zwingend erforderlich, Denkblöcke zurückzusenden, wenn du Tools mit erweitertem Denken verwendest. Andernfalls kannst du Denkblöcke aus vorherigen Turns weglassen. Wenn du sie zurückgibst, hängt es vom Modell ab, ob die API sie beibehält oder entfernt: Opus 4.5+ und Sonnet 4.6+ behalten sie standardmäßig im Kontext; frühere Opus/Sonnet-Modelle und alle Haiku-Modelle entfernen sie. Siehe Kontextbearbeitung, um dies zu konfigurieren.
Wenn du Denkblöcke zurücksendest, gib alles so zurück, wie du es erhalten hast, um Konsistenz zu gewährleisten und potenzielle Probleme zu vermeiden.
Hier sind einige wichtige Überlegungen zur Verschlüsselung des Denkens:
signature_delta innerhalb eines content_block_delta-Events direkt vor dem content_block_stop-Event hinzugefügt.signature-Werte sind in Claude 4-Modellen deutlich länger als in früheren Modellen.signature-Feld ist ein opakes Feld und sollte nicht interpretiert oder geparst werden.signature-Werte sind plattformübergreifend kompatibel (Claude APIs, Amazon Bedrock und Google Cloud). Werte, die auf einer Plattform generiert wurden, sind mit einer anderen kompatibel.Bei Claude Fable 5 und Claude Mythos 5 wird die rohe Gedankenkette niemals zurückgegeben. Die Denkblöcke, die du erhältst, sind reguläre thinking-Blöcke, keine redacted_thinking-Blöcke. Die thinking.display-Einstellung funktioniert genauso wie bei anderen Modellen:
"summarized" gibt eine lesbare Zusammenfassung des Reasonings zurück."omitted" (der Standard bei diesen Modellen) enthält weiterhin thinking-Blöcke in den Antworten, aber ihr thinking-Feld ist ein leerer String.Die Response-Struktur von Denkblöcken findest du in der Messages-API-Referenz.
Wenn du eine Konversation mit demselben Modell fortsetzt, übergib jeden Denkblock genau so an die API zurück, wie du ihn erhalten hast, einschließlich Blöcken, deren thinking-Feld leer ist. Bearbeite oder rekonstruiere sie nicht. Das Lesen des Zusammenfassungstexts zur Anzeige ist in Ordnung: Die API lehnt Blöcke ab, deren Inhalt verändert wurde, nicht Blöcke, die du gelesen hast.
Wenn du das Modell wechselst, zum Beispiel nach einem Classifier-Refusal-Fallback, entferne thinking- und redacted_thinking-Blöcke aus vorherigen Assistant-Turns. Denkblöcke sind an das Modell gebunden, das sie erzeugt hat. Andere Modelle ignorieren sie stillschweigend, anstatt die Anfrage abzulehnen, aber ignorierte Blöcke fügen trotzdem Input-Token hinzu.
Zwei Ausnahmen, die unter Fallback-Credit behandelt werden:
fallback-Blöcke aus einem Mid-Output-Fallback bleiben dort, wo sie erschienen sind.Um Einblick in das Reasoning des Modells zu erhalten, lies die in diesem Abschnitt beschriebenen thinking-Blöcke, anstatt im Antworttext nach Reasoning zu fragen. Bei Claude Fable 5 kann eine Anfrage, die versucht, das interne Reasoning des Modells als Teil des Antworttexts zu erhalten, mit stop_details.category: "reasoning_extraction" abgelehnt werden. Siehe Refusal-Kategorien für die Feldreferenz und Hinweise zur Handhabung.
Vollständige Preisinformationen einschließlich Basistarifen, Cache-Schreibvorgängen, Cache-Treffern und Output-Token findest du auf der Preisseite.
Der Denkprozess verursacht Kosten für:
Wenn erweitertes Denken aktiviert ist, wird automatisch ein spezialisierter System-Prompt eingebunden, um diese Funktion zu unterstützen.
Bei Verwendung von zusammengefasstem Denken:
Bei Verwendung von display: "omitted":
thinking-Feld ist leer)Die abgerechnete Anzahl der Output-Token stimmt nicht mit der sichtbaren Token-Anzahl in der Antwort überein. Dir wird der vollständige Denkprozess in Rechnung gestellt, nicht der in der Antwort sichtbare Thinking-Inhalt.
Um zu sehen, wie viele abgerechnete Output-Token für internes Reasoning aufgewendet wurden, lies usage.output_tokens_details.thinking_tokens in der Antwort aus. Dieser Wert spiegelt das rohe Reasoning wider, das das Modell generiert hat (nicht den zusammengefassten Text, der im Body zurückgegeben wird), und ist immer kleiner oder gleich output_tokens. Ziehe ihn von output_tokens ab, um den Nicht-Reasoning-Anteil der Ausgabe näherungsweise zu bestimmen.
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokens bleibt die inklusive, maßgebliche Gesamtsumme, die für die Abrechnung verwendet wird. output_tokens_details ist eine schreibgeschützte Aufschlüsselung für Observability-Zwecke.
Die Seite zum erweiterten Denken behandelt mehrere Themen ausführlicher mit modusspezifischen Codebeispielen:
tool_choice-Einschränkungen, wenn das Denken aktiv ist.adaptive- und enabled/disabled-Modi bricht Cache-Breakpoints für Nachrichten (System-Prompts und Tool-Definitionen bleiben gecacht).max_tokens und Kontextfenster-Limits interagieren.Erfahre mehr über erweitertes Denken, einschließlich manuellem Modus, Tool-Nutzung und Prompt-Caching.
Steuere mit dem Effort-Parameter, wie gründlich Claude antwortet.
Was this page helpful?