[GH-ISSUE #944] [BUG]使用vllm部署的deepseek v3 无法完全支持tool call #569

Closed
opened 2026-10-26 21:23:22 +00:00 by bsakaguchi · 7 comments
Owner

Originally created by @adogwangwang on GitHub (Jul 29, 2025).
Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-V3/issues/944

Describe the bug
I need to use the DeepSeek model in projects like Claude Code Proxy and Claude Code Router to utilize their tool call functionality. The APIs I purchased from the official website are working fine, but after deploying them using VLLM, they no longer support tool call functionality. I'm looking for a solution.

I've already added the --enable-auto-tool-choice and --tool-call-parser hermes parameters.
我需要使用deepseek模型接入到 claude code proxy,claude code router这样的项目中,用到其tool call功能,但是我在官网买的api是没问题的这两个项目可以正常使用,但是我自己用vllm部署之后,就不支持tool call了,求解,
--enable-auto-tool-choice --tool-call-parser hermes 这两个参数已经加过了
To Reproduce
Steps to reproduce the behavior.

Expected behavior
希望使用vllm部署的模型能正确使用tool call功能

Screenshots

Image 在qwen coder cli中配置我自己部署的deepseek,无法完成工具调用

Additional context
Add any other context about the problem here.

Originally created by @adogwangwang on GitHub (Jul 29, 2025). Original GitHub issue: https://github.com/deepseek-ai/DeepSeek-V3/issues/944 **Describe the bug** I need to use the DeepSeek model in projects like Claude Code Proxy and Claude Code Router to utilize their tool call functionality. The APIs I purchased from the official website are working fine, but after deploying them using VLLM, they no longer support tool call functionality. I'm looking for a solution. I've already added the --enable-auto-tool-choice and --tool-call-parser hermes parameters. 我需要使用deepseek模型接入到 claude code proxy,claude code router这样的项目中,用到其tool call功能,但是我在官网买的api是没问题的这两个项目可以正常使用,但是我自己用vllm部署之后,就不支持tool call了,求解, --enable-auto-tool-choice --tool-call-parser hermes 这两个参数已经加过了 **To Reproduce** Steps to reproduce the behavior. **Expected behavior** 希望使用vllm部署的模型能正确使用tool call功能 **Screenshots** <img width="1310" height="595" alt="Image" src="https://github.com/user-attachments/assets/590521ea-fd4f-496b-bd0b-953728a3bbcc" /> 在qwen coder cli中配置我自己部署的deepseek,无法完成工具调用 **Additional context** Add any other context about the problem here.
bsakaguchi 2026-10-26 21:23:22 +00:00
Author
Owner

@wbsking commented on GitHub (Aug 13, 2025):

@adogwangwang
vllm的deepseek tool_call_parser使用 deepseek_v3

--enable-auto-tool-choice --tool-call-parser deepseek_v3

<!-- gh-comment-id:3181978280 --> @wbsking commented on GitHub (Aug 13, 2025): @adogwangwang vllm的deepseek tool_call_parser使用 deepseek_v3 --enable-auto-tool-choice --tool-call-parser deepseek_v3
Author
Owner

@Bokai-Ji commented on GitHub (Sep 9, 2025):

@adogwangwang vllm的deepseek tool_call_parser使用 deepseek_v3

--enable-auto-tool-choice --tool-call-parser deepseek_v3

我使用

--enable-auto-tool-choice
--tool-call-parser deepseek_v3

时会出现Choice中finish_reason = tool call但实际上tool_calls=[]的问题。然后我删除了这两行并在请求时指定tool_choice=none来观察原始的,未被parse的输出:

<|tool▁calls▁begin|><|tool▁call▁begin|>get_weather\n```json\n{"location": "Beijing, China"}\n```<|tool▁call▁end|><|tool▁calls▁end|>

看上去原始输出是没有问题的。这意味着deepseek_v3这个parser也并不适用于DeepSeekV3.1的Tokenizer。

<!-- gh-comment-id:3269476645 --> @Bokai-Ji commented on GitHub (Sep 9, 2025): > [@adogwangwang](https://github.com/adogwangwang) vllm的deepseek tool_call_parser使用 deepseek_v3 > > --enable-auto-tool-choice --tool-call-parser deepseek_v3 我使用 ``` --enable-auto-tool-choice --tool-call-parser deepseek_v3 ``` 时会出现Choice中`finish_reason` = `tool call`但实际上`tool_calls=[]`的问题。然后我删除了这两行并在请求时指定`tool_choice`=`none`来观察原始的,未被parse的输出: ``` <|tool▁calls▁begin|><|tool▁call▁begin|>get_weather\n```json\n{"location": "Beijing, China"}\n```<|tool▁call▁end|><|tool▁calls▁end|> ``` 看上去原始输出是没有问题的。这意味着deepseek_v3这个parser也并不适用于DeepSeekV3.1的Tokenizer。
Author
Owner

@wbsking commented on GitHub (Sep 15, 2025):

@adogwangwang vllm的deepseek tool_call_parser使用 deepseek_v3
--enable-auto-tool-choice --tool-call-parser deepseek_v3

我使用

--enable-auto-tool-choice
--tool-call-parser deepseek_v3

时会出现Choice中finish_reason = tool call但实际上tool_calls=[]的问题。然后我删除了这两行并在请求时指定tool_choice=none来观察原始的,未被parse的输出:

<|tool▁calls▁begin|><|tool▁call▁begin|>get_weather\n```json\n{"location": "Beijing, China"}\n```<|tool▁call▁end|><|tool▁calls▁end|>

看上去原始输出是没有问题的。这意味着deepseek_v3这个parser也并不适用于DeepSeekV3.1的Tokenizer。

vllm的最新版本有deepseek_v31 使用这个 https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/openai/tool_parsers/deepseekv31_tool_parser.py

<!-- gh-comment-id:3290161857 --> @wbsking commented on GitHub (Sep 15, 2025): > > [@adogwangwang](https://github.com/adogwangwang) vllm的deepseek tool_call_parser使用 deepseek_v3 > > --enable-auto-tool-choice --tool-call-parser deepseek_v3 > > 我使用 > > ``` > --enable-auto-tool-choice > --tool-call-parser deepseek_v3 > ``` > > 时会出现Choice中`finish_reason` = `tool call`但实际上`tool_calls=[]`的问题。然后我删除了这两行并在请求时指定`tool_choice`=`none`来观察原始的,未被parse的输出: > > ``` > <|tool▁calls▁begin|><|tool▁call▁begin|>get_weather\n```json\n{"location": "Beijing, China"}\n```<|tool▁call▁end|><|tool▁calls▁end|> > ``` > > 看上去原始输出是没有问题的。这意味着deepseek_v3这个parser也并不适用于DeepSeekV3.1的Tokenizer。 vllm的最新版本有deepseek_v31 使用这个 https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/openai/tool_parsers/deepseekv31_tool_parser.py
Author
Owner

@github-actions[bot] commented on GitHub (Oct 17, 2025):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!

<!-- gh-comment-id:3413321376 --> @github-actions[bot] commented on GitHub (Oct 17, 2025): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe this issue is still relevant, please leave a comment to keep it open. Thank you for your contributions!
Author
Owner

@github-actions[bot] commented on GitHub (Oct 31, 2025):

false

<!-- gh-comment-id:3470781384 --> @github-actions[bot] commented on GitHub (Oct 31, 2025): false
Author
Owner

@xiyangyang960 commented on GitHub (Nov 9, 2025):

这个问题解决了嘛,我目前也遇到了同样的问题,function call为[],vllm部署的deepseek-v3-0324官方版本

<!-- gh-comment-id:3507562444 --> @xiyangyang960 commented on GitHub (Nov 9, 2025): 这个问题解决了嘛,我目前也遇到了同样的问题,function call为[],vllm部署的deepseek-v3-0324官方版本
Author
Owner

@Bokai-Ji commented on GitHub (Nov 9, 2025):

这个问题解决了嘛,我目前也遇到了同样的问题,function call为[],vllm部署的deepseek-v3-0324官方版本

我们当时是改用了SGLANG

<!-- gh-comment-id:3507563376 --> @Bokai-Ji commented on GitHub (Nov 9, 2025): > 这个问题解决了嘛,我目前也遇到了同样的问题,function call为[],vllm部署的deepseek-v3-0324官方版本 我们当时是改用了SGLANG
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/DeepSeek-V3#569
No description provided.