Skip to content

[Bug] Kimi-k2.5 tool call parser may not work probabilistically. #18086

@dongfangzan

Description

@dongfangzan

Checklist

  • I searched related issues but found no solution.
  • The bug persists in the latest version.
  • Issues without environment info and a minimal reproducible demo are hard to resolve and may receive no feedback.
  • If this is not a bug report but a general question, please start a discussion at https://github.com/sgl-project/sglang/discussions. Otherwise, it will be closed.
  • Please use English. Otherwise, it will be closed.

Describe the bug

I tested the locally deployed Kimi-k2.5 in Claude Code, OpenCode, and Kimi-Code. During tool calling, such tool call errors frequently occurred.
• Used ReadFile (frontend/lib/agentStream/agentStreamTypes.ts)

• <|tool_calls_section_begin|> <|tool_call_begin|> functions.ReadFile:5 <|tool_call_argument_begin|> {"path": "/Users/dongfangzan/Documents/workspace/open-claude-webui/frontend/lib/agentStream/agentStreamApi.ts"} <|tool_call_end|> <|tool_calls_section_end|>

Image

I've tried this issue. #17914

I set SGLANG_TOOL_STRICT_LEVEL=2 and xgrammar==0.1.31, but it seems to have no effect.

Image Image Image

Reproduction

nohup sglang serve --model-path /root/.cache/huggingface/hub/Kimi-K2___5 --tp 16 --trust-remote-code --tool-call-parser kimi_k2 --reasoning-parser kimi_k2 --dist-init-addr 10.0.41.2:20000 --nnodes 2 --node-rank 0 --host 0.0.0.0 --port 8000 &

Environment

Python: 3.12.3 (main, Jan 8 2026, 11:30:50) [GCC 13.3.0]
CUDA available: True
GPU 0,1,2,3,4,5,6,7: NVIDIA H100 80GB HBM3
GPU 0,1,2,3,4,5,6,7 Compute Capability: 9.0
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 12.9, V12.9.86
CUDA Driver Version: 550.54.15
PyTorch: 2.9.1+cu129
sglang: 0.5.8
sgl_kernel: 0.3.21
flashinfer_python: 0.6.2
flashinfer_cubin: 0.6.2
flashinfer_jit_cache: 0.6.2+cu129
triton: 3.5.1
transformers: 4.57.1
torchao: 0.9.0
numpy: 2.4.1
aiohttp: 3.13.3
fastapi: 0.128.0
hf_transfer: 0.1.9
huggingface_hub: 0.36.0
interegular: 0.3.3
modelscope: 1.34.0
orjson: 3.11.5
outlines: 0.1.11
packaging: 26.0
psutil: 7.2.1
pydantic: 2.12.5
python-multipart: 0.0.22
pyzmq: 27.1.0
uvicorn: 0.40.0
uvloop: 0.22.1
vllm: Module Not Found
xgrammar: 0.1.27
openai: 2.6.1
tiktoken: 0.12.0
anthropic: 0.76.0
litellm: Module Not Found
decord2: 3.0.0
NVIDIA Topology:
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 NIC0 NIC1 NIC2 NIC3 NIC4 NIC5 NIC6 NIC7 NIC8 NIC9 CPU Affinity NUMA Affinity GPU NUMA ID
GPU0 X NV18 NV18 NV18 NV18 NV18 NV18 NV18 SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS 0-47,96-143 0 N/A
GPU1 NV18 X NV18 NV18 NV18 NV18 NV18 NV18 SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS 0-47,96-143 0 N/A
GPU2 NV18 NV18 X NV18 NV18 NV18 NV18 NV18 SYS SYS SYS PIX PIX SYS SYS SYS SYS SYS 0-47,96-143 0 N/A
GPU3 NV18 NV18 NV18 X NV18 NV18 NV18 NV18 SYS SYS SYS PIX PIX SYS SYS SYS SYS SYS 0-47,96-143 0 N/A
GPU4 NV18 NV18 NV18 NV18 X NV18 NV18 NV18 SYS SYS SYS SYS SYS PIX PIX SYS SYS SYS 48-95,144-191 1 N/A
GPU5 NV18 NV18 NV18 NV18 NV18 X NV18 NV18 SYS SYS SYS SYS SYS PIX PIX SYS SYS SYS 48-95,144-191 1 N/A
GPU6 NV18 NV18 NV18 NV18 NV18 NV18 X NV18 SYS SYS SYS SYS SYS SYS SYS PIX PIX SYS 48-95,144-191 1 N/A
GPU7 NV18 NV18 NV18 NV18 NV18 NV18 NV18 X SYS SYS SYS SYS SYS SYS SYS PIX PIX SYS 48-95,144-191 1 N/A
NIC0 SYS SYS SYS SYS SYS SYS SYS SYS X SYS SYS SYS SYS SYS SYS SYS SYS SYS
NIC1 PIX PIX SYS SYS SYS SYS SYS SYS SYS X PIX SYS SYS SYS SYS SYS SYS SYS
NIC2 PIX PIX SYS SYS SYS SYS SYS SYS SYS PIX X SYS SYS SYS SYS SYS SYS SYS
NIC3 SYS SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS X PIX SYS SYS SYS SYS SYS
NIC4 SYS SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS PIX X SYS SYS SYS SYS SYS
NIC5 SYS SYS SYS SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS X PIX SYS SYS SYS
NIC6 SYS SYS SYS SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS PIX X SYS SYS SYS
NIC7 SYS SYS SYS SYS SYS SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS X PIX SYS
NIC8 SYS SYS SYS SYS SYS SYS PIX PIX SYS SYS SYS SYS SYS SYS SYS PIX X SYS
NIC9 SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS X

Legend:

X = Self
SYS = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
PHB = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
PXB = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
PIX = Connection traversing at most a single PCIe bridge
NV# = Connection traversing a bonded set of # NVLinks

NIC Legend:

NIC0: mlx5_0
NIC1: mlx5_1
NIC2: mlx5_2
NIC3: mlx5_3
NIC4: mlx5_4
NIC5: mlx5_5
NIC6: mlx5_6
NIC7: mlx5_7
NIC8: mlx5_8
NIC9: mlx5_bond_0

ulimit soft: 1048576

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions