Vor dem 18. Nov. von MiniMax M2.5/M2.7 wechseln: Den 400-Fehler „requires adaptive thinking“ bei M3.1 Flash beheben

AIHubMix9 Min. Lesezeit
Vor dem 18. Nov. von MiniMax M2.5/M2.7 wechseln: Den 400-Fehler „requires adaptive thinking“ bei M3.1 Flash beheben

MiniMax stellt M2.5 und M2.7 am 18. November 2026 ein, und die Umstellung hat bereits begonnen. Seit dem 19. Oktober stehen die beiden älteren Modellfamilien neuen Nutzern nicht mehr zur Verfügung; Anfragen über Tarife, die diese Modelle angeben, werden von M3.1 Flash bedient. Wenn Sie Pay-as-you-go nutzen, haben Sie vier Wochen Zeit, die Modell-ID selbst zu ändern.

Der meiste für M2.7 geschriebene Code läuft unverändert mit M3.1 Flash. Das Problem liegt in einer Designentscheidung: M3.1 Flash denkt immer und auf der tiefsten Stufe, sofern Sie nichts anderes angeben. Das führt zu einem auffälligen Fehler, einigen unauffälligen Kostensteigerungen und ein paar Einstellungen, die inzwischen gar nichts mehr bewirken.

AIHubMix hat am 19. Oktober 2026 alle Anfragen in diesem Beitrag über sein Gateway mit minimax-m3.1-flash ausgeführt. Die Fehlermeldungen wurden unverändert aus den Antworten übernommen. Die Regeln von MiniMax sind aus der API-Dokumentation zitiert.

Wer ist betroffen und was passiert?

Sie nutzen M2.5/M2.7 über Was passiert Frist
MiniMax M Plan / Token Plan Anfragen werden unter dem alten Namen von M3.1 Flash bedient Bereits geschehen (19. Okt.)
MiniMax Pay-as-you-go Alte IDs funktionieren weiterhin, bis sie eingestellt werden 18. Nov. 2026
Neues MiniMax-Konto M2.5/M2.7 nicht verfügbar 19. Okt. 2026

Auf der Modellseite von MiniMax heißt es für Nutzer mit Tarif: „Alle Anfragen an die Modelle M2.5 und M2.7 im Rahmen dieser Tarife werden automatisch an M3.1 Flash Preview weitergeleitet“ und „Die bestehenden Modellnamen funktionieren weiterhin.“ Für Pay-as-you-go-Nutzer gilt: „Nach der Einstellung funktionieren API-Anfragen an diese Modelle nicht mehr.“ Der Hinweis erwähnt keine automatische Weiterleitung für Pay-as-you-go. Rechnen Sie daher mit Fehlern statt mit einem Fallback.

Tarifnutzer sollten beachten, was „weitergeleitet“ bedeutet. In Ihren Logs steht weiterhin M2.7, aber die Gewichte sind andere, das Kontextfenster ist 5× größer und die Denktiefe ist standardmäßig auf max gesetzt. Behandeln Sie es als Modellwechsel und führen Sie Ihre Evals erneut aus.

Was auffällige Fehler verursacht

400: „requires adaptive thinking“

Was Sie sehen. Eine Anfrage, die das Denken deaktiviert, wird abgelehnt:

{"error": {"message": "invalid params, model \"MiniMax-M3.1-Flash\" requires adaptive thinking; thinking.type=\"disabled\" (including reasoning.effort=none) is not allowed (2013) (tid: …)", "type": "bad_request_error", "param": "", "code": null}}

Warum. Laut der Referenz zur Messages API von MiniMax „denkt das Modell immer“: Wird thinking.type übergeben, muss der Wert adaptive sein; disabled führt zu HTTP 400. Dieser Fehler kann auch bei Code für M3 auftreten, da M3 das Deaktivieren des Denkens ermöglicht. Frameworks, die das Modell als nicht schlussfolgernd einstufen und standardmäßig „thinking off“ senden, lösen den Fehler bei jedem Aufruf aus. Die Projekte kodus-ai und 9router-go haben beide Fälle dieser Art gemeldet.

Minimale Anfrage, die den Fehler auslöst (Chat Completions über AIHubMix):

curl https://aihubmix.com/v1/chat/completions \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "minimax-m3.1-flash",
       "messages": [{"role": "user", "content": "hi"}],
       "thinking": {"type": "disabled"}}'

Lösung. Entfernen Sie das Feld thinking oder setzen Sie es auf {"type": "adaptive"}. Wenn Sie das Denken deaktiviert haben, um Zeit zu sparen, verwenden Sie stattdessen "reasoning_effort": "low".

400 mit demselben Code 2013 bei Bild-URLs

Was Sie sehen. invalid param: remote returned status 400 (2013). Diesen Fehler erhielten wir bei einer Bild-URL auf upload.wikimedia.org. Dieselbe Anfrage mit einem Bild in Base64 oder einer Bild-URL von einem anderen Host lieferte den Status 200 zurück.

Warum. Code 2013 ist der allgemeine Fehlercode von MiniMax für „ungültige Parameter“ und hat nichts speziell mit dem Denken zu tun. In diesem Fall konnte der Upstream-Dienst das Remote-Bild offenbar nicht abrufen. Das ist unsere Interpretation der Meldung; MiniMax dokumentiert diesen Fall nicht.

Lösung. Senden Sie Bilder als Base64 (data:image/png;base64,…) oder hosten Sie sie an einem Ort, der einfache HTTP-Anfragen bedient. Wenn Sie Logs nach 2013 durchsuchen, lesen Sie die vollständige Meldung, bevor Sie davon ausgehen, dass es sich um den Fehler beim Denken handelt.

Nach dem 18. November: eingestellte Modell-IDs

Pay-as-you-go-Aufrufe an MiniMax-M2.5, MiniMax-M2.5-highspeed, MiniMax-M2.7 und MiniMax-M2.7-highspeed über die API von MiniMax funktionieren ab diesem Datum nicht mehr. M2.1 und M2 sind in der Mitteilung nicht aufgeführt. Ändern Sie die Modell-ID vorher. Bei AIHubMix lautet die neue ID minimax-m3.1-flash.

Was unauffällig schiefläuft

Alle diese Anfragen liefern den Status 200. Der Unterschied zeigt sich auf der Rechnung, bei der Latenz oder in der Ausgabe.

1. Schalter für „Denken aus“, die nichts mehr bewirken

Über AIHubMix werden drei Arten, kein Denken anzufordern, ohne Fehler akzeptiert – trotzdem denkt das Modell:

Anfrage Ergebnis über AIHubMix
Messages API, thinking deaktiviert 200; 469–622 Denktokens bei einem kurzen Rätsel
Chat, reasoning_effort none 200; 265–372 Reasoning-Tokens beim selben Rätsel
Chat, reasoning_effort minimal 200; das Modell denkt weiterhin

Die ersten beiden Zeilen beruhen jeweils auf drei Durchläufen desselben Logikrätsels mit drei Kästchen. Bei low wurden 173–251 Reasoning-Tokens verwendet. Für die Prüfung von „minimal“ gab es einen Durchlauf mit einer einzeiligen Rechenaufgabe.

Nur bei Chat Completions erzeugt thinking: {"type": "disabled"} den oben genannten 400-Fehler. Wenn Ihr M2.x- oder M3-Code auf einen dieser Schalter gesetzt hat, damit die Aufrufe schnell bleiben, denkt das Modell jetzt unbemerkt mit. Der einzige wirksame Hebel ist die Denkleistung; die niedrigste Stufe ist low.

2. Die standardmäßige Denkleistung ist max

M2.7 hatte keine Denkstufen. M3.1 Flash hat fünf, und laut der Dokumentation von MiniMax gilt beim Weglassen des Felds max. Bei einer kleinen Korrektur von zwei Fehlern in einer Python-Funktion hat AIHubMix Folgendes gemessen:

Einstellung Durchschnittliche Reasoning-Tokens Durchschnittliche Dauer Durchschnittliche Kosten pro Korrektur
Denkleistung nicht angegeben 6,364 56 s $0.0045
Denkleistung low 591 9.5 s $0.0006

Jeder Durchlauf mit beiden Einstellungen bestand alle 215 versteckten Tests. Die Kosten basieren auf den Preisen von AIHubMix von $0.165 pro Million Eingabetokens und $0.66 pro Million Ausgabetokens sowie jeweils drei Durchläufen. Wenn Sie migrieren, ohne eine Denkleistung festzulegen, dauert dieselbe Aufgabe etwa 6× so lange. Die vollständige Messung für alle fünf Stufen finden Sie im Beitrag zur Denkleistung in dieser Reihe.

3. Denken wird auf max_tokens angerechnet

Denktokens zählen zu max_tokens. M2.x-Code legt für kurze Antworten oft kleine Limits fest. Bei max_tokens: 64 und einer Frage, die mit zwei Sätzen beantwortet werden sollte, verbrauchte das Modell das Tokenbudget mit Denken und gab anschließend finish_reason: "length" sowie die Antwort „Sunlight contains many colors,“ zurück, die mitten im Satz abbrach. MiniMax empfiehlt 131,072 und erlaubt bis zu 524,288. Erhöhen Sie niedrige Limits oder prüfen Sie finish_reason, bevor Sie dem Text vertrauen.

4. Caching und Service-Tiers haben sich geändert

  • cache_control wird bei M3.1 Flash (und M3) laut API-Referenz von MiniMax nicht unterstützt. Bei M2.7 wurden explizite Cache-Schreibvorgänge mit $0.375 pro Million berechnet. Bei M3.1 Flash erfolgt das Caching automatisch. AIHubMix berechnet Cache-Lesevorgänge mit $0.0165 pro Million. Bei jeder von uns gesendeten Anfrage wurden etwa 175–195 Prompt-Tokens aus dem Cache bereitgestellt, sogar bei der ersten. Das scheint ein festes Präfix auf der Seite von MiniMax zu sein; zu diesem Preis kostet es etwa ein Drittel eines Cents pro tausend Anfragen. Entfernen Sie cache_control-Blöcke; sie bewirken hier nichts.
  • service_tier wird nicht unterstützt. Wenn Sie bei M3 den Priority-Tier für eine geringere Latenz verwendet haben, gibt es bei Flash keine entsprechende Option.

5. Gleicher Name, anderes Sampling

Die Standardwerte von MiniMax haben sich von top_p 0.9 bei M2.x auf 0.95 bei M3.1 Flash geändert, und das Kontextfenster ist von 204,800 auf 1,000,000 Tokens gewachsen. Prompts, die für M2.7 optimiert wurden, können längere oder weniger präzise Ausgaben liefern. Ein Modell unter einem unveränderten Namen ist trotzdem ein neues Modell: Führen Sie Ihre Evals erneut aus.

Abrechnungsregeln, die leicht übersehen werden

  • Denken wird als Ausgabe abgerechnet. Bei AIHubMix sind das $0.66 pro Million. Bei der standardmäßigen Denkleistung entfielen bei unserer Fehlerkorrektur 95% der Ausgabe auf das Denken (6,364 von 6,673 Tokens).
  • MiniMax hat noch keinen offiziellen Preis pro Token veröffentlicht. Auf der Preisseite werden M3 und M2.x aufgeführt, aber nicht M3.1 Flash. AIHubMix berechnet $0.165 / $0.66 / $0.0165 (Eingabe / Ausgabe / Cache-Lesevorgänge).
  • Der offizielle Preis von M3 verdoppelt sich bei mehr als 512K Eingabetokens. AIHubMix gibt für M3.1 Flash einen einheitlichen Preis an. Wenn Sie sehr lange Prompts senden, vergleichen Sie Ihre erste Rechnung mit Ihrer eigenen Schätzung.

So senken Sie die Kosten:

  1. Legen Sie reasoning_effort: "low" (Chat), output_config.effort: "low" (Messages) oder reasoning.effort: "low" (Responses) als Standard fest und erhöhen Sie den Wert je nach Aufgabe.
  2. Platzieren Sie stabile Anweisungen am Anfang des Prompts, damit sie durch automatisches Caching bereitgestellt werden können.
  3. Legen Sie max_tokens hoch genug fest, damit das Denken die Antwort nicht abschneidet. Eine gekürzte Antwort, die Sie erneut anfordern müssen, kostet mehr als der zusätzliche Spielraum.

Agenten mit echten Berechtigungen

Drei Verhaltensweisen sind wichtig, wenn das Modell Befehle ausführen oder Dateien bearbeiten kann:

  • Es denkt immer nach, bevor es handelt, selbst bei low. Das hilft bei der Auswahl von Tools. Zugleich bedeutet es, dass jeder Tool-Schritt Denk-Latenz verursacht; bei unseren kurzen Tool-Aufrufen dauerte ein Schritt bei low etwa 2 bis 7 Sekunden.
  • Es setzt Anweisungen eng gefasst um. Ein früher Tester nannte es „unglaublich schnell, aber es braucht klare und konkrete Anweisungen, sonst ist es zu faul“. Geben Sie Agenten klare Abbruchbedingungen und Prüfschritte vor („Führe die Tests aus und füge die Ausgabe ein“), statt offene Ziele zu formulieren.
  • tool_choice ist offiziell nur als auto verfügbar. AIHubMix akzeptierte "required" (Chat) und {"type": "any"} (Messages), und das Modell rief das Tool tatsächlich auf. MiniMax dokumentiert jedoch nicht, dass das Erzwingen funktioniert. Bauen Sie keine Sicherheitsprüfung darauf auf.

MiniMax empfiehlt, Denkblöcke in späteren Nachrichten unverändert zurückzugeben (Messages) und reasoning_content beizubehalten (Chat). In unserem Test funktionierte ein kurzer Tool-Aufruf mit Rückgabe auch dann, wenn der Denkblock entfernt wurde. Halten Sie sich in längeren Agentenschleifen jedoch an die dokumentierte Regel.

Coding-Tools

AIHubMix stellt minimax-m3.1-flash über alle drei Protokolle bereit, die gängige Coding-Tools benötigen. Jedes Tool wurde am 19. Oktober mit Text, einem Tool-Aufruf und einer Rückgabe des Tool-Ergebnisses getestet.

Tool Benötigtes Protokoll Funktioniert über AIHubMix Feld für Denkleistung
Claude Code Anthropic Messages Ja output_config.effort
Codex CLI OpenAI Responses Ja reasoning.effort
OpenCode OpenAI-kompatibel Ja reasoning_effort

Das Kontextfenster beträgt in der API von MiniMax 1,000,000. Der Client von MiniMax Code ist standardmäßig auf 512K eingestellt, „um ein ausgewogenes Verhältnis zwischen Benutzererlebnis und Kosten zu bieten“. Das geht aus einem Zitat der MiniMax-Dokumentation durch einen Maintainer im Projekt magpie hervor. Die API hat keinen Parameter für das Kontextfenster.

Claude Code. Richten Sie es wie in der Claude-Code-Anleitung von AIHubMix beschrieben auf AIHubMix aus und legen Sie das Modell auf minimax-m3.1-flash fest:

export ANTHROPIC_BASE_URL="https://aihubmix.com"
export ANTHROPIC_AUTH_TOKEN="$AIHUBMIX_API_KEY"
export ANTHROPIC_MODEL="minimax-m3.1-flash"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="minimax-m3.1-flash"   # background tasks too

Die beiden Thinking-Formen, die Clients im Anthropic-Stil senden – enabled mit einem Budget und adaptive – gaben in unseren Tests beide den Statuscode 200 zurück. Daher tritt der 400-Fehler nicht auf. Bekannte Einschränkung: Es ist nicht dokumentiert, ob die Effort-Einstellung von Claude Code als output_config.effort an ein Nicht-Claude-Modell weitergegeben wird. Falls nicht, läuft das Modell mit seinem Standardwert max, und die Durchläufe dauern länger als mit M2.7. Der folgende Smoke-Test zeigt, woran du das erkennst.

Codex CLI. Codex kommuniziert über die Responses API, die mit diesem Modell funktioniert: Funktionsaufrufe werden als function_call-Elemente zurückgegeben. Richte wie in der AIHubMix-Anleitung für Codex einen benutzerdefinierten Anbieter mit wire_api = "responses" ein und lege dann model = "minimax-m3.1-flash" sowie model_reasoning_effort fest. Sowohl xhigh als auch minimal wurden akzeptiert. minimal gehört nicht zu den Effort-Stufen von MiniMax, und das Modell denkt trotzdem nach.

OpenCode. Im OpenCode-Issue #54801 (reproduziert mit v2.0.27) wird berichtet, dass OpenCode für dieses Modell keine Effort-Varianten auflöst, sodass ctrl+t nichts bewirkt. Als Workaround werden im Issue die fünf Varianten manuell in opencode.json definiert. Beim OpenAI-kompatiblen Anbieter von AIHubMix sollte jede Variante das Anforderungsfeld reasoning_effort (low … max) statt output_config.effort aus dem Issue setzen. Füge keine Variante none hinzu.

Ein 15-minütiger Smoke-Test für jedes der drei Tools:

  1. Erstelle einen temporären Ordner mit einer Funktion, die einen bekannten Fehler enthält, und einer Testdatei, deren Tests deshalb fehlschlagen.
  2. Bitte den Agenten: „Führe die Tests aus, behebe den Fehler, führe die Tests erneut aus und zeige mir die Ausgabe.“
  3. Das sollte dabei herauskommen: Der Agent führt die Tests vor und nach der Fehlerbehebung aus, der abschließende Testlauf ist erfolgreich, die Aufgabe ist nach wenigen Durchläufen erledigt und keiner der Durchläufe endet mit einem 400-Fehler.
  4. Prüfe das AIHubMix-Nutzungsprotokoll. Dort sollten Anfragen an minimax-m3.1-flash mit Reasoning-Tokens erscheinen. Dauert jeder Durchlauf fast eine Minute, wird deine Effort-Einstellung nicht an das Modell weitergegeben, das dann mit max läuft.

Migrations-Checkliste

  • Ersetze vor dem 18. November die IDs MiniMax-M2.5 / M2.7 durch minimax-m3.1-flash (auf AIHubMix).
  • Entferne aus den Anfragen „Thinking deaktiviert“, „Effort none“ und „Effort minimal“.
  • Lege für jede Anfrage explizit eine Effort-Stufe fest; beginne mit low.
  • Erhöhe max_tokens, damit das Thinking die Antworten nicht abschneidet; prüfe finish_reason.
  • Entferne die Felder cache_control und service_tier.
  • Sende Bilder als Base64 oder von einem Host, auf den das Upstream-Modell zugreifen kann.
  • Übernimm Thinking-Blöcke und reasoning_content bei Tool-Aufrufen unverändert.
  • Führe deine Evals erneut aus: gleicher Name, neues Modell, neue Sampling-Standards.
  • Prüfe bei Coding-Tools, ob die Effort-Einstellung das Modell erreicht (die Dauer eines Durchlaufs ist ein schneller Hinweis).

FAQ

Warum erhalte ich die Meldung „requires adaptive thinking“?
Deine Anfrage hat Thinking deaktiviert, meist über den Thinking-Typ „disabled“ beim Chat-Completions-Endpunkt. M3.1 Flash denkt immer nach. Entferne das Feld oder setze es auf adaptive. Wenn du mehr Geschwindigkeit möchtest, verwende effort low.

Meine M2.7-Anfragen haben sich nicht geändert, aber die Antworten schon. Warum?
Wenn du einen MiniMax M Plan oder Token Plan nutzt, werden Anfragen mit M2.5 oder M2.7 seit dem 19. Oktober 2026 unter dem alten Namen von M3.1 Flash verarbeitet.

Bis wann können Nutzer mit nutzungsabhängiger Abrechnung wechseln?
Bis zum 18. November 2026. Danach funktionieren MiniMax-API-Anfragen an M2.5 und M2.7 nicht mehr.

Funktioniert reasoning_effort none auf AIHubMix?
Die Anfrage gibt zwar den Statuscode 200 zurück, aber das Modell denkt trotzdem nach. Die niedrigste wirksame Stufe ist low.

Benötige ich cache_control weiterhin?
Nein. MiniMax unterstützt es bei M3.1 Flash nicht. Das Caching erfolgt automatisch, und AIHubMix berechnet für gecachte Eingaben 0,0165 $ pro Million Tokens.

Kann ich M3.1 Flash mit Claude Code und Codex verwenden?
Ja. AIHubMix stellt das Modell für Claude Code über die Anthropic Messages API und für Codex über die Responses API bereit. Beide haben am 19. Oktober 2026 die Tests mit Text, Tool-Aufrufen und Tool-Ergebnissen bestanden.

Warum werden meine Antworten abgeschnitten?
Thinking-Tokens zählen zu max_tokens. Wenn finish_reason den Wert length hat, erhöhe max_tokens. MiniMax empfiehlt 131,072.

Weiterlesen: die MiniMax-M3.1-Flash-Reihe

Quellen