本文档介绍如何在OpenClaw(龙虾)中连接并使用本地Ollama模型。配置成功后,可以在Web界面中选择并使用已下载的Ollama模型进行智能对话。
二、验证Ollama服务状态
在配置之前,先确认Ollama服务正常运行并已下载所需模型。
1. 检查Ollama服务
访问以下地址确认服务状态:
|
1
|
http://host.docker.internal:11434
|
应返回 “Ollama is running”
2. 查看可用模型
访问API接口查看已下载的模型列表:
|
1
|
http://host.docker.internal:11434/api/tags
|
当前已安装的模型:
- deepseek-r1:latest - 8.2B参数,深度求索开发,中文理解能力强
- llama3:latest - 8.0B参数,Meta开发,通用对话能力强
- nomic-embed-text:latest - 137M参数,文本嵌入模型
三、网络配置问题解决
问题根源
Docker容器内部所理解的 127.0.0.1 或 localhost,指向的是容器自己的虚拟空间,而不是运行Ollama的Windows宿主机。这就像容器在问"自己"要模型,自然就找不到服务。
解决方案:使用 host.docker.internal
对于Windows版的Docker Desktop,它内置了一个特殊的域名 host.docker.internal,专门用来让容器访问宿主机上的服务。
四、配置方法
方法一:Web UI配置(推荐)
- 访问OpenClaw Web界面:http://localhost:18789
- 登录后,点击侧边栏的 Settings 进入设置页面
- 找到 Model Providers 或类似的模型管理选项
- 在提供商列表中找到 Ollama,点击进行配置
- 确认 API URL 或 Base URL 正确:
|
1
|
http://host.docker.internal:11434
|
- 如果没有自动发现模型,手动添加模型,填写完整的模型名称:
- deepseek-r1:latest
- llama3:latest
- 配置完成后,在创建新聊天对话时,在顶部下拉菜单中选择所需的Ollama模型
方法二:使用 onboard 命令配置
如果Web界面中没有找到合适的设置入口,可以使用交互式向导配置:
进入OpenClaw容器终端:
|
1
|
docker exec -it openclaw /bin/sh
|
运行配置向导:
当向导进行到 “Ollama base URL” 这一步时,输入新地址:
|
1
|
http://host.docker.internal:11434
|
继续完成后续的设置,确认默认模型
退出容器并重启服务:
|
1
2
|
exit
docker restart openclaw
|
方法三:环境变量配置(推荐长期使用)
为了避免每次都需要手动输入地址,可以通过修改容器配置来一劳永逸地解决问题:
停止并移除当前容器:
|
1
2
|
docker stop openclaw
docker rm openclaw
|
重新创建容器,添加 --add-host 参数和环境变量:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
docker run -d `
--name openclaw `
--restart always `
-p 18789:18789 `
-p 3000:3000 `
-p 5173:5173 `
--add-host=host.docker.internal:host-gateway `
-v "Z:\Tools\docker\openclaw\data:/home/node/.openclaw" `
-v "Z:\Tools\docker\openclaw\config:/app/config" `
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 `
-e DEFAULT_MODEL=deepseek-r1:latest `
ghcr.io/openclaw/openclaw:latest
|
关键参数说明:
- --add-host=host.docker.internal:host-gateway:将宿主机地址固化到容器配置
- OLLAMA_BASE_URL=http://host.docker.internal:11434:设置Ollama服务地址
方法四:配置文件手动配置
- 导航到持久化数据目录:Z:\Tools\docker\openclaw\data
- 找到或创建 openclaw.json 配置文件
- 添加或修改以下内容:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"models": {
"providers": {
"ollama": {
"baseUrl": "http://host.docker.internal:11434",
"apiKey": "ollama-local"
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "ollama/deepseek-r1:latest"
}
}
}
}
|
|
1
|
docker restart openclaw
|
五、验证配置成功
1. 容器内测试连通性
运行以下命令,检查容器是否能连接到Ollama并返回模型列表:
|
1
|
docker exec openclaw curl http://host.docker.internal:11434/api/tags
|
如果返回了包含 deepseek-r1:latest 模型的JSON信息,代表连接成功。
2. Web界面测试
- 访问 http://localhost:18789
- 创建新聊天对话
- 在模型选择下拉菜单中确认能看到Ollama模型
- 发送测试消息,确认模型能正常响应
3. 命令行验证
|
1
2
|
# 列出OpenClaw可用的所有模型
docker exec openclaw openclaw models list
|
如果列表中包含 deepseek-r1:latest,说明配置成功。
六、常见问题排查
1. 确保Ollama服务已运行
- 确认宿主机上的Ollama服务正在运行
- 确认 deepseek-r1:latest 模型已下载
2. 网络连通性测试
在容器内执行:
|
1
|
curl http://host.docker.internal:11434/api/tags
|
如果返回模型列表,说明网络连接正常。
3. Windows防火墙检查
如果依然连接失败,检查Windows Defender防火墙,确保没有阻止Docker的网络访问。
4. 模型响应失败
- 确认模型已下载到Ollama
- 验证模型名称正确
- 查看OpenClaw和Ollama日志寻找错误信息
5. 检查模型是否支持工具调用
为了完整使用OpenClaw的Skills功能,模型需要支持工具调用(Function Calling)。
支持工具调用的主流模型:
- deepseek-r1
- qwen2.5
- llama3.1
七、最佳实践
- 推荐使用方法三:通过环境变量和--add-host参数配置,一劳永逸
- 优先使用Web UI配置:最方便直观,不易出错
- 使用onboard向导:自动完成大部分配置工作
- 选择支持工具调用的模型:充分发挥OpenClaw能力
- 定期检查模型更新:保持Ollama和OpenClaw为最新版本
八、模型选择建议
| 模型 |
参数量 |
适用场景 |
特点 |
| deepseek-r1:latest |
8.2B |
知识问答、深度推理 |
中文理解强,推理能力出色 |
| llama3:latest |
8.0B |
通用对话、内容生成 |
多语言支持,性能稳定 |
九、总结
配置OpenClaw使用本地Ollama模型的核心步骤:
- 理解Docker网络原理:127.0.0.1在容器内指向容器自身
- 使用host.docker.internal访问宿主机服务
- 选择合适的配置方法(推荐环境变量配置)
- 配置Ollama API地址和默认模型
- 验证配置成功并测试使用
通过以上配置,即可在OpenClaw中便捷地使用本地部署的Ollama模型,享受私有化的AI对话体验。
|