openclaw点击发送无响应是因本地模型服务未被正确接入,需确认服务监听0.0.0.0:8000、配置base_url为host.docker.internal、api_key非空,并清空.openhands-state目录后重启容器。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw配置本地模型后页面显示“模型加载完成”但点击发送按钮无响应、输入框灰显或提示“Connection refused”,说明模型服务虽启动但未被正确接入。
确认本地模型服务是否真正在监听
打开终端,执行 curl -X POST http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"qwen2.5","messages":[{"role":"user","content":"你好"}]}'。
如果返回 JSON 响应(含 choices 字段),说明服务正常;若报 Failed to connect 或超时,则模型服务根本没跑起来,或监听地址不是 localhost:8000。
重点检查:模型服务启动命令中是否明确写了 --host 0.0.0.0 --port 8000。只写 --port 8000 默认绑定 127.0.0.1,Docker 容器内无法访问。
修正 OpenClaw 的 LLM 配置项
编辑 config.template.toml 中的 [llm] 区块,确保以下三项全部存在且值准确:
model = "qwen2.5"
base_url = "http://host.docker.internal:8000/v1" —— 必须用 host.docker.internal,不能填 localhost,否则容器内 DNS 解析失败。
api_key = "not-needed" —— 即使本地模型不需密钥,此项也必须存在且非空,否则 OpenClaw 初始化 LLM client 时会抛错退出。
验证容器网络连通性
进入 OpenClaw 容器内部测试连通性:
第一步:运行 docker exec -it openclaw-app sh 进入容器 shell。
第二步:执行 ping host.docker.internal,确认能解析出 IP(通常是 172.17.0.1 或类似)。
第三步:执行 curl -v http://host.docker.internal:8000/health,看到 HTTP 200 表示网络通、服务活。
如果第三步失败但宿主机 curl 成功,说明本地模型服务未监听 0.0.0.0,或防火墙拦截了跨容器通信。
重启 OpenClaw 并跳过前端缓存
停止旧容器:docker stop openclaw-app。
删除旧卷(关键):rm -rf .openhands-state —— 【不删会导致旧配置缓存残留,重启后仍读取错误 base_url】。
重新运行容器命令,确保挂载的是新清空的 .openhands-state 目录。
浏览器打开 localhost:3000 时,强制刷新(Ctrl+F5),避免加载旧 JS 缓存导致 UI 层卡死。










