OpenClaw 本地部署进阶:GPU 加速 + 记忆功能实战
前言
在完成 PostgreSQL、Redis 等基础依赖部署后,本文将专注于 OpenClaw 本地的核心进阶配置:
1. 打通 WSL2 GPU 加速:让 DeepSeek-R1:7B 模型在 NVIDIA 显卡上高效运行。
2. 解决"上下文溢出"难题:通过 compaction 自动压缩机制,告别 Context overflow 报错。
3. 开启持久化记忆:配置 memory 功能,让 AI 真正"记住"你和它的对话。
环境要求:
- Windows 10/11(已安装 Docker Desktop,启用 WSL 2)
- 至少 16GB 内存(推荐)
- NVIDIA GPU(本文以 RTX 5060 Ti 16GB 为例)
一、WSL2 GPU 支持配置(关键步骤)
注意:如果你已在 WSL 中配置过 GPU 支持,可跳过此节。
1. 安装 Ubuntu WSL 发行版(在 Windows PowerShell 中执行)
wsl --install -d Ubuntu
2. 在 Ubuntu 中安装 NVIDIA Container Toolkit
- 启动 Ubuntu:
wsl -d Ubuntu
- 在 Ubuntu 终端中依次执行:
sudo apt-get update
sudo apt-get install -y curl
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
3. 验证 GPU 是否被 Docker 识别
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
看到显卡型号和显存信息即表示成功。
4. 将当前用户加入 docker 组(避免权限错误)
sudo usermod -aG docker $USER
exit
wsl -d Ubuntu
二、部署 Ollama 并启用 GPU
在 Windows PowerShell 中执行:
# 如果已有 ollama 容器,先删除
docker stop ollama
docker rm ollama
# 创建新容器,开启 GPU 支持
docker run -d --name ollama `
--network my-network `
--gpus all `
-e OLLAMA_NUM_PARALLEL=1 `
-e OLLAMA_MAX_LOADED_MODELS=1 `
-e OLLAMA_GPU_OVERHEAD=4 `
-e OLLAMA_FLASH_ATTENTION=1 `
-e CUDA_VISIBLE_DEVICES=0 `
-e OLLAMA_CONTEXT_LENGTH=131072 `
-p 11434:11434 `
-v ollama_data:/root/.ollama `
ollama/ollama:latest
# 拉取 7B 模型
docker exec ollama ollama pull deepseek-r1:7b
验证 GPU 是否工作(在 Ubuntu 终端中执行):
docker exec ollama nvidia-smi
三、配置 OpenClaw
1. 创建配置目录
New-Item -ItemType Directory -Force -Path "D:\Docker\openclaw-data" | Out-Null
2. 配置文件(保存为 D:\Docker\openclaw-data\openclaw.json)
{
"gateway": {
"mode": "local",
"port": 18789,
"bind": "lan",
"auth": {
"mode": "token",
"token": "1111"
},
"controlUi": {
"allowedOrigins": ["http://localhost:18789", "http://127.0.0.1:18789"]
}
},
"models": {
"providers": {
"ollama": {
"baseUrl": "http://ollama:11434",
"apiKey": "ollama",
"api": "ollama",
"models": [
{
"id": "deepseek-r1:7b",
"name": "DeepSeek R1 7B",
"contextWindow": 131072,
"maxTokens": 8192,
"reasoning": true
}
]
}
}
},
"agents": {
"defaults": {
"model": "ollama/deepseek-r1:7b",
"compaction": {
"mode": "auto",
"reserveTokensFloor": 1024,
"reserveTokens": 4096
},
"memory": {
"enabled": true,
"type": "core",
"maxEntries": 200,
"retentionDays": 365,
"autoSave": true,
"autoLoad": true,
"queryOnStart": true
}
}
}
}
配置项说明:
- compaction:自动压缩历史对话,防止 Context Overflow
- memory:开启持久化记忆,AI 能记住用户信息
四、启动 OpenClaw
docker run -d --name openclaw `
--network my-network `
-v D:\Docker\openclaw-data:/home/node/.openclaw `
-v /var/run/docker.sock:/var/run/docker.sock `
-p 18789:18789 `
ghcr.io/openclaw/openclaw:latest
五、验证部署
1. 查看容器状态
docker ps
2. 查看日志
docker logs openclaw --tail 30
3. 访问 Web UI
浏览器打开:http://127.0.0.1:18789/?token=1111
六、记忆功能使用
在 Web UI 聊天框中输入:
写入记忆:
/memory add 我的名字叫小明,我是 Python 开发者
查询记忆:
/query 我叫什么名字?
列出所有记忆:
/memory list
七、常用管理命令
启动所有服务:
docker start my-postgres my-redis ollama openclaw
停止所有服务:
docker stop my-postgres my-redis ollama openclaw
重启 OpenClaw:
docker restart openclaw
查看实时日志:
docker logs openclaw -f
查看 GPU 状态(Ubuntu 中):
nvidia-smi
查看 Ollama GPU 状态:
docker exec ollama nvidia-smi
八、故障排查
| 问题 | 解决方案 |
|------|----------|
| Context overflow | 在 Web UI 执行 /reset;检查 compaction 是否开启 |
| GPU 未被使用 | 确认执行了第一节的 GPU 配置;用 nvidia-smi 监控 |
| permission denied | 在 Ubuntu 执行 sudo usermod -aG docker $USER 并重启 WSL |
| Web UI 无法访问 | 检查 docker ps;检查端口占用 netstat -ano | findstr :18789 |
九、最终状态
- Ollama + GPU:已启用(RTX 5060 Ti)
- OpenClaw:已部署
- 上下文压缩:已开启
- 记忆功能:已开启
- Web UI:可访问
更多推荐

所有评论(0)