
OpenManus 对接 vLLM 报 400 错误auto tool choice 报错实战排查与完整修复【免费下载链接】OpenManus没有堡垒纯粹开阔地。OpenManus 即将到来。项目地址: https://gitcode.com/OpenManus/OpenManusOpenManus 对接自建 vLLM 模型服务时出现 HTTP 400提示auto tool choice requires --enable-auto-tool-choice and --tool-call-parser本文讲清这个报错的根因并给出从模型选型到服务启动的修复路径照做即可让 Agent 正常调用工具。现象速写运行main.py后控制台抛出的 400 错误信息几乎是固定的auto tool choice requires --enable-auto-tool-choice and --tool-call-parser to be set。有的环境还会伴随 Agent 首轮 LLM 请求直接失败、tool_calls始终为空的表现。10 秒自检报错里只要带 auto tool choice 这几个字问题基本就锁定了。根因拆解 看似是模型不行实则是 vLLM 服务端缺了两样东西不是 OpenManus 请求发错了而是 vLLM 默认不认这个参数OpenManus 的 Agent 每次调用 LLM 都会带上tool_choice: auto服务端没启用对应能力就直接拒绝。不是 base 模型也能用而是必须选支持工具调用的指令模型带 Instruct 后缀的指令微调模型如 Qwen2.5-7B-Instruct才输出结构化工具调用DeepSeek-R1 系列含 distill 版不支持直接排除。不是加一个开关就完事而是解析器必须配对只加--enable-auto-tool-choice仍会 400--tool-call-parser hermes也要给否则 vLLM 不知道怎么解析模型吐出的工具调用。修复路径第一步换用支持工具调用的 Instruct 模型选模型标准很简单官方说明里明确写了支持 function calling / tool use。Qwen2.5-7B-Instruct 是稳妥选择R1 系列先排除。完成这一步后你手上应该有一个明确支持工具调用的模型。第二步vLLM 启动时开启工具选择与解析器下面这条命令启动 vLLM 推理服务两个关键参数--enable-auto-tool-choice启用自动工具选择和--tool-call-parser hermes用 Hermes 格式解析工具调用缺一不可python -m vllm.entrypoints.api_server \ --model Qwen/Qwen2.5-7B-Instruct \ --enable-auto-tool-choice \ --tool-call-parser hermes \ --trust-remote-code完成这一步后你应该看到服务监听 8000 端口启动日志里没有参数解析报错。第三步用最小请求验证服务端直接向兼容端点发一条带tool_choice: auto的请求确认服务端能处理curl http://localhost:8000/v1/chat/completions -H Content-Type: application/json -d { model: Qwen/Qwen2.5-7B-Instruct, messages: [{role: user, content: 11等于几}], tools: [{type: function, function: {name: t, parameters: {type: object}}}], tool_choice: auto }完成这一步后你应该看到返回 200而不是 400。第四步把 OpenManus 配置指向该服务修改项目里config/config.example.toml的[llm]块指向你的 vLLM 地址[llm] model Qwen/Qwen2.5-7B-Instruct base_url http://localhost:8000/v1 api_key EMPTY max_tokens 8192 temperature 0.0之后python main.py跑起来Agent 的搜索、文件读写等工具调用能正常触发。完成这一步后你应该看到 OpenManus 完整走完首轮工具调用全程不再出现 400。修复后的典型产出效果可以参考下面这张 Agent 任务结果截图踩坑速查改了还是不行检查项加了--enable-auto-tool-choice仍 400--tool-call-parser hermes是否也加了缺解析器照样报错curl 手测正常OpenManus 里仍 400base_url是否以/v1结尾api_key是否已填可填EMPTY不报 400 但模型从不调用工具模型不支持工具调用如 R1 系列换 Instruct 模型并发一大就 400 / 服务崩溃服务端 OOM调小max_tokens或上下文长度看 vLLM 日志确认显存工具调用结果解析错乱换与模型匹配的 parser如qwen并确认 vLLM 版本支持该模型一句话总结✅ 这个 400 是 vLLM 服务端给的明确信号不是玄学开--enable-auto-tool-choice、配--tool-call-parser hermes、再选一个支持工具调用的 Instruct 模型三步走完即可。修好之后OpenManus 的 Agent 就能把你的自建模型当完整工具环境用启动时不会再被 400 卡住。【免费下载链接】OpenManus没有堡垒纯粹开阔地。OpenManus 即将到来。项目地址: https://gitcode.com/OpenManus/OpenManus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考