openclaw

关注公众号 jb51net

关闭
AI > openclaw >

openclaw调用vllm服务的实现

dragonchow123

赠送14M的token用完了,打算vllm部署Qwen来跑一跑openclaw

1,起vllm服务

vllm doc

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 50072

2,openclaw配置vllm的provider

2.1 服务器上openclaw

openclaw onboard配置一下provider,url:http://ip:50072/v1, 模型名qwen3-32b,apiKey随便填一个
就能调自己的vllm服务了,可以随便测,不用担心tokens;

2.2 本地openclaw

通过VScode连服务器

  1. 如果服务器端口开发,直接vscode转发端http://127.0.0.1:50072
  2. 如果服务器端口不给转发,只能通过公司公网转发端口,直接用这个公网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的配置,但算是通了;

问题

  1. 如何停止vllm服务,换个模型重启?不能直接kill,如下重启:
    pkill -15 -f vllm.entrypoints.openai.api_server
    # 等gpu显存退了
    pkill -9 -f vllm
  2. tool parser,vllm起服务名字中,需要加上tool相关参数,因为这边基本是要tool能力的。
  3. max_model_len参数不需要设置,因为默认用模型config.json中max_position_embeddings,超过它的话又会报错。
  4. qwen3-32b,长度太短,40960,聊一轮就报长度超了,没法用在openclaw中。
  5. qwen3-vl-32b-instruct的max_position_embeddings=26w,够用了;但是效果不行,一直在读文件,停不下来;虽然qwen3-vl用了图片视频以及长文本,但真正的长文本能力应该比较弱;
  6. 另外,在docker中装的openclaw,在docker里面,只能前台运行“openclaw gateway”。
  7. qwen3-vl-32b-thinking,为啥界面显示thinking的内容(已经设置/think off; /reasoning off)?
    • vllm起服务时加上--reasoning-parser deepseek_r1参数,解析think内容;
    • 不加此参数,返回的message中所有output都在content字段中,加了参数后,就把think和最终答案拆开了,分别放在reasoning和content字段;
    • 加了参数后,问题解决,不会展示think内容;
  8. 设置VLLM_LOGGING_LEVEL=DEBUG,可以看到vllm日志中记录的完整prompt,不过其他信息也特别多。
  9. skillhub,安装后重启openclaw也没有生效,手动配置环境export PATH="~/.local/bin:$PATH"
  10. 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服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!