ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

OpenClaw Windows部署指南:WSL2环境修复与Companion配置实战

OpenClaw Windows部署指南:WSL2环境修复与Companion配置实战 这篇标题为什么叫“纯干货...不是”因为我自己在装 OpenClaw 的时候一开始确实以为下载个包、点两下下一步就完事了结果光环境就折腾了小半天。那句被搜索了无数次的报错——openclaw无法安全验证WSL2环境。请在PowerShell中运行 wsl --status——看起来像是一句简单的状态提示实际上背后牵扯到 Windows 版本、WSL2 内核、虚拟机平台功能、Docker Desktop 联动等一系列问题。等我把整条路走通又陆续试了 Ollama 本地模型、API 接入、Windows Companion 配置踩过的坑足够写一整篇。这篇东西就是给你“抄作业”用的。如果你打算在 Windows 上部署 OpenClaw或者想搞清楚 WSL2 环境到底怎么修、Companion 怎么配、本地算力和 API 到底选哪个那接下来这部分内容应该能帮你少走不少弯路。我会把排查思路和操作步骤一起给出来不只是告诉你“敲什么命令”还会说明为什么这么敲、背后发生了什么。1. 那句“无法安全验证WSL2环境”的报错究竟卡在哪先说结论你搜到的openclaw无法安全验证WSL2环境。请在PowerShell中运行 wsl --status这个提示并没有骗你它确实是在告诉你“当前系统里没有一个能被 OpenClaw 信任的 WSL2 环境”。但问题是它给的信息太暧昧了新手看到之后只会本能地跑一条 wsl --status然后发现命令不存在、或者显示一堆看不懂的状态最后死循环。1.1 OpenClaw为什么绕不开WSL2OpenClaw 的安装脚本和运行环境深度依赖 Linux 子系统。原因很简单这套 agent 框架在 Windows 上运行时需要大量的 shell 工具、进程管理和文件系统操作Windows 原生的 cmd 和 PowerShell 在兼容性上撑不住。与其做一层复杂的系统适配层不如直接让它在 WSL2 里面跑——WSL2 不是一个模拟器它是一个真正的轻量级虚拟机运行完整的 Linux 内核所以大部分为 Linux 写的依赖可以原封不动地装上。我之前看到有人问“为什么不能直接做成 exe”其实也能做但会牺牲很多东西。OpenClaw 的技能机制skill设计得很像插件系统插件要调用 shell 命令、要访问 /usr/bin 下的工具这些在纯 Windows 环境下限制太多。所以 WSL2 不是开发者的执念而是这个框架的架构使然。你要想让 OpenClaw 稳定工作就得先给它一个“合格的 Linux 环境”。1.2 报错背后的三个常见原因排查这句报错我建议不要上来就重装 WSL先按下面三个方向对号入座。80% 的情况跑不出这三个范围。第一WSL 功能根本没启用。很多人的电脑之前从来没装过任何 Linux 子系统系统设置里“适用于 Linux 的 Windows 子系统”和“虚拟机平台”两个可选功能都是关闭的。这种情况下 wsl --status 会直接提示“未安装用于 Linux 的 Windows 子系统”你看不到任何版本号自然也就无从验证。第二WSL 有了但版本是 1。WSL1 和 WSL2 是完全不同的实现OpenClaw 要求的是 WSL2因为 WSL1 不支持真正的 Linux 内核很多系统调用会被翻译层吃掉跑 agent 任务时行为会走样。wsl --status 的输出里如果显示“默认版本1”那环境验证就是过不去的。第三内核组件过期或缺失。Windows 10 的早期版本、或者很久没更新的系统即使功能开了也可能缺少新版 WSL 内核。这时候 wsl --status 会提示你更新内核或者显示一堆 dll 错误。Win10 和 Win11 的 WSL 安装路径不太一样Win11 走的是应用商店更新Win10 需要手动下载内核更新包这点要注意。1.3 从零修复WSL2的完整操作如果你现在被报错堵住按下面这个顺序来基本能一次性解决。全部操作需要管理员权限的 PowerShell。wsl --status先看当前状态。如果提示找不到命令或者让你安装继续往下走。wsl --install这个命令会开启所有需要的功能并安装默认的 Ubuntu 发行版。执行完后务必重启电脑。我见过不少人不重启就继续装 OpenClaw结果明明显示装成功了环境验证还是各种报错就是这个环节偷懒了。重启之后再次打开管理员 PowerShell输入wsl --set-default-version 2把默认 WSL 版本设为 2。如果这一步提示需要更新内核那就去微软官方文档下载“WSL2 Linux 内核更新包”装完之后重新执行上面的命令。最后装一个发行版进去wsl --install -d Ubuntu-22.04启动后初次会提示你创建 Linux 用户名和密码这个账号后面会用得到务必记好。创建完成之后在 PowerShell 里再跑一次 wsl --status看到“默认版本2”以及 Ubuntu 的状态是“已安装”环境这关就算过了。提示Windows 10 比较旧的话建议先把系统更新跑完再搞 WSL2否则容易遇到内核模块不匹配的问题。Win11 基本都是 out-of-box 支持。2. 依赖准备Git、Node.js、Docker Desktop的版本陷阱WSL2 修好之后很多人会直接冲去装 OpenClaw结果又挂。因为 OpenClaw 的安装流程里还有几个前置依赖你装是装了但版本和配置不对依旧白搭。我按踩坑率从高到低说。2.1 Git和Node.js的版本选择Git 的要求比较低装上最新稳定版就行没有什么值得纠结的。真正的问题是 Node.js。OpenClaw 的部署脚本和运行时要求 Node.js 的版本不能太老至少要 18 以上建议直接装 20 LTS。你可能会想“那我装个最新的 23 不是更好么”不要别追求最新。OpenClaw 的依赖生态里有不少原生模块在最新 Node 版本上经常编译失败反而 LTS 版本经过大量验证跑得最稳。装 Node.js 的时候有个细节官网下载的安装包安装向导里有一个“Add to PATH”的选项一定记得勾上。很多人装完之后在 PowerShell 里敲 node -v 提示找不到命令就是这里漏了。如果你已经装完但没勾可以去系统环境变量里手动把C:\Program Files\nodejs\加进去。2.2 Docker Desktop和WSL2的联动配置如果你的部署路线是 Docker 方式那 Docker Desktop 必然要装。但注意Docker Desktop 版本迭代快安装界面一直在变核心设置却从没变过安装完成后打开 Settings → General确认“Use the WSL 2 based engine”是勾选状态。这一步是 Docker 和 WSL2 联动的开关不勾上的话Docker Desktop 会尝试用 Hyper-V而 Hyper-V 和 WSL2 在某些机器上是冲突的轻则 Docker 起不来重则直接把 WSL2 搞崩。有博主提到“docker desktop 安装教程”里的各种老截图其实都属于版本差异你只要记住这个核心开关就行。另外在 Settings → Resources → WSL Integration 里把 Ubuntu 发行版的开关也打开确保 Docker 命令能在 WSL 内部被容器使用。这一步不设置后面你进到 WSL 里执行 docker ps 就会报 context 错误看起来像是 Docker 没装好其实只是没做集成。2.3 虚拟机方案VMware里跑Ubuntu的取舍WSL2 修不出来的机器或者你就是想彻底隔离环境有些人会转向 VMware 虚拟机里装 Ubuntu 再部署 OpenClaw。这套路不是不行但你要清楚代价。VMware 方案的好处是环境干净、不污染 Windows卸载也彻底删掉虚拟机文件就行。但代价是资源占用很高一个 Ubuntu 虚拟机至少吃掉 2GB 内存加上编译依赖时 CPU 满转如果你的机器是 16GB 内存以下跑起来会很吃力。还有个麻烦是文件共享你 Windows 上的配置文件和虚拟机的文件系统之间有隔阂配置 OpenClaw 时经常要在两种系统之间来回搬文件多一层操作就多一层出错的可能。如果你执意走 VMware安装 Ubuntu 时建议选 22.04 或 24.04 LTS内存给 4GB 以上硬盘给 40GB网络选 NAT 模式这样拉取依赖时能正常上网。装好之后在 Ubuntu 里用官方脚本安装 OpenClaw反而比 Windows 路线少很多坑——因为 WSL2 那层验证逻辑根本不存在了。3. 部署OpenClaw本体与Windows Companion配置环境修好之后才轮到真正的安装环节。这一部分我强烈建议你根据自己情况二选一要么走 Docker 路线要么走 npm / 源码路线。两条路各有优劣往下看再决定。3.1 Windows下的两条部署路线先明确一个事实OpenClaw 不是一个“双击下一步”的软件。你在 GitHub 仓库里看到的部署说明本质上是引导你克隆代码、安装依赖、配置环境变量最后启动一个服务。所以不管什么路线你都要和终端打交道这是躲不掉的。Docker 路线适合“不想污染系统环境”的人。在 WSL 的 Ubuntu 终端里先确认 docker 可用然后拉取镜像、按仓库里的 docker-compose 文件启动。这种方式最干净升级也方便镜像更新了重新 pull 一下就行。坏处是镜像通常比较大几百 MB 到 1GB 都很正常第一次拉取会等一会儿。npm 路线适合“想直接看源码、改源码”的人。在 Ubuntu 终端里先克隆仓库然后 npm install安装依赖。这个过程非常久尤其在网络不稳定的情况下经常卡在上百个依赖包上。建议装个国内镜像源但注意 OpenClaw 有些二进制依赖需要从 GitHub 拉取光换 npm 源解决不了全部问题必要时还得挂代理这一步自己想办法网络问题不同环境下差异太大。初次启动之后OpenClaw 会在终端里输出一行日志地址通常是类似http://localhost:3000的本地地址。用浏览器打开这个地址如果能出现一个 Web 界面说明核心部署成功。注意如果看到端口被占用不要慌这不是装错了而是你机器上某个进程抢占了端口。要么改 OpenClaw 的端口配置要么把占用端口的进程处理掉。查端口占用用netstat -ano | findstr :3000结果里的 PID 去任务管理器里对应一下就知道是谁了。3.2 Companion到底管什么配置时注意什么Windows Companion 是很多 Windows 用户绕不开的组件热词里也有一票人在搜“openclaw windows companion 怎么配置”。这个组件说白了就是一个常驻在 Windows 任务栏的管理小工具它的作用不是替代核心服务而是帮你管理 OpenClaw 的本地实例——比如一键启动、停止、看日志、检查环境状态。配置 Companion 时最容易出问题的点是路径不对称。Companion 在 Windows 侧运行但核心服务跑在 WSL2 里两边文件系统是隔离的。你在 Companion 里填配置路径时填的是 Windows 路径如C:\appdata\openclaw但 OpenClaw 实际读写的是 WSL 路径如\\wsl$\Ubuntu\home\openclaw。很多教程没讲清楚这个区别导致纯填 C 盘路径后Companion 一直报“找不到服务”。我的做法是部署时直接把数据和配置目录统一放在 WSL 环境内部Windows 侧不由 Companion 直接管理而是把 WSL 的快捷启动命令封装成一个批处理脚本需要时点一下就能拉起服务。Companion 只用来做状态监控。如果你特别需要 Companion 参与管理那就把配置路径明确写成 UNC 网络路径的格式两边才能对上。3.3 Ubuntu环境下的部署差异如果你直接在 Ubuntu虚拟机或纯 Linux 机器上部署省掉了 WSL2 验证的麻烦其他步骤大体一样但有几个命令级别的差异要留意。Ubuntu 需要先确保自己有基本的编译工具链因为 npm 安装原生模块时可能会现场编译。一般执行一下sudo apt update sudo apt install -y build-essential python3不装的话 npm install 过程中会在 node-gyp 阶段报错。报错信息里有 node-gyp 字样十有八九就是缺这个。另外Ubuntu 上部署时防火墙规则要检查一下 3000 端口是否对外开放。本地调试无所谓但如果你想让同局域网的其他设备访问 Web 界面就要注意 ufw 规则。4. 验证部署、处理报错与干净卸载装完之后别急着高兴跑通一次完整功能才算真的装好。这一章我给你几个验证的思路以及我最常碰到的几个坑的排查链路。最后聊卸载——虽然听起来像在泼冷水但“怎么卸载 openclaw”确实是很多人搜得最多的关键词之一。4.1 怎样才算真的装好了我的标准很简单不是“服务启动了”算装好而是“能让 agent 执行完一个完整任务”才算。启动服务之后先进 Web 界面找一个最简单的内置任务比如让 agent 回答一个事实性问题或者执行一条无害的 shell 命令比如让它查看当前目录文件。如果这个任务能正常跑完、输出结果那说明核心链路是通的前端 → 服务端 → 模型 → 工具调用每个环节都没断。还有一步别漏检查日志输出。OpenClaw 运行日志里如果持续出现 4xx、5xx 状态码或者 model 连接失败的报错那说明环境是起来了但模型接入有问题。这时候问题往往不在 OpenClaw 本身而在你选的算力接入方式这部分下一章专门讲。4.2 常见的启动报错排查链路我在部署和帮网友排查时发现下面几个报错出现频率极高。第一启动时提示“module not found”。这是典型的依赖没装全。常见原因是用了npm install --production跳过了一些开发依赖但 OpenClaw 的技能系统和编译脚本需要那些被跳过的包。解决方式很简单删掉 node_modules 和 lock 文件重新完整安装rm -rf node_modules package-lock.json npm install第二启动后 Web 界面一直转圈不出内容。大概率是前端资源没构建完整。npm 方式部署的话执行一次构建命令通常是npm run build或仓库文档里指定的 build 命令然后再重启服务。第三Agent 任务执行到一半就挂。这种情况通常和技能skill有关。某个 skill 要调用的外部工具不存在比如调用了 ffmpeg但系统里没装。修法有两个安装对应工具或者去 skill 的配置文件里把该项禁用。想定位是哪个 skill 出的问题就看日志里最后一个成功步骤和失败步骤之间的差值卡在哪一步往往就是哪个 skill 在调用外部程序。4.3 卸载重装时需要删干净的内容开源项目的卸载通常没有“一键清理”你得知道它的文件布局。停止服务之后先删全局命令行工具如果是 npm 装的npm uninstall -g openclaw/cli然后删除数据和配置目录。OpenClaw 的数据一般在两个地方一个是用户主目录下的.openclaw文件夹另一个是 Docker 路线下 Docker 容器里挂载的卷。Windows 上的话还有%APPDATA%\openclaw这种可能。建议全盘搜索一下“openclaw”命名相关的目录逐个确认后删除。如果用过 Docker 路线记得执行docker compose down -v-v 参数能把匿名卷一起删掉不然重新部署时会读到残留数据行为莫名其妙。给一个建议删数据之前如果里面有你觉得有价值的 agent 配置或自定义 skill先备份到一个独立目录。因为卸载后想恢复没有任何官方云同步数据就是纯本地的删了就真没了。5. 算力接入本地Ollama模型还是API接口最后聊一个非常多人纠结的问题也是我安装过程中最后一个大坑**应用到底用本地算力还是 API**热词里那个“openclaw只能用接入api的方式使用算力吗”的问题我可以直接回答不是。你可以用 API也可以用 Ollama 这类本地推理框架接开源模型OpenClaw 对两者都有支持。5.1 Ollama部署与qwen2.5-3b关联本地模型的方案我用的是 Ollama 加上 Qwen2.5 3B这套组合在配置时比较顺。先装 OllamaWindows 版直接装完它会自动跑一个后台服务默认监听在http://localhost:11434。接着拉取模型ollama pull qwen2.5:3b然后进 OpenClaw 的配置界面把模型提供方从默认的 API 改成 Ollama填入 API 地址http://localhost:11434模型名填qwen2.5:3b保存后它俩就关联上了。这个关联的过程本质上就是让 OpenClaw 把 LLM 请求发到本地端口由 Ollama 托管的模型来响应。这里有个关键Ollama 只能用一个端口服务所有模型所以如果你同一个 Ollama 实例里拉了多个模型请在 OpenClaw 侧正确指定你要用的那个模型名。填错了会报 404 或模型 not found很多人以为适配失败其实就是名字没对上。5.2 API接入方式和适用场景API 方式的配置也很简单在模型配置里选“API 模式”填入服务商提供的 API Key 和对应的模型标识。好处显而易见——不用本地有高性能显卡模型能力上限取决于你选择的 API 档位复杂任务处理得更稳适合跑正经业务、长文档分析、代码生成这类对模型质量要求高的任务。坏处也要说清楚按 token 计费跑多轮对话和长文档时费用走得很快数据隐私依赖服务商政策一些本地文件内容会被发送到远程。另外API 服务商偶尔抽风如果你跑长时间任务时经常断连建议在 OpenClaw 侧开启自动重试机制并做好任务日志导出的习惯。5.3 据我实测的选型建议如果你只是体验 OpenClaw 的 agent 流程、跑跑入门任务或者对数据隐私比较敏感本地 Ollama 方案最合适。qwen2.5 3B 这种小模型虽然复杂指令理解能力一般但处理“调用技能、执行工具、按步骤完成小任务”这类结构化流程足够用而且零成本、离线可用。如果你需要它写长代码、总结长文档、做复杂推理或者你把它当成生产力工具来部署那API 方案是必要的。本地小模型在这些任务上的表现差距很明显强行用本地模型反而会让你觉得“OpenClaw 是不是有问题”其实只是模型本身能力上限在那儿。我个人的实际使用是两手都接日常流程走 Ollama遇到复杂任务临时切到 API。OpenClaw 支持多个模型配置切换这个安排灵活性很高。你部署完之后建议也试一下两套配置来回切换感受一下同一个 agent 在不同算力下的表现差异。这不算折腾这反而是真正理解 OpenClaw 工作方式的过程。
返回列表