From a52d1396a7108d9bb8a7afdadb524d72c59fff5c Mon Sep 17 00:00:00 2001 From: seeksky <148623946+seekskyworld@users.noreply.github.com> Date: Thu, 15 Jan 2026 16:45:59 +0800 Subject: [PATCH] fix: avoid crash on zero-arg tool calls in glm4 parser (#32321) Signed-off-by: seekskyworld --- vllm/tool_parsers/glm4_moe_tool_parser.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vllm/tool_parsers/glm4_moe_tool_parser.py b/vllm/tool_parsers/glm4_moe_tool_parser.py index 522c67dc2..11eb79244 100644 --- a/vllm/tool_parsers/glm4_moe_tool_parser.py +++ b/vllm/tool_parsers/glm4_moe_tool_parser.py @@ -115,9 +115,15 @@ class Glm4MoeModelToolParser(ToolParser): tool_calls = [] for match in matched_tool_calls: tc_detail = self.func_detail_regex.search(match) + if not tc_detail: + logger.warning( + "Failed to parse tool call details from: %s", + match, + ) + continue tc_name = tc_detail.group(1) tc_args = tc_detail.group(2) - pairs = self.func_arg_regex.findall(tc_args) + pairs = self.func_arg_regex.findall(tc_args) if tc_args else [] arg_dct = {} for key, value in pairs: arg_key = key.strip()