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

  1. 在 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

  1. 验证 GPU 是否被 Docker 识别

docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

看到显卡型号和显存信息即表示成功。

  1. 将当前用户加入 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

  1. 配置文件(保存为 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

  1. 查看日志

docker logs openclaw --tail 30

  1. 访问 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:可访问