Issue with Tool Call Parsing in MiMo-V2-Flash (tau2 Reproduction)

#40
by seungseop - opened

Hi Xiaomi MiMo Team,

Thank you so much for open-sourcing such impressive models and sharing your research! Your contributions to the community are greatly appreciated.

I am currently working on reproducing the tau2 benchmark scores reported for MiMo-V2-Flash. However, while setting up the evaluation environment using SGLang, I encountered a critical parsing issue that prevents the model from successfully executing tool calls.

[Problem Description]
Despite the explicit instruction in the chat template ("DO NOT use function calls inside <think></think> tags"), the model frequently generates tool call XML within the reasoning block.

This leads to a structural failure in SGLang’s parsing logic:

  • When --reasoning-parser is enabled, SGLang splits the output into reasoning_content and content.
  • The --tool-call-parser mimo only scans the content section for valid calls.
  • Because the tool XML is "trapped" inside the <think> tags, it is categorized solely as reasoning content, and the parser returns "tool_calls": null.

[Environment & Setup]
I am using the following configuration for the SGLang server:

pip install sglang==0.5.6.post2.dev8005+pr.15207.g39d5bd57a \
  --index-url https://sgl-project.github.io/whl/pr/ \
  --extra-index-url https://pypi.org/simple

# Launch the server
SGLANG_ENABLE_SPEC_V2=1 python3 -m sglang.launch_server \
        --model-path XiaomiMiMo/MiMo-V2-Flash \
        --served-model-name mimo-v2-flash \
        --pp-size 1 \
        --dp-size 2 \
        --enable-dp-attention \
        --tp-size 8 \
        --moe-a2a-backend deepep \
        --page-size 1 \
        --host 0.0.0.0 \
        --port 9001 \
        --trust-remote-code \
        --mem-fraction-static 0.75 \
        --max-running-requests 128 \
        --chunked-prefill-size 16384 \
        --reasoning-parser qwen3 \
        --tool-call-parser mimo \
        --context-length 262144 \
        --attention-backend fa3 \
        --speculative-algorithm EAGLE \
        --speculative-num-steps 3 \
        --speculative-eagle-topk 1 \
        --speculative-num-draft-tokens 4 \
        --enable-mtp

[Request for Guidance]
To help me accurately reproduce the reported tau2 results, could you provide some guidance on the following?

  1. Evaluation Pipeline: Did your team use a specific fallback parser, a custom script, or a different serving framework entirely during the original tau2 evaluation?
  2. Prompting: Was there a particular system prompt or formatting constraint used to strictly enforce the separation of tool calls from the reasoning process?
  3. SGLang Configuration: If SGLang was indeed used, is there a recommended setting or workaround to ensure the parser correctly captures tool calls even if they inadvertently appear inside reasoning tags?

Thank you for your time and for your incredible work on the MiMo series. I look forward to your insights!

Best regards,

Sign up or log in to comment