1. 为什么 Windows 原生装 OpenClaw 总翻车
OpenClaw 是一个把大模型能力接到聊天通道、命令行和自动化流程里的开源网关,适合想在自己电脑上跑一套私有 AI 助手的开发者。它本身是 Node.js 生态的项目,官方文档和社区案例基本都围绕 Linux 环境展开,这就给 Windows 用户埋了个坑:直接在 PowerShell 里裸装,十有八九会卡在依赖编译或者路径解析上。
我试过在 Windows 11 上直接npm install,结果node-gyp编译原生模块时报 MSBuild 找不到,补了 Visual Studio Build Tools 之后又冒出 Python 版本冲突,折腾两小时还没进配置向导。后来换成 WSL2 方案,从零到跑通控制台只花了二十分钟。原因很简单:WSL2 里跑的是一个完整的 Linux 内核,OpenClaw 的安装脚本、守护进程管理、文件权限模型全都按 Linux 那套来,环境一致性直接拉满。
这篇教程面向的是在 Windows 上想本地部署 OpenClaw、并且打算用统一 API 通道接入多家模型的读者。我会把 WSL2 安装、OpenClaw 配置骨架、TaoToken 统一 Key 接入、服务启动验证、以及几个高频报错的排查动作全部拆开讲,命令可以直接复制。整个流程不需要你懂 Linux 内核,只要会开 PowerShell 就行。
2. 前置准备:WSL2 与 TaoToken 通道
2.1 确认虚拟化与 WSL2 安装
第一步不是敲命令,是确认 CPU 虚拟化已经打开。任务管理器 → 性能 → CPU,右下角看“虚拟化”是不是“已启用”。如果是“已禁用”,重启进 BIOS 把 Virtualization Technology(Intel)或 SVM(AMD)打开。这一步跳过的话,后面wsl --install会报WSL2 requires virtualization之类的错。
确认之后,右键开始菜单,以管理员身份打开 PowerShell,执行:
wsl --install这条命令会一次性装好 WSL 核心组件和默认的 Ubuntu 发行版。装完重启电脑,开始菜单里会出现 Ubuntu 图标,点进去等它完成初始化,设置一个 Linux 用户名和密码。密码输入时终端不显示字符,这是正常的,输完回车即可。
如果你之前装过 WSL 但版本是 1,用下面这条确认并升级:
wsl --set-default-version 2 wsl --list --verboseVERSION列显示 2 就对了。WSL1 和 WSL2 的网络模型完全不同,OpenClaw 的网关监听和端口转发在 WSL2 下才正常。
2.2 为什么用 TaoToken 统一 Key
OpenClaw 的配置向导会让你填 AI Provider 的 API Key。如果你同时想用 Claude 做代码、用别的模型做对话,一个个去各家平台开账号、管 Key、对额度,管理成本很高。TaoToken 提供的是一个统一 API 通道,一个 Key 就能调用多家模型,端点格式兼容 OpenAI 规范,正好对上 OpenClaw 的 provider 配置项。
对本地部署来说,统一通道还有个实际好处:你只需要在 OpenClaw 里维护一份 base URL 和一份 Key,换模型时改个模型名就行,不用动网络配置。TaoToken 的 API 端点是https://taotoken.net/api,控制台在https://taotoken.net/console,Key 在https://taotoken.net/api-keys生成。这几个地址后面配置里会用到。
3. 可复制配置:OpenClaw 安装与 TaoToken 接入
3.1 一键安装 OpenClaw
回到 Ubuntu 终端,先更新包索引,再跑官方安装脚本:
sudo apt update && sudo apt upgrade -y curl -fsSL https://openclaw.ai/install.sh | bash安装脚本会自动检测 Node.js,没有就帮你装。跑完之后验证一下:
openclaw --version node --version两个命令都能输出版本号,说明二进制和运行时都就位了。如果openclaw提示 command not found,执行source ~/.bashrc刷新一下环境变量,或者重开一个终端标签。
3.2 初始化配置向导
接下来启动配置向导,并把它注册成后台守护进程:
openclaw onboard --install-daemon向导会依次问你几个问题。第一个是选择 AI Provider,这里选兼容 OpenAI 格式的选项(通常显示为OpenAI Compatible或Custom OpenAI Endpoint)。然后填两个关键值:
| 配置项 | 填写内容 |
|---|---|
| Base URL | https://taotoken.net/api |
| API Key | 你在 TaoToken 控制台生成的 Key |
| Model | 按需填,比如claude-sonnet-4-20250514或你账号下可用的模型名 |
第二个问题是连接通道(Channels),问你要不要接 Telegram、Discord 之类的聊天软件。第一次部署建议直接选 Skip,先把 Web 控制台跑通,通道后面随时能加。向导跑完会生成一个本地链接,形如http://127.0.0.1:18789/?token=xxxxx,先把这个链接记下来。
3.3 配置文件骨架
向导生成的配置落在~/.openclaw/config.yaml。如果你想手动核对或调整,可以参考这个骨架:
gateway: host: 127.0.0.1 port: 18789 providers: - name: taotoken type: openai-compatible base_url: https://taotoken.net/api api_key: sk-你的TaoToken密钥 models: - claude-sonnet-4-20250514 - gpt-4o channels: [] daemon: enabled: true log_level: info改完配置后重启网关让改动生效:
openclaw gateway restart注意api_key这一行,别把 Key 提交到任何公开仓库。本地文件权限建议设成chmod 600 ~/.openclaw/config.yaml。
4. 验证请求:从网关到模型对话
4.1 启动并检查网关状态
配置就绪后,确认守护进程在跑:
openclaw gateway status正常输出会显示running和监听的端口。如果显示stopped,用openclaw gateway start拉起来。然后检查端口监听:
ss -tlnp | grep 18789能看到127.0.0.1:18789处于 LISTEN 状态,说明网关已经就位。
4.2 用 curl 验证 TaoToken 通道
在 WSL2 里直接对 TaoToken 端点发一个最小请求,确认 Key 和网络都通:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "回复两个字:通了"}], "max_tokens": 20 }'返回 JSON 里choices[0].message.content有内容,就说明统一 Key 通道工作正常。这一步单独验证的好处是:如果后面 OpenClaw 里对话失败,你能快速判断是网关配置问题还是通道本身问题。
4.3 通过 OpenClaw 发起对话
网关和通道都确认后,用 OpenClaw 自己的命令走一遍完整链路:
openclaw chat --provider taotoken --model claude-sonnet-4-20250514 --message "你好,做个自我介绍"终端里能流式输出模型回复,说明从 OpenClaw → TaoToken → 模型 → 返回的整条链路打通了。这时候再打开浏览器,访问向导生成的那个http://127.0.0.1:18789/?token=xxxxx链接,就能进 Web 控制台做可视化对话。
5. 本篇常见错排查
5.1 卡在 Pairing required 进不去控制台
这是最高频的坑。浏览器打开链接后一直显示等待配对,原因是网关里有一个挂起的配对文件没清掉。在 Ubuntu 终端依次执行:
openclaw gateway stop rm ~/.openclaw/gateway/pending.json openclaw gateway restart然后重新打开那个带 token 的链接。如果还不行,检查链接里的 token 是否和~/.openclaw/config.yaml里的一致,向导重新生成过 token 的话旧链接会失效。
5.2 WSL 里访问不到 Windows 宿主的本地模型
如果你在 Windows 上跑 Ollama 或 LM Studio,想在 OpenClaw 里调用它,填http://localhost:11434/v1是不通的。WSL2 有独立的虚拟网络,localhost 指向的是 WSL 自己。你需要填 Windows 宿主在 WSL 网络里的 IP。在 WSL 终端执行:
ip route show | grep -i default | awk '{ print $3 }'输出的那个 IP(通常是172.x.x.x)就是宿主机地址,把它替换到 base_url 里,端口保持 Ollama 的 11434。
5.3 WSL2 内存占用过高导致系统卡顿
WSL2 默认会吃掉最多一半的物理内存。如果你机器是 16GB,跑几个模型请求后 Windows 这边可能就开始卡。在 Windows 用户目录下新建C:\Users\<你的用户名>\.wslconfig,写入:
[wsl2] memory=8GB processors=4 swap=2GB保存后在 PowerShell 执行wsl --shutdown重启 WSL,资源限制就生效了。内存值按你机器实际情况调,8GB 对大多数本地开发够用。
5.4 安装脚本报 Node 版本不兼容
OpenClaw 对 Node.js 版本有最低要求。如果openclaw --version报错提示 Node 太旧,用 nvm 装一个新版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20然后重新跑一遍 OpenClaw 安装脚本。
6. 后续接入与长期使用建议
控制台跑通之后,你可以回到配置向导把 Channels 补上,接 Telegram 或 Discord 做日常入口。如果打算长期用 OpenClaw 做编码辅助或者跑 Agent 任务,建议关注 TaoToken 的 Coding Plan,它在长会话和高频调用场景下额度更划算,配置方式和你现在填的 base_url、Key 完全一致,换过去只需要在控制台调整套餐。
接入文档在https://taotoken.net/doc,里面有各语言 SDK 的调用示例和模型列表。模型对话的在线体验入口在https://taotoken.net/model-chat,想快速对比不同模型输出效果时可以直接在网页里试。Key 的生成和管理统一在https://taotoken.net/api-keys,建议给 OpenClaw 单独建一个 Key,方便按项目追踪用量。
最后提醒一个实操细节:WSL2 的 IP 在每次重启后可能变化,如果你在配置里写死了宿主机 IP,重启后记得重新确认。更稳的做法是把常用端点写成环境变量,在~/.bashrc里 export,配置文件里用${TAOTOKEN_BASE_URL}这种形式引用,换环境时只改一处。