openclaw调用vllm服务的实现
dragonchow123
赠送14M的token用完了,打算vllm部署Qwen来跑一跑openclaw
1,起vllm服务
CUDA_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.openai.api_server \
--model Qwen3-32B \
--served-model-name qwen3-32b \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser hermes \
--port 500722,openclaw配置vllm的provider
2.1 服务器上openclaw
openclaw onboard配置一下provider,url:http://ip:50072/v1, 模型名qwen3-32b,apiKey随便填一个
就能调自己的vllm服务了,可以随便测,不用担心tokens;
2.2 本地openclaw
通过VScode连服务器
- 如果服务器端口开发,直接vscode转发端http://127.0.0.1:50072
- 如果服务器端口不给转发,只能通过公司公网转发端口,直接用这个公网url,会报错“未登录”。
- 解决:
- 浏览器打开“<公网url>/version”,可以显示vllm版本,连通。
- F12,复制Cookie
- openclaw.json: models.providers.vllm增加:
"headers": { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 QuarkPC/6.3.5.718", # 可能不需要,没测过 "Cookie": "__itrace_...." },- 注意:如果有clashx,不能设置为全局(直连+关闭设置为系统代理);
- 比较麻烦,Cookie更新后都需要跟新openclaw的配置,但算是通了;
- 解决:
问题
- 如何停止vllm服务,换个模型重启?不能直接kill,如下重启:
pkill -15 -f vllm.entrypoints.openai.api_server # 等gpu显存退了 pkill -9 -f vllm
- tool parser,vllm起服务名字中,需要加上tool相关参数,因为这边基本是要tool能力的。
- max_model_len参数不需要设置,因为默认用模型config.json中max_position_embeddings,超过它的话又会报错。
- qwen3-32b,长度太短,40960,聊一轮就报长度超了,没法用在openclaw中。
- qwen3-vl-32b-instruct的max_position_embeddings=26w,够用了;但是效果不行,一直在读文件,停不下来;虽然qwen3-vl用了图片视频以及长文本,但真正的长文本能力应该比较弱;
- 另外,在docker中装的openclaw,在docker里面,只能前台运行“openclaw gateway”。
- qwen3-vl-32b-thinking,为啥界面显示thinking的内容(已经设置/think off; /reasoning off)?
- vllm起服务时加上
--reasoning-parser deepseek_r1参数,解析think内容; - 不加此参数,返回的message中所有output都在content字段中,加了参数后,就把think和最终答案拆开了,分别放在reasoning和content字段;
- 加了参数后,问题解决,不会展示think内容;
- vllm起服务时加上
- 设置
VLLM_LOGGING_LEVEL=DEBUG,可以看到vllm日志中记录的完整prompt,不过其他信息也特别多。 - skillhub,安装后重启openclaw也没有生效,手动配置环境
export PATH="~/.local/bin:$PATH"。 - Qwen3-235B-A22B-Thinking-2507,4张H20(显存141G)可以起vllm服务
VLLM_LOGGING_LEVEL=DEBUG CUDA_VISIBLE_DEVICES=0,1,2,3 python -m vllm.entrypoints.openai.api_server \ --model Qwen3-235B-A22B-Thinking-2507 \ --served-model-name qwen3-235b-tk \ --tensor-parallel-size 4 \ --enable-auto-tool-choice \ --tool-call-parser hermes \ --enable-log-requests \ --gpu-memory-utilization 0.95 \ --reasoning-parser deepseek_r1 \ --port 50072
到此这篇关于openclaw调用vllm服务的实现的文章就介绍到这了,更多相关openclaw vllm服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

