首页 > 人工智能 >OpenClaw 调用本地模型(vLLM)

OpenClaw 调用本地模型(vLLM)

来源:互联网 2026-05-05 18:31:11

适用场景:OpenClaw + 本地 vLLM + Qwen3-8B + clawdbot-dingtalk 快速开始 在OpenClaw中安装并配置vLLM的简要步骤: 执行命令:openclaw configure。 选择 Local (this machine) - Model - vLL

适用场景:OpenClaw + 本地 vLLM + Qwen3-8B + clawdbot-dingtalk

快速开始

在OpenClaw中安装并配置vLLM的简要步骤:

长期稳定更新的攒劲资源: >>>点此立即查看<<<

  • 执行命令:openclaw configure
  • 选择 Local (this machine) -> Model -> vLLM
  • 配置 vLLM 服务地址:http://IP:port/v1
  • 配置 vLLM API key(可填写任意值)。
  • 配置 vLLM 模型名称:Qwen3-8B
  • 选择 Continue 完成配置。
  • 重启网关使配置生效:openclaw gateway restart

下文将详细展开并解答可能遇到的问题。

文档目标

本文旨在指导您完成 OpenClaw 调用本地 vLLM 模型服务的完整配置流程,确保 OpenClaw 能顺利与您自行部署的模型进行交互。核心将解决以下问题:

  • 如何正确启动提供标准 OpenAI 接口的本地 vLLM 服务。
  • 如何在 OpenClaw 的配置文件中准确声明本地模型服务。
  • 如何将本地模型设为首选,并配置云端模型作为后备,保障服务高可用。
  • 如何排查并解决常见的 400 报错,特别是涉及 Qwen3-8B 工具调用时的相关问题。

核心结论

若您已将 OpenClaw 中的上下文长度修改为真实值,但 vLLM 接口仍返回 400 错误,且日志中存在“strict/store ignored”等提示,这些警告通常只是干扰信息。问题的根本原因往往是 vLLM 服务未启用自动工具调用功能。对于 Qwen3-8B 模型,解决方法是在启动 vLLM 时加入 --enable-auto-tool-choice--tool-call-parser hermes 这两个关键参数。

总结最小可用配置原则如下:

  • OpenClaw 中配置的 contextWindow 值必须与本地模型的实际上下文长度保持一致,避免设置过高。
  • 只要模型通过 vLLM 的 OpenAI 兼容接口提供服务,OpenClaw 中 provider 类型就应该选择 openai-completions
  • 若要使用 Qwen3-8B 处理工具调用请求,必须在 vLLM 启动参数中显式启用自动工具调用开关,并指定 Hermes 解析器。
  • 排查 400 错误时,应重点检查 vLLM 接口响应体中的 message 字段,仅查看访问日志容易误导。

环境前提

为确保流程顺利,请先确认您的基础环境满足以下要求:

项目 建议值 / 说明
模型服务 vLLM,提供 OpenAI 兼容 API
本地模型 Qwen3-8B 或其 LoRA 变体
OpenClaw Provider openai-completions
服务端口 示例为 18000
模型别名 建议统一使用 sinollm
上下文长度 与模型真实能力一致,例如 32k

vLLM 启动命令

以下是为 Qwen3-8B 部署场景优化的启动命令,包含了确保工具调用正常工作的关键参数:

python3 start_server.py \
  --model /application/Qwen3-8B \
  --served-model-name Qwen3-8B\
  --uvicorn-log-level info \
  --chat-template /application/qwen3_nonthinking.jinja \
  --enable-auto-tool-choice \
  --tool-call-parser hermes \
  --disable-async-output-proc \
  --gpu-memory-utilization 0.6 \
  --max-num-batched-tokens 4096 \
  --dtype float16

关键参数说明:--enable-auto-tool-choice--tool-call-parser hermes 是解决工具调用 400 错误的核心。当 OpenClaw 请求中包含工具(tools)字段和 tool_choice=auto 指令时,若 vLLM 服务未启用此功能,则会在处理请求时失败,并仅返回一个较难定位的 400 错误。

OpenClaw 配置示例

以下为可直接使用的 OpenClaw 配置片段,其策略是优先使用本地 vLLM 模型,失败时自动回退到其他模型:

{
  "models": {
    "mode": "merge",
    "providers": {
      "vllm": {
        "baseUrl": "http://127.0.0.1:8000/v1",
        "apiKey": "VLLM_API_KEY",
        "api": "openai-completions",
        "models": [
          {
            "id": "Qwen3-8B",
            "name": "Qwen3-8B",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 32768,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "vllm/Qwen3-8B"
      }
    }
  }
}

配置检查清单

配置完成后,请按此清单核对:

  • baseUrl 末尾必须包含 /v1,完整格式如 http://:18000/v1
  • api 字段值必须为 openai-completions,而非 anthropic-messages
  • OpenClaw 中配置的 model id 必须与 vLLM 启动参数 --served-model-name 指定的名称之一完全匹配。
  • contextWindow 应填写真实数值(如 32768),避免使用虚高的数值(如 128000)。
  • 如需设置回退,建议将目标指向云端模型;但需注意,部分错误(如 400)可能不会触发常规的 fallback 机制。

接口验证命令

验证基础对话

使用以下命令测试基础聊天功能是否正常:

curl http://127.0.0.1:18000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer VLLM_API_KEY" \
  -d '{
    "model": "Qwen3-8B",
    "messages": [
      {"role": "user", "content": "你好,只回复OK"}
    ],
    "max_tokens": 16
  }'

验证工具调用

使用以下命令验证工具调用功能是否已正确启用:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer VLLM_API_KEY" \
  -d '{
    "model": "Qwen3-8B",
    "messages": [
      {"role": "user", "content": "北京现在多少度?请调用工具"}
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_weather",
          "description": "获取天气",
          "parameters": {
            "type": "object",
            "properties": {
              "city": {"type": "string"}
            },
            "required": ["city"]
          }
        }
      }
    ],
    "tool_choice": "auto",
    "max_tokens": 128
  }'

常见报错与处理

遇到问题时,可参考下表快速定位:

现象 原因判断 处理动作
strict/store ignored + 400 日志中的 ignored 提示为干扰信息,本质是请求格式与 vLLM 服务能力不匹配。 为 vLLM 添加 --enable-auto-tool-choice--tool-call-parser hermes 启动参数;重点检查接口响应体中的 message 字段。
普通聊天成功,工具请求失败 vLLM 服务未启用自动工具调用,或聊天模板不支持工具调用格式。 检查 vLLM 启动命令中的工具调用参数及所用聊天模板。
context length exceeded 或 max_tokens 非法 OpenClaw 中声明的上下文长度超出模型实际能力。 调整 OpenClaw 配置中的 contextWindow 为真实值,并缩短历史对话长度。
model not found 请求的模型名称与 vLLM 实际注册的名称不一致。 统一配置文件中、启动参数及请求中所使用的模型名称。

运维建议

  • 将包含工具调用等关键参数的完整 vLLM 启动命令固化到 systemd 或 supervisor 等进程管理工具中,确保服务重启后配置不丢失。
  • 在 OpenClaw 配置文件中,将 API Key、gateway token 等敏感信息替换为环境变量引用,避免明文硬编码。
  • 当本地模型用于生产环境时,建议编写独立的 curl 自检脚本,以便在出现问题时快速定位是 OpenClaw 配置错误还是 vLLM 服务本身故障。

参考依据

  • OpenClaw 官方指引:vLLM 应通过 openai-completions 类型的 provider 接入本地 OpenAI 兼容服务。
  • vLLM 官方文档:启用自动工具调用需添加 --enable-auto-tool-choice 参数,并配置相应的 --tool-call-parser
  • Qwen 官方建议:Qwen3 系列模型推荐使用 Hermes 风格的工具调用,与 vLLM 的 --tool-call-parser hermes 配置相符。

— 完 —

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。