Skip to content

feat(llm): integrate MiniMax M3 UnifiedParser - #18131

Open
furionw wants to merge 1 commit into
release/1.7.0from
qiwa/cherrypick-17236-1.7.0-integrate-minimax-m3-unifiedparser
Open

furionw wants to merge 1 commit into
release/1.7.0from
qiwa/cherrypick-17236-1.7.0-integrate-minimax-m3-unifiedparser

Conversation

@furionw

@furionw furionw commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Overview

Backport of #17236 to release/1.7.0, which is in QA. Today dynamo.frontend sends MiniMax M3 and M3.1 deployments in default auto mode through the legacy V1 parser. That parser holds adaptive answer text until generation completes, so a client sees no content deltas before the end, and the held text is lost if the backend fails mid-stream. This routes M3 through the V2 UnifiedParser instead, keeps V1 as the rollback, and reads the reasoning state from the rendered prompt.

This is a clean cherry-pick of 26d0133cf6: the added and removed lines are identical to the source commit. Only context lines differ, in two files, because this branch does not have #17586.

Key Changes

Core logic is 88 added lines on the source PR, excluding tests, comments and whitespace.

  • M3 and M3.1 auto mode selects the V2 UnifiedParser and recognizes M3 reasoning and tool markers.
  • Reasoning state comes from the rendered prompt; the explicit-guidance channel policy is unchanged.
  • Tool-choice guidance covers native M3 tool output for named and required choices.

Validation

Check on this branch Result
Added and removed lines against the source commit identical (520 lines)
Focused dynamo-llm unit tests, built with --no-default-features (filters: unified_parser, preprocessor, tool_choice, aggregator) 710 passed, 0 failed, 12 ignored; 35 are M3 tests
Merge with #18085 (the #17586 backport), which edits the same two files clean, in either merge order
pre-commit on the four changed files passed

A review of the diff found no correctness problem in the added lines. It found one gap specific to this branch, the logprobs behavior under Issues below, which comes from #17586 being absent here.

Not rerun on this branch: the four live Qwen generation probes on a stock vLLM 0.32.0 server that the source PR reports. Release-branch CI for head 45188e3f68 passed on run attempt 2, which was a rerun with no code change. In attempt 1, two test jobs were cut off before pytest recorded an exit code, and a vLLM image build was cancelled at its time limit.

Issues and Ongoing Work

Refs DIS-3197

Pull Request Checklist
  • I used Dynamo's /pr-checklist skill.

🤖 Generated with Claude Code

Signed-off-by: Matthew Wittwer <mwittwer@nvidia.com>
Signed-off-by: furionw <qiwa@nvidia.com>
Co-authored-by: Qi Wang <qiwa@nvidia.com>
(cherry picked from commit 26d0133)
Signed-off-by: furionw <qiwa@nvidia.com>
@github-actions github-actions Bot added feat frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` labels Nov 4, 2026
@furionw
furionw marked this pull request as ready for review November 4, 2026 21:05
@furionw
furionw requested a review from a team as a code owner November 4, 2026 21:05
@furionw
furionw enabled auto-merge (squash) November 4, 2026 23:20
@devin-ai-integration

Copy link
Copy Markdown
Contributor

✅ Dynamo PR CI passed — run 41912640634 (attempt 2) on 45188e3f68

Gate checks: ✅ backend-status-check · ✅ deploy-status-check · ✅ dynamo-status-check

Posted automatically by Devin for run 41912640634. Updated on every full-CI run of this PR.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat frontend `python -m dynamo.frontend` and `dynamo-run in=http|text|grpc` size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants