news 2026/10/11 2:02:56

本地安装部署openclaw(最新版):从WSL到npm的完整配置大纲

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
本地安装部署openclaw(最新版):从WSL到npm的完整配置大纲

1. Windows 下用 WSL 跑 openclaw 最新版,先把环境这关过了

openclaw 是一个可以本地部署、通过网关暴露 Web 控制台与 Agent 能力的开源项目,适合想把大模型能力接到自己机器上、又不想依赖云端托管的人。它支持自定义模型提供商,也就是说你可以把请求指向任意兼容 OpenAI 协议的 endpoint。这篇要解决的就是:在 Windows 上不装双系统、不折腾虚拟机,直接用 WSL2 + Ubuntu 把 openclaw 最新版跑起来,并且把模型通道切到 TaoToken 统一入口做连通性验证。

很多人第一次装会卡在三个地方:一是 WSL 装完默认落在 C 盘,磁盘一紧张就难受;二是 Ubuntu 自带的 Node 版本太老,npm 装 openclaw 直接报 engine 不匹配;三是装完之后不知道 endpoint 该填什么,本地模型和远程通道混在一起。下面按「装 WSL → 换目录 → 装 Node 22 → 装 openclaw → 改配置 → 验证请求」的顺序走一遍,命令都能直接复制。

适合谁看:手上是 Windows 10/11、想本地跑 Agent 网关、对 Linux 命令不算熟但能照着敲的开发者。整个过程不需要额外硬件,一台普通笔记本就够。

2. WSL2 初始化与 Ubuntu 子系统安装避坑

2.1 开启 WSL2 并安装 Ubuntu

在 Windows 搜索框输入 powershell,右键以管理员身份运行,执行:

wsl --install

这条命令会一次性开启虚拟机平台、安装 WSL2 内核并拉取默认发行版。执行完重启电脑,这一步别省,否则内核组件没加载,后面wsl -l -v会报错。

重启后查看可用的发行版列表:

wsl.exe --list --online

然后安装 Ubuntu:

wsl.exe --install Ubuntu

首次进入会让你创建默认用户和密码,这个用户就是后面所有操作的账号,别用 root 直接跑日常命令。进去之后先更新依赖:

sudo apt update && sudo apt upgrade -y

2.2 把子系统从 C 盘迁到其他盘

默认安装位置在 C 盘,openclaw 加上 Node 依赖体积不小,建议迁走。先看状态:

wsl -l -v

如果显示 Running,先停掉:

wsl --shutdown

导出镜像(假设目标盘是 F 盘,目录自己建好):

wsl --export Ubuntu F:\wsl\ubuntu.tar

注销原系统:

wsl --unregister Ubuntu

再确认一次状态,列表里应该已经没有 Ubuntu 了。然后导入到新位置:

wsl --import Ubuntu F:\wsl F:\wsl\ubuntu.tar

导入后默认登录用户会变成 root,需要手动切回你创建的用户,或者改/etc/wsl.conf里的default字段。这一步踩过坑的人不少,登录进去发现是 root 别慌,su 你的用户名就能切。

2.3 安装 Node.js 22 与 npm

openclaw 最新版要求 Node 22 以上,Ubuntu 仓库自带的版本通常偏低,用 NodeSource 源装:

sudo apt install -y curl curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs

验证版本:

node -v npm -v

正常应该输出 v22.x 和对应的 npm 版本。如果node -v还是老版本,说明 PATH 里有旧 Node,用which node查一下路径,把旧的删掉或调整优先级。多版本共存时可以用 nvm 管理,但这里单版本够用,不额外引入复杂度。

3. openclaw 安装与 openclaw.json 配置改到 TaoToken 通道

3.1 用 npm 全局安装 openclaw

在 WSL 终端里执行:

sudo npm install -g openclaw@latest

装完检查:

openclaw --help

能打印出命令列表就说明二进制已经进 PATH 了。如果提示 command not found,多半是 npm 全局 bin 目录没进 PATH,用npm config get prefix看路径,再把它加到~/.bashrc里。

3.2 运行引导程序安装守护进程

openclaw onboard --install-daemon

引导过程会让你选模型提供商。这里选自定义(custom),因为我们要把 endpoint 指向 TaoToken 统一通道。需要填三样东西:Base URL、API Key、Model ID。TaoToken 的 API 地址是https://taotoken.net/api,Key 在控制台的 API Keys 页面生成。

引导完成后,配置文件落在~/.openclaw/openclaw.json。用 vim 打开:

vim ~/.openclaw/openclaw.json

把models.providers部分改成指向 TaoToken 的配置。下面是一个可复制的片段,路径和字段名与官方结构一致:

{ "models": { "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api/v1", "apiKey": "sk-你的TaoToken密钥", "api": "openai-completions", "models": [ { "id": "claude-sonnet-4-5", "name": "Claude Sonnet 4.5", "reasoning": false, "input": ["text"], "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }, "contextWindow": 200000, "maxTokens": 8192 } ] } } }, "agents": { "defaults": { "model": { "primary": "taotoken/claude-sonnet-4-5" }, "models": { "taotoken/claude-sonnet-4-5": { "alias": "sonnet" } } } } }

注意baseUrl后面要带/v1,这是 OpenAI 兼容协议的标准路径。api字段填openai-completions,openclaw 会按这个协议发请求。Model ID 要和 TaoToken 支持的模型名对齐,写错了会在响应里报 model not found。

3.3 网关 token 与本地访问

配置改完,获取网关鉴权 token:

openclaw config get gateway.auth.token

把返回的 token 拼到本地地址后面:

http://127.0.0.1:18789/#token=你的token

浏览器打开这个地址就能进控制台。如果端口被占用,改gateway.port字段换个端口,重启守护进程生效。

4. 验证请求:确认 openclaw 真的连上了 TaoToken

4.1 用 curl 直接打通道

在改 openclaw 配置之前,先用 curl 确认 TaoToken 通道本身是通的:

curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "回复ok两个字"}], "max_tokens": 20 }'

返回 JSON 里choices[0].message.content有内容,说明 Key 和 endpoint 都没问题。这一步能排除掉大部分「配置写了但连不上」的困惑。

4.2 在 openclaw 里发一条测试消息

回到控制台,在对话输入框发一句「你好,报一下你用的模型」。如果配置正确,回复会正常返回。同时可以在 WSL 里看守护进程日志:

openclaw logs --follow

日志里会打印出请求的 provider 和 model,确认走的是taotoken而不是默认的本地 provider。如果日志里出现local proxy failed或reading choices之类的字样,说明请求发出去了但响应解析失败,往下看排错部分。

4.3 验证成功的判断标准

三个信号同时满足就算通了:curl 能拿到 JSON 响应;控制台对话有正常回复;日志里 provider 显示为 taotoken。缺一个就按下一节的对照表排查。

5. 常见报错排查:401、local proxy failed、reading choices

5.1 401 Unauthorized

最常见的原因是 Key 没填对或者带了多余空格。检查openclaw.json里apiKey字段,确认是sk-开头、没有换行。另外注意 TaoToken 的 Key 和网关 token 是两回事,别把gateway.auth.token填到 provider 的 apiKey 里。改完配置要重启守护进程:

openclaw daemon restart

5.2 local proxy failed

这个报错通常出现在 openclaw 尝试走本地代理但代理没起来的时候。如果你配置的是远程 endpoint,检查baseUrl是不是写成了http://127.0.0.1:xxxx这种本地地址。指向 TaoToken 时应该是https://taotoken.net/api/v1。另外 WSL 里的 DNS 偶尔会抽风,ping taotoken.net不通就先sudo apt install -y resolvconf修一下解析。

5.3 reading choices 解析失败

日志里出现reading choices一般是响应体结构和预期不符。可能是api字段填错了,比如填成了anthropic-messages但 endpoint 返回的是 OpenAI 格式。确认api为openai-completions。还有一种情况是模型 ID 写错,服务端返回了错误对象而不是正常的 choices 数组,把 Model ID 改成 TaoToken 文档里列出的名称即可。

5.4 OAuth 相关报错

如果你之前配过 qwen-portal 这类 OAuth 提供商,auth.profiles里会残留 oauth 模式。切到 TaoToken 的 API Key 模式后,把不需要的 profile 删掉,避免 openclaw 在启动时尝试刷新过期的 OAuth token 而卡住。配置里只保留taotoken一个 provider 最省心。

5.5 Node 版本不匹配

npm install -g openclaw@latest报 engine 错误,说明 Node 低于 22。回到 2.3 节重装 Node,或者用nvm install 22 && nvm use 22切换。装完node -v确认是 v22 再重试。

6. 把通道固定下来:后续接入与长期使用建议

配置跑通之后,建议把openclaw.json备份一份,改坏了能快速回滚。日常使用中如果要在多个模型之间切换,可以在agents.defaults.models里加别名,比如给 sonnet 和 haiku 各配一个 alias,对话时用别名指定,不用每次改主模型。

需要长期跑 Agent 任务或者做编码辅助的,可以了解下 Coding Plan 这类按周期计费的方案,比单次调用更适合高频场景。模型对话入口适合临时验证某个模型的表现,API Keys 页面用来管理密钥和查看用量,接入文档里有各语言的调用示例。这几个入口配合起来,本地 openclaw 的通道就能稳定用下去。

最后提醒一句:WSL 的时钟偶尔会和宿主机不同步,导致 HTTPS 请求证书校验失败。遇到莫名其妙的 TLS 错误,先sudo hwclock -s同步一下时间再试。这个坑不常遇到,但遇到了很难查。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/11 1:59:42

UE5图片序列渲染变量拆解:从MRQ到Python自动化

简介:UE5图片序列渲染相关的控制台命令解析文档,面向需要平衡渲染画质与运行性能的开发者、美术与TA人员。文档系统梳理了十余项高频渲染设置,包括时间抗锯齿上采样、光线追踪环境遮挡、HDR可视化、帧率上限、实例化静态网格体剔除、色调映射…

作者头像 李华
网站建设 2026/10/11 1:58:34

C++C++写底层DLL易语言做界面

C铸魂,易语言塑形:跨语言协作的桌面应用开发范式在桌面应用开发领域,选择合适的工具组合往往比单一技术栈更为重要。其中,“C编写底层DLL,易语言构建用户界面”的模式,形成了一种独特的开发范式&#xff0c…

作者头像 李华
网站建设 2026/10/11 1:58:33

读懂58页智慧工厂方案:从架构到落地的关键拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/11 1:58:31

C盘爆红别乱删!用Codex排查AppData隐藏空间

1. 从一次C盘告急说起:为什么“删文件”是最差的选择那天下午,我正在赶一个跨平台项目的构建包,IDE突然弹窗提示磁盘空间不足,紧接着整个系统开始卡顿,连保存代码都要等上好几秒。切到资源管理器一看,C盘那…

作者头像 李华