MiniMax-M3 emits answer tokens before closing </think> — answer truncated after stripping reasoning
まだ誰も着手していません。
評価
調査の方向性
まず、提供された raw curl リクエストを MiniMax-M3 chat completions エンドポイントに対して実行して問題を再現し、thinking を有効にした状態でストリーミングモードと非ストリーミングモードでも繰り返します。reasoning_split=true の場合も含め、content と reasoning_content の境界を比較します。終了の 境界がすべての最終回答トークンに先行し、reasoning を除去しても完全な回答が保持されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
On the hosted OpenAI-compatible API (https://api.minimax.io/v1/chat/completions), MiniMax-M3 with thinking enabled intermittently emits the first tokens of the final answer before closing the </think> block. As a result, once the <think>...</think> block is stripped, the user-facing answer starts mid-sentence (its opening words are lost inside the reasoning block).
This is reproducible directly against the API, with no client framework involved, in both streaming and non-streaming modes. It is a property of the raw generation, not of any downstream parser.
Environment
- Model:
MiniMax-M3 - Endpoint:
https://api.minimax.io/v1/chat/completions(OpenAI-compatible) - Thinking: enabled (default / adaptive)
- Reproduced with raw
curl/fetch— no SDK, no LangChain, no vLLM.
Reproduction
curl -s https://api.minimax.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $MINIMAX_API_KEY" \
-d '{
"model": "MiniMax-M3",
"messages": [{ "role": "user", "content": "Hola" }],
"stream": false
}'
Run it ~8 times. In roughly 25% of runs the returned content looks like:
<think>
...reasoning... I should respond in a friendly manner.¡Hola! 👋 ¿Cómo
</think>
estás? Soy un asistente de IA aquí para ayudarte. ¿En qué puedo ayudarte hoy?
Note that the greeting ¡Hola! 👋 ¿Cómo was emitted inside the <think> block, and the text after </think> starts mid-sentence with estás?.
Actual behavior
The closing </think> boundary is placed after the model has already started the final answer, so the answer's opening tokens are trapped inside the reasoning block. Stripping <think>...</think> (the documented handling for the OpenAI native format) yields a truncated answer.
Observed rate on the prompt "Hola", non-streaming: 2/8 hard truncations + 1 partial (missing the leading ¡).
Expected behavior
</think> should close before any final-answer token is emitted. Everything inside <think>...</think> should be reasoning only; the final answer should be fully contained in the post-</think> content.
reasoning_split=true does not fix it (and is worse)
Setting reasoning_split=true (so thinking is returned in reasoning_content / reasoning_details) exhibits the same boundary defect: the answer's opening tokens land in reasoning_content, and content starts mid-sentence. Reproduced non-streaming as well:
content: "? Soy un asistente de IA y estoy aquí para ayudarte..."
reasoning_content: "...I should respond in a friendly manner...¡Hola! 👋 ¿Cómo estás"
Impact
Any integration that separates reasoning from the answer (the documented pattern) shows user-facing responses that begin mid-sentence. It affects real replies, not just greetings.
Notes
M2.7did not exhibit this in our testing.- Related but distinct reports (parser leaking
<mm:think>tags): vLLM #45687, #46042; Kilo-Org/kilocode #11203. This report is about the raw hosted-API generation placing the</think>boundary a few tokens into the answer.
- 主要言語
- 言語のデータがありません
- スター
- 491
- フォーク
- 59
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
MiniMax-AI/MiniMax-M3 のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
MiniMax-AI/MiniMax-M3#34 · リアクション 1 件 ·
-
[M2.7 Bug]オープンbug
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
MiniMax-AI/MiniMax-M3#35 ·
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
MiniMax-AI/MiniMax-M3#33 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 48/100
MiniMax-AI/MiniMax-M3#32 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
MiniMax-AI/MiniMax-M3#31 ·
MiniMax-AI/MiniMax-M3 の issue をすべて見る
似ている issue
-
python triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
microsoft/semantic-kernel#14615 ·
メンテナーはふだん 3 日以内に返信
-
area:providers needs-repro P3
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
Raaif-Yousuf/Wingman#799 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
langchain-ai/langchain-azure#1183 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
UKGovernmentBEIS/control-arena#917 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
repowise-dev/repowise#3961 ·
メンテナーはふだん 1 日以内に返信