[Bug]: Gemma4 Tool Parser: Intermittently Missing `function.name` in Streaming Mode

在 vLLM 服务中部署 google/gemma-4-31B-it 模型,使用 gemma4 工具解析器(tool parser),通过 OpenAI 兼容 API 发送流式聊天补全请求(stream=True),设置 tool_choice="auto" 和 chat_template_kwar

[Bug]: Gemma4 Tool Parser: Intermittently Missing `function.name` in Streaming Mode

[Bug]: Gemma4 Tool Parser: Intermittently Missing `function.name` in Streaming Mode

快速结论:此报错在使用 vLLM 部署 Gemma4 模型并启用流式输出(stream=True)且 tool_choice=”auto” 时触发,表现为 SSE 响应中部分 tool call chunk 缺少 function.name 字段。优先检查 vLLM 版本是否为 v0.21.0,并升级至最新 nightly 镜像或包含 PR #45588 修复的版本。

问题场景

在 vLLM 服务中部署 google/gemma-4-31B-it 模型,使用 gemma4 工具解析器(tool parser),通过 OpenAI 兼容 API 发送流式聊天补全请求(stream=True),设置 tool_choice="auto"chat_template_kwargsenable_thinking=False 时触发。非流式模式(stream=False)下正常。

报错原文

# 流式响应中,部分 tool call chunk 的 function 对象结构不完整
# 正常 chunk 应包含 name、arguments、type
# 异常 chunk 仅包含 arguments 和 type,缺少 name
{
  "function": {
    "arguments": "{}",
    "type": "function"
  }
  # missing "name": "sample__get_user_profile"
}

原因分析

根据 Issue 讨论和修复 PR #45588,问题出在 gemma4_tool_parser.py 中的解析逻辑。在流式模式下,某些 token 化模式会导致 function.name 字段在解析过程中被遗漏,而 LLM 本身能够正确选择工具。这是 gemma4 工具解析器的一个 bug,在非流式模式下不受影响。

环境排查

  • 确认 vLLM 版本(用户报告 v0.21.0 时出现 bug)
  • 确认使用的 Docker 镜像是否为 vllm/vllm-openai:v0.21.0
  • 确认模型为 google/gemma-4-31B-it
  • 确认 Python 版本(用户使用 3.13.0)
  • 确认是否启用了流式模式(stream=True)和 tool_choice=”auto”

解决步骤

  1. 升级 vLLM 版本:将镜像升级至 vllm/vllm-openai:nightly(至少包含 commit ae1c066f36f7)或等待下一个正式发布版本,该修复已通过 PR #45588 合并。
  2. 验证修复后版本:使用升级后的镜像重新运行复现脚本,确认流式响应中所有 tool call chunk 都包含完整的 function.name 字段。
  3. 临时降级方案(可优先尝试):如果无法立即升级,可以暂时使用 stream=False 作为临时绕过方案,非流式模式不受此 bug 影响。
  4. 备用排查:检查 chat_template_kwargsenable_thinking 是否设置为 False——用户报告关闭 thinking 时问题可复现,但官方修复未要求更改此设置。

验证方法

运行 Issue 中提供的复现脚本,向带 tool_choice="auto" 的流式请求发送三个不同用户问题(例如 "Get my profile""List my devices" 等),检查 SSE 响应中每个 tool call chunk 的 function 对象是否都包含 name 字段。如果所有 chunk 均包含完整字段且无缺失,则问题已解决。

参考来源

vllm-project/vllm #45449

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8448

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注