Skip to content

Fix some Mistral parser issues#37209

Merged
ywang96 merged 2 commits intovllm-project:mainfrom
juliendenize:fix_parser_only
Mar 17, 2026
Merged

Fix some Mistral parser issues#37209
ywang96 merged 2 commits intovllm-project:mainfrom
juliendenize:fix_parser_only

Conversation

@juliendenize
Copy link
Contributor

@juliendenize juliendenize commented Mar 16, 2026

Purpose

This PR seeks to fix some parser issues before refactoring how Mistral handle requests inspired by #37081

Test Plan

Test Result


Essential Elements of an Effective PR Description Checklist
  • The purpose of the PR, such as "Fix some issue (link existing issues this PR will resolve)".
  • The test plan, such as providing test command.
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.
  • (Optional) Release notes update. If your change is user facing, please update the release notes draft in the Google Doc.

Signed-off-by: juliendenize <julien.denize@mistral.ai>
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several fixes to the Mistral parser to improve its robustness. The changes include moving imports for better compatibility, adding type hints for clarity, and making the tool parsing logic more resilient. Specifically, assertions are replaced with conditional checks to prevent crashes, and checks for tool call tokens are made more robust by considering both token IDs and their text representation.

My review focuses on a potential remaining issue in the streaming tool call parsing logic. While the changes are improvements, the parser might still fail if the special [TOOL_CALLS] token is split across multiple streaming chunks, which could lead to incorrect parsing. I've provided a detailed comment on this.

@ywang96 ywang96 added the ready ONLY add when PR is ready to merge/full CI is needed label Mar 16, 2026
@ywang96 ywang96 enabled auto-merge (squash) March 16, 2026 21:31
@ywang96 ywang96 merged commit 5db91f0 into vllm-project:main Mar 17, 2026
48 checks passed
Lucaskabela pushed a commit to Lucaskabela/vllm that referenced this pull request Mar 17, 2026
Signed-off-by: juliendenize <julien.denize@mistral.ai>
andylolu2 pushed a commit to andylolu2/vllm that referenced this pull request Mar 18, 2026
Signed-off-by: juliendenize <julien.denize@mistral.ai>
wendyliu235 pushed a commit to wendyliu235/vllm-public that referenced this pull request Mar 18, 2026
Signed-off-by: juliendenize <julien.denize@mistral.ai>
fxdawnn pushed a commit to fxdawnn/vllm that referenced this pull request Mar 19, 2026
Signed-off-by: juliendenize <julien.denize@mistral.ai>
bbrowning added a commit to bbrowning/vllm that referenced this pull request Mar 26, 2026
Audited recent tool parser bug-fix PRs and found that several
landed without corresponding test coverage. Added unit tests
for each fix to prevent regressions.

- Mistral: fast detokenization text detection (PR vllm-project#37209)
- Qwen3Coder: malformed XML crash, anyOf double-encoding,
  speculative decode streaming (PRs vllm-project#36774, vllm-project#36032, vllm-project#35615)
- DeepSeekV32: delimiter preservation with fast detokenization,
  skip_special_tokens adjustment (PR vllm-project#33964)
- GLM-4 MoE: zero-argument tool calls, transformers 5.x delimiter
  handling, Unicode character preservation (PRs vllm-project#32321, vllm-project#31622, vllm-project#30920)
- MiniMax M2: anyOf nullable parameter handling for non-null and
  null values (PR vllm-project#32342)
- Step3p5: MTP-style variable-chunk and multi-token streaming
  (PR vllm-project#33690)
- Kimi K2: native tool call ID extraction and multi-turn ID
  continuity (PR vllm-project#32768)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Signed-off-by: Ben Browning <bbrownin@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend ready ONLY add when PR is ready to merge/full CI is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants