为什么使用vLLM镜像部署的deepseek-v4的模型,支持openai方式的工具调用和返回,但使用Claude Code等工具调用模型却返回DSML格式,导致工具调用异常。该如何处理?
vLLM部署DeepSeek-V4时,虽然支持OpenAI接口的工具调用,但Claude Code等通过Anthropic接口调用时,返回的是DSML格式(如<|DSML|tool_calls>),导致工具调用异常。这是因为DeepSeek-V4的tool parser默认输出DSML结构,而Claude Code期望的是Anthropic/OpenAI兼容格式,格式不兼容会导致解析失败。当前vLLM未提供自动格式转换,需自行适配或等待官方支持改进deepseekv4_tool_parser文档、相关issue。
如需兼容Claude Code,建议优先使用OpenAI接口或尝试自定义parser,将DSML格式转换为Claude Code可识别的结构,或关注vLLM后续更新以获得更好支持。需要详细操作步骤吗?
Sources:
- https://docs.vllm.ai/en/latest/api/vllm/tool_parsers/deepseekv4_tool_parser/
- https://github.com/vllm-project/vllm/issues/40854
Hint: Mention @RunLLM in the post for followups.