必须将openclaw配置为直连本地vllm服务:验证http://localhost:8000/health健康状态,修改config.yaml中llm区块为api_base: http://localhost:8000/v1、model_name: deepseek-v4-pro、api_key: "empty",并更新adapters/deepseek.py中get_client函数以正确拼接/v1路径,最后通过curl测试确认返回含model和content字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在OpenClaw中正确加载并调用本地部署的DeepSeek模型,必须绕过默认的API远程调用路径,改用本地推理后端直连。这一步跳过云端转发,能彻底规避网络延迟、token计费和数据出网风险,但要求模型已通过vLLM或Ollama完成本地服务化。
确认本地DeepSeek服务已就绪
先验证模型是否已在本机启动为HTTP服务:打开终端执行 curl http://localhost:8000/health,返回 {"healthy": true} 才能继续。如果报错Connection refused,说明vLLM没跑起来或者端口被占——【默认端口是8000,若改过必须同步更新后续所有配置】。
检查进程:运行 ps aux | grep vllm,确认输出里包含 --model deepseek-ai/deepseek-v4-pro 和 --host 0.0.0.0 --port 8000 字样。
修改OpenClaw配置文件指向本地模型
进入OpenClaw项目根目录,用编辑器打开 config.yaml。
定位到 llm: 区块,将原有 api_base: 和 api_key: 两行整段删除。
替换为以下三行(注意缩进必须是2个空格):
api_base: http://localhost:8000/v1
model_name: deepseek-v4-pro
api_key: "EMPTY"
vLLM本地服务不校验key,填"EMPTY"是硬性约定,填错会导致401错误;model_name必须与你启动vLLM时指定的模型ID完全一致,大小写敏感。
强制重载模型适配器
第一步:在 openclaw-core==2026.3.1 的安装目录下,找到 adapters/deepseek.py 文件。
第二步:打开该文件,搜索 def get_client 函数,在其内部找到 return OpenAI(...) 这一行。
第三步:把这一行替换成:
return OpenAI(base_url=base_url, api_key=api_key, timeout=timeout)
这一步不可跳过——OpenClaw默认把DeepSeek当OpenAI兼容接口调用,但旧版适配器会强行拼接 /chat/completions 路径,而vLLM的路由是 /v1/chat/completions。新写法让base_url接管全部路径拼接逻辑。
启动OpenClaw并验证响应
执行 python main.py --config config.yaml 启动服务。
发送测试请求:curl -X POST http://localhost:5000/api/chat -H "Content-Type: application/json" -d '{"messages":[{"role":"user","content":"你好"}]}'。
若返回JSON中含 "model": "deepseek-v4-pro" 和非空 "content" 字段,说明本地模型已成功接入。











