要让OpenClaw服务器调用本地LLM模型,需确保本地服务启动并监听指定端口(如Ollama默认http://127.0.0.1:11434),容器运行时添加--add-host host.docker.internal:host-gateway参数,并在OpenClaw配置中将Base URL设为http://host.docker.internal:11434,否则连接将失败。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让OpenClaw服务器调用你本地运行的LLM模型,而不是走远程API——这需要打通容器网络、正确暴露服务端口、并在OpenClaw配置中指向宿主机上的模型服务地址,否则请求会超时或返回连接拒绝。
确认本地模型服务已就绪
先确保你的本地模型(比如Ollama、vLLM或llama.cpp)已在宿主机上启动并监听指定端口。以Ollama为例,执行ollama serve后,默认监听http://127.0.0.1:11434。若使用其他服务,请记下实际的host:port和API路径(如/v1/chat/completions)。
这一步必须完成且验证通过:在宿主机终端执行curl http://127.0.0.1:11434/api/tags,应返回模型列表JSON。如果失败,OpenClaw后续无论如何配置都连不上。
启动OpenClaw容器时打通宿主机网络
OpenClaw容器默认无法直接访问宿主机的127.0.0.1。必须用--add-host host.docker.internal:host-gateway参数让容器内能解析host.docker.internal为宿主机真实IP。
运行命令示例:
完整的工作区安全套件:检测未授权修改,扫描提示注入模式,自动响应应对措施——快照恢复、技能隔离、Git回滚和自动保护扫描。智能体工作区的完整安装后安全层。
docker run -d --name openclaw \-p 3000:3000 \--add-host host.docker.internal:host-gateway \-e LLM_BASE_URL=http://host.docker.internal:11434 \openclaw/server:latest
【host.docker.internal必须显式声明】 Docker Desktop默认支持该域名,但Linux原生Docker需手动添加——漏掉这行,容器里ping不通宿主机,所有模型请求都会失败。
在OpenClaw UI中填写本地模型配置
浏览器打开http://localhost:3000,首次进入会弹出设置窗口。
方法一:基础填法
选择LLM提供商 → OpenAI Compatible → 模型名称填ollama/your-model-name(如ollama/qwen2:7b)→ Base URL填http://host.docker.internal:11434 → 留空API Key → Save。
方法二:高级自定义(适配非标准API)
点击“Advanced Options” → 手动输入Model Name(任意标识符,如local-qwen)→ Base URL保持http://host.docker.internal:11434 → 在“API Path Override”中填/api/chat(若你的服务用的是Ollama v0.3+的/api/chat而非OpenAI兼容路径)。
注意:Ollama从v0.3起默认关闭OpenAI兼容模式,必须启用才能被OpenClaw识别。执行OLLAMA_ORIGINS="*" ollama serve启动服务,否则跨域请求会被拦截。
验证连接是否生效
第一步:在OpenClaw界面右上角点击“Test Connection”。
第二步:若显示绿色“Success”,说明HTTP可达且路由正常。
第三步:输入提示词,例如“输出JSON格式的当前时间”,观察右侧是否返回结构化结果。
第四步:打开浏览器开发者工具 → Network标签页 → 刷新页面并触发一次推理 → 查看/api/complete请求的Response Headers中是否有X-Model-Name字段,有则证明模型调用链已穿透到本地服务。
如果测试失败,优先检查容器日志:docker logs openclaw | grep -i "connection refused\|timeout",90%问题出在Base URL写成localhost或127.0.0.1,而非host.docker.internal。

















