[minimax M3 Bug] Bug Report: Raw internal tool-call tokens (]<]minimax[>[) leaking into minimax-m3 response content with stop chat
まだ誰も着手していません。
評価
調査の方向性
/v1/chat/completions エンドポイントを使用し、minimax-m3 モデルとツールスキーマを使って、ストリーミングと非ストリーミングの両方のリクエストで問題を再現することから始めます。成功したレスポンスと、message.content に ]<]minimax>[ が現れるケースを比較します。完了条件は、ツール呼び出しが構造化された tool_calls フィールドで一貫して返されるか、不正なペイロードが、raw token を含む 200 レスポンスを返すのではなく、明示的に検出可能なエラーを生成することです。
索引モデルが issue の本文から書いたものです。
説明
Which inference path did you use?
Other
Inference parameters
No response
Prompt / input
leaking into minimax-m3 response content
Expected behavior
Bug Report: Raw internal tool-call tokens (]<]minimax[>[) leaking into minimax-m3 response content
Actual behavior
when i coding with minimax m3 some times got this and stop chat , some times got continuously
minimax m3 ai:
Let me read that part to confirm.
I need to continue with Step 1. Let me read the run_one function to find where to add the state initialization Tuner.]<]minimax[>[<tool_call>
]<]minimax[>[]<]minimax[>[C:\encher\src\main.rs]<]minimax[>[]<]minimax[>[<start_line>130]<]minimax[>[</start_line>]<]minimax[>[<end_line>165]<]minimax[>[</end_line>]<]minimax[>[
]<]minimax[>[</tool_call>
Additional context
##################
i ask with it claude , say:
Bug Report (from claude): Raw internal tool-call tokens (]<]minimax[>[) leaking into minimax-m3 response content (
Summary
When using the minimax-m3 model through the Kilo Gateway / Kimchi API (OpenAI-compatible chat/completions endpoint), the model's internal tool-call boundary tokens (]<]minimax[>[) sometimes leak directly into the visible message.content field instead of being parsed into a proper structured tool_calls array. This produces garbled, unusable output on the client side and causes the calling application (an AI coding agent) to stall or fail mid-task.
Environment
- Model:
minimax-m3(accessed askimchi/minimax-m3via Kilo Gateway) - Endpoint:
/v1/chat/completions(OpenAI-compatible), both streaming and non-streaming - Client: OpenAI-compatible coding agent (opencode), via a local proxy that otherwise forwards requests unmodified
- Frequency: Intermittent — occurs "suddenly" and sometimes repeats for multiple consecutive requests before stopping
Expected behavior
When the model wants to invoke a tool/function, the response should contain a properly structured tool_calls array:
{
"choices": [{
"message": {
"role": "assistant",
"content": null,
"tool_calls": [{
"id": "call_...",
"type": "function",
"function": { "name": "...", "arguments": "{...}" }
}]
}
}]
}
Actual behavior
The model's raw internal boundary/delimiter tokens appear directly in message.content as plain text, wrapping what looks like an internal tool-call payload that was never converted into the structured format.
Reproduction examples (captured from live responses)
Example:
Debug derive conflict (BlendMode already has Debug). Fix:]<]minimax[>[ ]<]minimax[>[]<]minimax[>[C:\Users\yumin\Desktop\other\no\cons\tun\src\lib.rs]<]minimax[>[]<]minimax[>[/// Selected configuration for one scene.
#[derive(Debug, Clone, Copy, Debug)]
pub struct ConfigChoice { ... }
]<]minimax[>[]<]minimax[>[cargo test --release --manifest-path "..." --lib 2>&1 | grep -E "(test result|FAILED|error)" | head -10]<]minimax[>[]<]minimax[><]minimax[>[]<]minimax[>[
Observations
- The ]<]minimax[>[ sequence appears to function as an internal delimiter marking the boundaries of a tool call (target file path, code diff/content, and a shell command each appear as separate segments between markers).
- In Example 1, the payload between markers matches the shape of a code-edit tool call: file path → old/new code content → a test command → a numeric value (possibly a timeout in ms).
- This occurs on both streaming and non-streaming requests.
- Client-side retries of the same request sometimes succeed with a properly formatted tool_calls response, suggesting this is non-deterministic / load- or path-dependent on the gateway or model-serving side rather than a fixed per-request issue.
Impact
- Any client relying on structured
tool_calls(coding agents, function-calling integrations) receives unusable output and cannot execute the intended action. - Silent failures: there is no error status/code returned — the response is
200 OKwith malformed content, so clients that don't specifically pattern-match for this can't distinguish it from a legitimate (if unusual) text response.
Suggested fix directions
- Ensure the tool-call parsing/finalization step on the gateway (or model-serving layer) always converts these internal delimiter-wrapped segments into the structured
tool_callsfield before returning the response, for both streaming and non-streaming paths. - If the delimiter tokens are ever unparseable for some segments, return an explicit error (e.g.
finish_reason: "content_filter"or a5xx) rather than200 OKwith raw tokens incontent, so clients can detect and retry deterministically instead of silently receiving garbage. - Investigate why this is intermittent — whether it correlates with specific prompt/tool-schema shapes, concurrent load, or a specific upstream replica/version of
minimax-m3.
- 主要言語
- 言語のデータがありません
- スター
- 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 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
MiniMax-AI/MiniMax-M3#30 ·
MiniMax-AI/MiniMax-M3 の issue をすべて見る
似ている issue
-
external-plugin needs-review:HIGH ready-for-review
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
github/awesome-copilot#5162 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
bug llm p2
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
comp/tools P3 tool/delegate tool/memory tool/skills type/security
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
NousResearch/hermes-agent#141318 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Hot-memory dedupe (#5591) misses labeled and assistant-attributed facts, so they re-inject on every prompt対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンtriage:bug-verified
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
garrytan/gbrain#7023 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
paperclipai/paperclip#16785 ·
メンテナーはふだん 1 日以内に返信