Zurück zum Blog

KI-Patterns

Thinking-Level im Vergleich: sieben Werte, zwölf Interpretationen

Sieben übliche Werte von none bis max, vier verschiedene Parameternamen und zwölf Anbieter, die jeweils etwas anderes daraus machen. Wir haben jeden Thinking-Level an jedes Modell geschickt und notiert, was angenommen, abgelehnt und tatsächlich gedacht wurde.

SvK Sven von Känel 10 Min Lesezeit
  • KI
  • Reasoning
  • LLM-Kosten

TLDR

Jeder Anbieter versteht unter „Reasoning Effort" etwas anderes. Von sieben üblichen Werten akzeptierten die Modelle zwischen zwei und sieben; abgelehnte Werte enden mit HTTP 400. Router nehmen oft alles an – auch Werte, die der Anbieter dahinter ablehnt. Das Denken selbst wird immer als Output bezahlt, auch wenn man es nicht zu sehen bekommt. Teil 2 der Serie „Was ein LLM-Aufruf wirklich kostet".

Einleitung

Reasoning-Modelle „denken" vor der Antwort, und man kann ihnen sagen, wie gründlich. Das klingt nach einem einfachen Regler: wenig Denken für einfache Fragen, viel Denken für schwere. In der Praxis heißt der Regler bei jedem Anbieter anders, hat andere Stufen und reagiert unterschiedlich auf Werte, die er nicht kennt.

Für eine Anwendung, die mehrere Anbieter anspricht, ist das mehr als eine Stilfrage: Ein falscher Wert ist ein Fehler zur Laufzeit – oder, schlimmer, er wird still ignoriert.

1. Der Parameter-Zoo

Anbieter Parameter Werte laut Doku
OpenAI (Responses) reasoning.effort none bis max, je Modell verschieden
OpenAI (Chat Completions), xAI Chat, Router reasoning_effort je Anbieter
Anthropic output_config.effort low, medium, high, xhigh, max
Gemini 3 / 4 thinkingLevel low, medium, high (je Modell mehr)
Gemini 2.5 thinkingBudget Tokenzahl, 0 = aus
Open-Source-Modelle enable_thinking, thinking, reasoning_effort je Hoster

Gemini lehnt thinkingLevel und thinkingBudget in derselben Anfrage ab. Das alte budget_tokens von Anthropic beantworteten alle drei getesteten Claude-Modelle mit HTTP 400.

2. Was angenommen wird

Wir haben eine kleine Denkaufgabe (die klassische „Schläger und Ball"-Frage) mit jedem der sieben Werte an jedes Modell geschickt. In der Tabelle steht, ob der Wert angenommen wurde, und dahinter die gemeldeten Reasoning-Tokens:

Modell none minimal low medium high xhigh max
GPT-6.1 Sol ✗ ✗ ✓ 11 ✓ 14 ✓ 13 ✓ 34 ✓ 68
GPT-5.6 Luna (Responses) ✓ 0 ✗ ✓ 0 ✓ 17 ✓ 23 ✓ 23 ✓ 45
gpt-5-mini ✗ ✓ 0 ✓ 64 ✓ 128 ✓ 320 ✗ ✗
Claude Sonnet 5.5 ✗ ✗ ✓ 0 ✓ 0 ✓ 0 ✓ 0 ✓ 107
Claude Haiku 5.5 ✗ ✗ ✓ 0 ✓ 0 ✓ 50 ✓ 53 ✓ 172
Grok 4.7 ✗ ✓ 251 ✓ 190 ✓ 233 ✓ 413 ✓ 318 ✗
Gemini 3.8 Flash ✗ ✗ ✓ 72 ✓ 256 ✓ 266 ✗ ✗
Mistral Medium ✓ 0 ✗ ✗ ✗ ✓ 306 ✗ ✗
gpt-oss-120b bei IONOS ✗ ✗ ✓ 12 ✓ 134 ✓ 200 ✗ ✗
Claude Sonnet 5 über Cortecs ✓ 0 ✓ 0 ✓ 0 ✓ 0 ✓ 0 ✓ 0 ✓ 61

✓ angenommen (Reasoning-Tokens), ✗ HTTP 400. Einzelaufrufe vom 19.10.2026; die Tokenzahlen schwanken von Aufruf zu Aufruf.

Was auffällt:

  • OpenAI ist je Modell verschieden: GPT-6.1 Sol lehnt none und minimal ab, gpt-5-mini lehnt xhigh und max ab.
  • Anthropic lehnt none und minimal ab und hat als einziger Direktanbieter max. Bei Sonnet 5 und 5.5 entstand für unsere Aufgabe bis xhigh kein einziges Reasoning-Token, erst max dachte nach. Der Effort ist bei Claude eine Obergrenze, kein Auftrag.
  • xAI lässt sich nicht abschalten; none wird abgelehnt.
  • Gemini 3.8 Flash akzeptiert nur low, medium und high – und denkt ohne Vorgabe so viel wie bei high. Das Denken meldet Gemini als thoughtsTokenCount.
  • Mistral akzeptierte nur none und high.
  • IONOS lehnte für Qwen3.8-27B den Wert high ab, xhigh dagegen nicht. Logik ist bei Hostern offenbar optional.

3. Router nehmen alles an

Cortecs akzeptierte alle sieben Werte für Claude, darunter none und minimal, die Anthropic direkt ablehnt. Auch EU Router nahm für Claude jeden Wert an. Was der Router daraus macht, bleibt unsichtbar: Cortecs dokumentiert eine Übersetzung in Thinking-Budgets von 1 024 bis 4 096 Tokens, die sich an den Antworten nicht ablesen lässt (nicht messbar). Requesty meldet für Claude überhaupt keine Reasoning-Tokens.

Ein Router, der jeden Wert annimmt, verhindert Fehler zur Laufzeit. Er verhindert aber auch, dass Sie merken, wenn Ihr Wert nicht ankommt. Über EU Router dachte gpt-oss-120b in unserem Einzelaufruf bei high sogar weniger als bei low.

4. Verborgenes Denken, voll bezahlt

Reasoning-Tokens werden als Output berechnet – und Output ist das Teuerste an einem Aufruf (bei Claude Sonnet 5 fünfmal so teuer wie Input). Gezeigt wird das Denken dagegen selten:

  • OpenAI zeigt die Reasoning-Tokens nicht; gpt-5-mini berechnete 256 davon für eine Antwort von acht Zeichen.
  • Claude Haiku 5.5 berechnete 53 Thinking-Tokens, ohne eines davon anzuzeigen.
  • Wer also nur die sichtbare Antwort zählt, unterschätzt die Kosten systematisch.

Tipp: Lesen Sie die Reasoning-Felder aus der Usage und protokollieren Sie sie getrennt. Nur so sehen Sie, ob ein höherer Effort den Aufruf tatsächlich teurer macht.

5. Effort und Cache

Ein Wechsel des Thinking-Levels kostet bei OpenAI, xAI, Gemini, Claude Sonnet 5 und den Open-Source-Modellen den Prompt-Cache – nur Claude Sonnet 5.5 und Haiku 5.5 behalten ihn. Details dazu in Teil 1. Für die Architektur heißt das: Den Effort pro Gespräch festlegen, nicht pro Nachricht.

6. So haben wir es in .NET gelöst

Evanto.ChatClients kennt genau einen Effort-Wortschatz – none, low, medium, high, xhigh, max – und übersetzt ihn pro Anbieter. Für Claude wird aus none ein low, weil die aktuellen Modelle Denken nicht abschalten lassen:

private static String? ToAnthropicEffort(ReasoningEffort effort) => effort switch
{
    ReasoningEffort.None      => "low",
    ReasoningEffort.Low       => "low",
    ReasoningEffort.Medium    => "medium",
    ReasoningEffort.High      => "high",
    ReasoningEffort.ExtraHigh => "xhigh",
    _                         => null
};

Quelle: ToAnthropicEffort (Auszug)

max gibt es nur bei Anthropic und wird für andere Anbieter mit einer Warnung im Log verworfen. In CompanyWizard bietet die Admin-Oberfläche pro Modell nur die Stufen an, die der Modellkatalog für dieses Modell kennt.

Lesson Learned: Ein grüner Verbindungstest sagt nichts darüber, ob der Anbieter Ihren Effort akzeptiert – der Test schickt keinen. Ein abgelehnter Wert zeigt sich deshalb erst im ersten echten Chat – als HTTP 400 mit dem Text des Anbieters.

7. Was bewusst offen blieb

  • Qualität: Wir haben gemessen, was angenommen und berechnet wird, nicht, ob die Antworten besser werden.
  • Streuung: Reasoning-Tokens schwanken von Aufruf zu Aufruf; die Tabelle zeigt Einzelaufrufe.
  • OpenRouter vereinheitlicht die Werte nicht vollständig: Für Claude nahm es alle sieben an, für gpt-oss-120b lehnte es none ab.

Fazit: übertragbare Patterns

  1. Effort-Werte pro Modell pflegen, nicht pro Anbieter – selbst OpenAI ist uneinheitlich.
  2. Abgelehnte Werte abfangen: HTTP 400 mit einer Meldung wie „not supported" ist ein Konfigurationsfehler, kein Netzwerkproblem.
  3. Router-Antworten prüfen: Angenommen heißt nicht weitergegeben.
  4. Reasoning-Tokens getrennt protokollieren, denn sie stecken im teuren Output.
  5. Den Effort pro Gespräch festlegen, um den Cache nicht zu verlieren.

Alle Rohdaten und Skripte: github.com/evanto-media-ag/llm-caching-reasoning-costs

Die Serie

Referenzen


Sie wollen wissen, welcher Thinking-Level sich für Ihren Anwendungsfall rechnet? Lassen Sie uns 30 Minuten über Ihren konkreten Workflow sprechen – unverbindlich, kostenlos, mit konkreten Vorschlägen am Ende. 30-Min-Gespräch buchen

Hinweis: Artikel mit KI-Unterstützung erstellt.

NEWSLETTER

Vier bis sechs Mal im Jahr, kein Werbe-Lärm.

Ein Pattern, ein Case, eine Empfehlung. Anmeldung mit Double-Opt-In, jederzeit kündbar.