前言

在完成 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:可访问

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐