diff --git a/vllm/entrypoints/openai/tool_parsers/hermes_tool_parser.py b/vllm/entrypoints/openai/tool_parsers/hermes_tool_parser.py index 2b9f9852bcb..01c940665da 100644 --- a/vllm/entrypoints/openai/tool_parsers/hermes_tool_parser.py +++ b/vllm/entrypoints/openai/tool_parsers/hermes_tool_parser.py @@ -340,8 +340,10 @@ def extract_tool_calls_streaming( # last case -- we have an update to existing arguments. elif cur_arguments and prev_arguments: - if isinstance(delta_text, str) and len(delta_text.rstrip( - )) >= 1 and delta_text.rstrip()[-1] == '}': + if isinstance(delta_text, str) \ + and len(delta_text.rstrip()) >= 2 \ + and delta_text.rstrip()[-1] == '}' \ + and delta_text.rstrip()[-2] == '}': delta_text = delta_text.rstrip()[:-1] logger.debug("got diff %s", delta_text)