最近一直在折腾 OpenClaw 这个开源的个人AI助理项目。说实话,第一次看到它的时候我也犹豫过——这东西到底值不值得在一台 Win10 上花一整个下午去部署?结果试完之后发现,OpenClaw 的能力边界完全取决于你给它配的模型和运行环境,而部署环境恰恰是大部分人卡住的第一关。网上讨论最多的坑都集中在 Windows 原生环境下的依赖冲突上,所以我给周围人的建议一直很直接:别在 Windows 里硬装,用 WSL2 + Ubuntu 24.04 这套组合最省心。这篇文章就是我本人从零开始、在 Win10(WSL)和 Ubuntu 24 上完整安装配置 OpenClaw 的全记录,包括 Core 的部署、Companion 的配置、模型后端的选型,以及我在实测中踩过和绕过的坑。适合三类人参考:想在 Windows 上体验 OpenClaw 但不知道怎么下手的、准备把 OpenClaw 作为长期个人助理常驻服务的、以及单纯想搞明白 Core、Companion、Ollama 之间是什么关系的好奇派。
1. 动手之前,先把OpenClaw的架构和规划讲清楚
1.1 一套OpenClaw究竟由哪几部分组成
OpenClaw 不是那种"一个安装包全搞定"的软件。它更像一套各司其职的组合件,这也是为什么安装教程看起来复杂,因为你要配的不是一个东西,而是三四个。我在理解它的过程中,习惯把整套系统拆成三块。
第一块是核心服务(Core),负责跟大模型对话、拆解任务、调度技能和工具链。Core 是整套系统的"大脑"所在,通常跑在 Linux 环境下。第二块是桌面伴侣(Companion),装在你日常使用的 Windows 或 macOS 主机上,负责屏幕捕获、键鼠模拟、系统通知这些需要"物理接触"桌面的操作。第三块是大模型后端,也就是算力来源,可以是云端 API,也可以是本地通过 Ollama 跑的模型。
想明白这三块之后,很多安装问题其实是自己把自己绕晕了——比如只装了 Core 就抱怨"为什么它看不见我的屏幕",那是因为 Companion 还没装;又比如设好了 API 但运行极慢,那是上下文拉太长或者模型选小了。
1.2 为什么Win10上优先考虑WSL而不是原生安装
在 Windows 上安装 OpenClaw,最大的问题不是软件本身,而是依赖环境。Core 的整个工具链——Node.js、Python、各种命令行工具、网络访问——在 Windows 原生环境里经常互相打架。我在 Win10 上第一次尝试时,光是处理路径分隔符和 PATH 变量就花了一个多小时,后来直接放弃,改用 WSL。
WSL2 相当于在 Windows 里跑一个轻量虚拟机,但它的文件和网络跟 Windows 是互通的。OpenClaw 的 Core 放在 WSL2 的 Ubuntu 24.04 里,Companion 放在 Windows 侧,两者通过 localhost 端口和文件系统协作,体验上几乎是无缝的。对我这种长期需要在 Windows 和 Linux 之间切来切去的人来说,这是最稳妥的选择。
另外说一下 Ubuntu 24.04。这是目前最新的 LTS 版本,软件源里的 Node.js、Python 版本都比较新,OpenClaw 需要的依赖大多数能直接通过 apt 装齐,不需要反复折腾编译。如果你手头只有 20.04 或 22.04,理论上也能装,但 24.04 是我实测下来最省事的版本。
1.3 算力来源:API和Ollama怎么选
很多人问"OpenClaw 是不是只能用接入 API 的方式使用算力",答案是否定的。OpenClaw 支持两类模型后端:一类是云端 API,比如 Anthropic 的 Claude,或者兼容 OpenAI 接口的服务;另一类是通过 Ollama 在本地跑开源模型。
这两条路有各自的取舍。云端 API 的好处是模型智商高、上下文窗口大、响应稳定,缺点是按 token 计费,长时间挂着做自动化任务时账单会涨得比较快。本地 Ollama 的好处是免费、数据不出本机,缺点是模型能力上限低一些,而且显卡不够强的话,一次推理的延迟会很明显。
| 对比项 | 云端 API | 本地 Ollama |
|---|---|---|
| 模型能力 | 强,上下文大 | 中等,取决于模型参数量 |
| 使用成本 | 按 token 计费 | 免费,只费电 |
| 数据隐私 | 数据出本地 | 数据留在本机 |
| 硬件要求 | 低,有网络就行 | 高,内存和显卡是关键 |
| 适合场景 | 尝鲜、多步复杂任务 | 长期运行、对隐私敏感 |
我个人的建议是:如果你只是尝鲜,先用 API 跑通全流程,因为 API 的调试信息更明确、模型能力更强,遇到问题容易排查;如果准备长期使用或者处理敏感数据,再切换本地 Ollama。切换方法后面会讲到,主要是改一个环境变量的事。
2. WSL2 + Ubuntu 24.04部署环境的搭建
2.1 检查Win10版本并安装WSL2
开始之前,先确认 Windows 版本。我建议至少是 Windows 10 2004(build 19041)及以上。如果你的系统还是更老的版本,先更新 Windows 再继续,否则后续步骤会不断遇到兼容性报错。
确认版本之后,以管理员身份打开 PowerShell,运行:
wsl --install这条命令在较新的 Win10 上会自动安装 WSL2 内核并下载默认的 Ubuntu 发行版。如果你的系统执行这条命令报错,说明版本太老,需要手动两步走:先开启两个 Windows 功能,再下载 WSL2 内核更新包。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart开启功能后重启一次,然后到微软官网下载 WSL2 内核更新包安装。装完再执行:
wsl --set-default-version 2装上之后用wsl -l -v查看发行版列表和版本号,确保 VERSION 那一列是 2 而不是 1。WSL1 和 WSL2 的网络行为、文件性能差别很大,OpenClaw 这种需要本地服务常驻的工具,务必用 WSL2。
2.2 把WSL放到D盘,给C盘留条活路
这是被问得很多的问题:"WSL 安装到 D 盘"。WSL 默认把虚拟磁盘文件放在 C 盘用户目录下,装完 Ubuntu 之后,那个 ext4.vhdx 文件动辄几十 GB,我是装了半个月后才注意到 C 盘红了。如果你跟我一样 C 盘紧张,建议装完系统后立刻迁移。
操作分四步:先关闭 WSL,再导出、注销、导入。
wsl --shutdown wsl --export Ubuntu-24.04 D:\wsl-backup\ubuntu24.tar wsl --unregister Ubuntu-24.04 wsl --import Ubuntu-24.04 D:\WSL\Ubuntu24 D:\wsl-backup\ubuntu24.tar导入后原来的默认用户会被重置为 root,登录时会变成 root 身份。想恢复原来的普通用户,需要打开 Ubuntu 终端运行:
sudo nano /etc/wsl.conf在文件里加两行:
[user] default=你的用户名保存后退出 WSL,在 PowerShell 里再次wsl --shutdown,重进就是普通用户了。这个细节网上很多教程没提,我当初迁移完直接懵了半天,一直在用 root 装环境,后面文件权限各种别扭。
2.3 Ubuntu 24.04初始化与系统依赖
打开 WSL 里的 Ubuntu 终端,第一件事是更新源:
sudo apt update && sudo apt upgrade -y然后安装常用依赖包,OpenClaw 编译依赖和日常调试都会用得到:
sudo apt install -y git curl wget build-essential unzip如果后面要用 Ollama 跑模型,建议顺手装上,省得后面再回来补:
curl -fsSL https://ollama.com/install.sh | sh ollama pull llama3.1拉模型这一步看网速,文件比较大。可以先去配置 OpenClaw,模型让它慢慢下载,互不冲突。
3. 在WSL2/Ubuntu 24上安装OpenClaw Core
3.1 安装Node.js运行环境
OpenClaw 的 Core 部分依赖 Node.js。Ubuntu 24 自带的 Node 版本往往偏旧,我建议用 NodeSource 源装一个 LTS 版。这一步不要跳过,旧版本 Node 有可能导致 npm install 时某些依赖编译不过。
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs装完检查一下版本:
node -v npm -v我这里的版本是 v20.x。如果你更习惯用 nvm 来管理 Node 版本,也可以,只是后续每次进入 WSL 要记得nvm use,容易忘,所以我自己是直接装的系统级 Node。常驻服务场景,稳定比版本灵活更重要。
3.2 拉取OpenClaw源码并安装依赖
接下来克隆 OpenClaw 仓库。仓库地址以官方 GitHub 为准,我这里用通用写法:
git clone https://github.com/openclaw/openclaw-core.git cd openclaw-core npm installnpm install这一步等待时间长短取决于网络。如果安装过程中报权限错误或 node-gyp 编译失败,通常是缺 build-essential,前面已经装过,可以放心。如果还是报错,试试先清理 npm 缓存再装:
npm cache clean --force rm -rf node_modules package-lock.json npm install如果你的网络访问 GitHub 或 npm 源不稳定,可以给 npm 换国内镜像源:
npm config set registry https://registry.npmmirror.com但要注意,镜像源只影响 npm 包下载,不影响 GitHub 克隆。GitHub 访问不稳定的话,换个网络环境或者找镜像仓库拉取,比反复重试要省时间。
3.3 配置模型后端:API Key或Ollama
进入 openclaw-core 目录,通常会有一个.env.example示例配置文件,把它复制成.env:
cp .env.example .env nano .env如果你用云端 API,找到类似ANTHROPIC_API_KEY的字段,填上你的 Key,同时确认MODEL一栏填的模型名跟你的账号权限匹配。如果你用 Ollama,则把后端地址设为:
MODEL_PROVIDER=ollama OLLAMA_BASE_URL=http://localhost:11434 MODEL=llama3.1这里有个值得单独说一句的坑:localhost 在 WSL2 里指向的是 WSL 自身。如果 Ollama 是装在同一套 WSL 里的,直接用 localhost 没问题;如果 Ollama 装在 Windows 宿主上,WSL2 里就要用http://宿主机IP:11434,这个 IP 可以在 Windows 的ipconfig里看到,或者在 WSL 里通过默认网关获取。很多人在这一步卡住,就是因为 localhost 理解错了。
配置文件的具体字段名以仓库里的.env.example注释为准,因为不同版本可能略有差异。改完配置之后,建议顺手把LOG_LEVEL=debug打开,第一次启动排错会方便很多。
3.4 启动Core并做第一次健康检查
配置完成后,启动 Core:
npm run start正常启动后终端会打印服务地址和日志。第一次启动建议看两样东西:一是模型是否连接成功,日志里不应出现 401 或超时;二是技能列表是否被正确加载,比如有没有识别出内置工具。
如果启动时报模块缺失,大概率是依赖没装完整,回到 3.2 重新npm install。如果启动成功但调用模型时一直转圈,多半是网络问题——WSL2 的网络默认走宿主机的网络栈,而 Windows 上常见的安全软件或防火墙只针对 Windows 进程放行,不一定理会 WSL 里的请求。这个问题的排查思路放到第 5 章细说。
4. 配置Windows Companion,让OpenClaw真正接管桌面
4.1 Companion到底解决什么问题
很多人在网上搜"Windows Companion 怎么配置",其实是没搞明白 Companion 的定位。Core 在 WSL 的 Linux 环境里,它是看不见你的 Windows 桌面的,更不可能替你点鼠标、截图、按快捷键。Companion 就是为了填补这个空缺:它跑在 Windows 侧,把桌面屏幕通过约定的接口传给 Core,Core 做完决策之后把操作指令发回来,Companion 再模拟执行。
可以这么理解:Core 是大脑,Companion 是手和眼睛。没有 Companion,OpenClaw 充其量是个聊天机器人;有了它,才变成能操作电脑的个人助理。这一步对 Windows 用户来说是刚需,别省略。
4.2 Companion安装与连接
Companion 的安装方式以官方发布为准,一般是通过安装包或可执行文件安装。安装到 Windows 之后,首次启动会要求填写 Core 的连接地址。如果你的 Companion 和 WSL 在同一台机器上,地址填http://localhost:端口即可,这个端口就是 3.4 中 Core 启动时打印的端口。
注意两者的网络关系:WSL2 里的 localhost 和 Windows 的 localhost 是互通的,所以 Windows 里的 Companion 可以直接访问 WSL 里监听的端口。如果填完地址后 Companion 显示连接失败,先检查 Core 是否还活着,然后在 Windows 的 PowerShell 里用curl http://localhost:端口测一下,基本就能定位是服务没起来还是地址填错。
4.3 给Companion授权与权限设置
Companion 要模拟键鼠操作,Windows 会弹权限确认或安全软件告警,这是正常的,把它加入信任列表即可。部分操作还需要以管理员身份运行 Companion,否则有些高权限窗口它点不动。
我实测遇到的典型问题是:开着多个虚拟桌面,或者目标窗口是以管理员权限运行的,Companion 的点击会失效。解决思路是把 Companion 也提权运行,并且尽量在单一桌面环境下测试。安装配置阶段先别铺得太开,跑通一个最简单的"帮我打开记事本"再慢慢加复杂度。
5. 高频问题排查与实测体验
5.1 WSL2外网访问超时,API一直转圈
最常见的症状是 Core 启动正常,但调用 API 时长时间无响应。WSL2 默认是 NAT 网络,虚拟网卡走的是 Windows 宿主网络栈。这时候先做三个排查。
第一,在 WSL 里curl -I https://www.baidu.com看基础外网通不通。第二,cat /etc/resolv.conf看 DNS 是不是变成了 127.0.0.1,WSL2 自动生成的 NAT DNS 有时会失效,这种情况下手动指定一个公共 DNS 就能解决。第三,检查 Windows 防火墙或安全软件是不是拦了 WSL 的虚拟网卡流量。
我自己遇到的坑就是 Windows 防火墙把 WSL 子网挡了,在防火墙高级设置里放行之后就好了。这种问题在 Windows 侧用大白话说就是"WSL 是个独立小局域网",你平时给局域网程序开的权限,它不一定有。
5.2 Ollama模型推理慢或OOM
在 WSL2 里跑 Ollama,如果机器没有独显,或者独显没被 WSL 识别,模型只能跑 CPU,速度会非常慢。先跑ollama ps看模型是否加载,再用nproc看核数。想确认 GPU 是否被 Ollama 使用,可以跑一次推理并观察日志里有没有 CUDA 相关输出。
WSL2 要用上 NVIDIA GPU,需要在 Windows 侧安装对应的 NVIDIA 驱动,WSL 内部不需要再装驱动。如果你这一步还没配好,建议先换小尺寸模型。实测下来 qwen2.5:7b 或 llama3.2:3b 在纯 CPU 环境下至少能跑出结果,7B 以上的模型在没 GPU 时基本等不起。记住一个原则:本地模型跑不动的时候,果断切 API 或者蹲一个好一点的显卡,不要在调参上死磕。
5.3 WSL不随Windows开机自启
OpenClaw 这种常驻工具,总手动开 WSL 和 Core 很烦。可以新建一个 Windows 任务计划程序,触发器选"登录时",操作指向:
wsl -d Ubuntu-24.04 -u 你的用户名 -- bash -lc "cd /path/to/openclaw-core && npm run start"这样开机登录后 Core 自动拉起。需要注意 WSL 默认没有 systemd(除非你在/etc/wsl.conf里启用了 systemd),所以用bash -lc直接跑命令,而不是systemctl。如果你熟悉 systemd,也可以在 wsl.conf 里开启然后写 service,但对多数场景来说,任务计划程序已经够用。
5.4 中文输入法与中文字体显示问题
在 WSL 的 Ubuntu 终端里,中文显示成方框是字体问题,安装中文字体即可:
sudo apt install -y fonts-noto-cjk如果想给 Ubuntu 桌面或者用远程桌面跑图形界面时用中文输入法,那又是另一个工程量。我建议初级用户先别碰这个,直接用 Companion 在 Windows 侧处理文本,或者在 Core 的对话里输入中文,避开在 WSL 里折腾输入法。
5.5 原生Ubuntu 24安装与WSL的差异
如果你本来就有原生 Ubuntu 24.04 的机器,安装流程跟 WSL 里几乎一样:更新 apt、装依赖、装 Node.js、拉仓库、npm install、配 .env、启动。差异主要在三个地方。
第一,原生 Ubuntu 默认启用 systemd,所以你可以用 systemctl 把 OpenClaw Core 做成开机自启服务,比任务计划程序更规范。第二,NVIDIA 驱动要自己在 Ubuntu 里装,WSL 是从 Windows 侧继承的。第三,没有 WSL 那层 localhost 转发,Companion 如果也跑在同一台 Ubuntu 上,网络配置会更直接;如果 Companion 在另一台 Windows 上,就需要让 Core 监听局域网地址并注意防火墙放行。底子是一样的,主要区别在系统维度的管理方式。
5.6 关于这套方案的个人体验
整套部署完成之后,我实际跑了一段时间,说几个用户体验上的真实感受。OpenClaw 在任务拆解上的灵活度确实超出我的预期,尤其是把"打开某个报表、提取关键数字、整理成摘要、发到指定文件夹"这一连串操作交给它执行时,它分步完成得还挺像回事。但前提是模型要够强——我用 Ollama 的 7B 模型时,多步任务经常中途逻辑断裂;换 API 之后,同样的流程成功率大幅提升。这不是 OpenClaw 的问题,是模型能力上限决定的。
另外,技能(Skill)系统值得单独花时间研究。OpenClaw 的能力很大一部分来自可插拔的技能,官方仓库里通常带有一批内置技能,你也可以模仿它们写自己的技能脚本。我个人建议先从小操作练起,比如让 AI 自动整理下载文件夹里的文件,一步步往上加复杂度,别一上来就让它接管整个工作流。最后,WSL2 加 Ubuntu 24 这套组合,一旦搭好其实相当省心,后面升级 Core 只需要在 WSL 里重新拉代码、装依赖。我中间也动过直接原生装 Ubuntu 24 的念头,流程跑通后发现效果一样,但为这一个项目再腾一台机器确实没必要,除非你是重度 Linux 用户。