最近一段时间,OpenClaw(老用户应该记得它之前的名字叫clawdbot)这个开源AI智能体项目在圈子里讨论度突然上来了,我也跟着做了一次完整部署。说实话,如果你打算在Windows上把这套东西跑起来,最大的障碍不在OpenClaw本身,而在Windows对Linux生态服务的支持上。我一开始直接在Windows PowerShell里折腾,依赖、脚本、Node版本、CUDA环境,每个环节都有"Windows专属问题",后来切换到WSL以后才顺起来。这篇文章把我从Windows原生安装转战WSL、最终跑通OpenClaw的完整过程写出来,包括我踩过的坑和每个坑的定位思路。目标是让任何一个在Windows平台上工作的朋友,照着这篇文章就能把OpenClaw本地跑起来,别在环境问题上耗尽耐心。
1. 为什么最终换到WSL:Windows原生部署的三大堵点
1.1 Windows原生跑OpenClaw,问题出在哪
OpenClaw这类智能体项目的安装脚本几乎都是按照Linux环境设计的。我在PowerShell里跑安装脚本,首先撞上的就是依赖编译问题:npm安装过程中有不少原生模块需要本机编译,而Windows上编译要额外配Python环境、Visual Studio Build Tools,版本稍微没对齐就报错,往往折腾几个小时还停在依赖阶段。
更麻烦的是Docker容器形态。OpenClaw的完整部署会用Docker Compose编排一些周边服务,这些镜像几乎都是Linux基础镜像,虽然Windows版Docker Desktop也能跑,但文件挂载、端口映射、文件权限的行为和Linux有细微差别,出了问题排查起来要同时懂Windows和Linux两套体系。
还有一点是CUDA。AI智能体不可能永远只聊文本,只要想接本地模型,GPU就绕不开。Windows下配置CUDA也不是不行,但WSL2天然支持GPU透传,Windows端装一次显卡驱动,WSL2里直接就能看到GPU,省掉一半繁琐的配置步骤。综合下来,我最终决定把部署环境整体迁到WSL里。
1.2 WSL1和WSL2的差别,为什么必须上WSL2
这里必须先说清楚一个容易踩的坑:WSL1和WSL2是两个完全不同的东西。WSL1其实是一个系统调用翻译层,没有真正的Linux内核,很多Linux软件跑在上面会出各种怪异问题,Docker跑不了,GPU透传也不支持。OpenClaw要求的是完整的容器化环境,所以目标必须是WSL2。
想确认当前是哪个版本,在PowerShell里执行:
bash复制wsl -l -v
如果看到某个发行版版本号是1,就执行转换:
bash复制wsl --set-version Ubuntu-22.04 2
转换需要一点时间,如果报错,多半是虚拟化没开,或者Windows功能里"虚拟机平台"没有启用。WSL2本质是一个轻量虚拟机,通过Vmmem进程占用资源,网络走NAT模式,但Windows会自动做localhost转发,所以WSL2里启动的服务,直接打开Windows浏览器访问localhost就能通,这点对后续调试OpenClaw的Control UI非常重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 部署前的基础设施准备:从零到能跑OpenClaw的WSL环境
2.1 WSL安装与升级,以及wsl --install太慢的处理办法
如果你还没有安装任何WSL发行版,命令很简单:
bash复制wsl --install -d Ubuntu-22.04
但很多人在这一步会卡很长时间,网上一搜全是"wsl --install 太慢"的求助。根据我实际遇到的情况,这个慢一般卡在发行版下载环节,微软服务器在国内的网络下速度不稳定。我的处理方式是分步来:
- 先执行
wsl --install --no-distribution,只安装WSL本体,不下载发行版。 - 再执行
wsl --update手动更新WSL内核。 - 最后单独安装发行版,可以用
wsl --install -d Ubuntu-22.04,如果还是慢,就去Microsoft Store搜索Ubuntu 22.04.3 LTS,通过Store的下载通道安装,成功率更高。
安装过程中如果出现类似"wsl --update 正在安装: 适用于 Linux 的 Windows 子系统 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动"的报错,说明WSL需要的Windows功能没有被正确启用。解决方案是管理员身份打开PowerShell,执行下面的命令:
powershell复制Enable-WindowsOptionalFeature -Online -Fe
