1. 为什么要在 Windows 上折腾 OpenClaw 命令行升级
OpenClaw 是一个跑在本地的命令行工具,常被用来做模型调用、Agent 编排和自动化脚本。它本身通过 npm 分发,所以升级这件事本质上就是「把全局安装的包换成新版本,再让后台网关重新加载」。听起来简单,但 Windows 上真正动手时会遇到几个坑:网关进程没停干净导致文件占用、npm 全局目录权限不足、镜像源没配导致下载卡住、升级完--version还是旧号。
这篇就聚焦一件事:在 Windows 的 PowerShell 里,把 OpenClaw 从旧版本升到最新版,并且用可复现的步骤验证升级真的生效。同时给出 TaoToken 统一 Key/API 通道的config.toml与settings.json配置骨架,让升级后的 OpenClaw 能直接接上模型通道,而不是升完发现调用报错。
适合谁看:已经在 Windows 上装了 OpenClaw、看到过 “Update available” 提示、想用命令行而不是重装来解决的人。全程用 PowerShell,不需要额外装别的东西,命令可以直接复制。
我试过在没停网关的情况下直接npm install -g,结果新版本文件写不进去,--version纹丝不动,白等几分钟。所以下面第一步一定是停服务,这个顺序别调。
2. 升级前把 TaoToken 通道准备好
OpenClaw 升级后要能正常调用模型,得有一个稳定的 API 入口。TaoToken 提供统一的 Key 和 API 通道,把不同模型的调用收敛到一个地址上,配置一次就能在 OpenClaw 里切换使用。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api 。
你需要提前拿到两样东西:一个是 API Key,在控制台的 API Keys 页面创建,地址是 https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ;另一个是确认要用的模型名,可以在模型对话页面先试跑一下,地址是 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite 。
拿到 Key 之后先别急着写进配置,建议在 PowerShell 里用环境变量存一份,避免明文散落在多个文件里:
$env:TAOTOKEN_API_KEY = "sk-你的Key" [Environment]::SetEnvironmentVariable("TAOTOKEN_API_KEY", $env:TAOTOKEN_API_KEY, "User")第二行是写入用户级环境变量,重开终端也还在。这样后面config.toml和settings.json里可以引用同一个来源,升级换版本时不用重复填 Key。
注意:Key 只放在本地环境变量或配置文件里,不要提交到 Git,也不要贴到聊天窗口。控制台里可以随时吊销重建。
3. 可复制的升级命令与配置骨架
3.1 停网关、升级、重启的完整流程
先确认当前版本,留个对照:
openclaw --version然后按顺序执行。第一步停网关服务,这一步在管理员 PowerShell 里做:
openclaw gateway stop第二步升级,优先用内置命令:
openclaw update如果内置命令报错或者卡住,改用 npm 强制重装。这里指定了国内镜像源,并加上--unsafe-perm和--ignore-scripts,避免 Windows 上常见的权限和脚本执行问题:
npm install -g openclaw@latest --registry=https://registry.npmmirror.com --unsafe-perm --ignore-scripts第三步重启网关并验证:
openclaw gateway start openclaw --version版本号变了,并且启动时不再出现 “Update available”,就说明升级到位了。
3.2 config.toml 配置骨架
OpenClaw 的主配置一般放在用户目录下的.openclaw/config.toml。下面是一个接 TaoToken 通道的骨架,把base_url指向统一 API 地址,Key 从环境变量读取:
# ~/.openclaw/config.toml [gateway] host = "127.0.0.1" port = 8787 auto_start = true [provider.taotoken] type = "openai-compatible" base_url = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" default_model = "claude-sonnet-4-5" [logging] level = "info"api_key_env写的是环境变量名,不是 Key 本身,这样配置文件可以安全地备份或同步。default_model换成你在模型对话页面确认可用的名字。
3.3 settings.json 配置骨架
有些 OpenClaw 版本或插件会读settings.json,放在同一目录下。它和config.toml分工不同:config.toml管网关和 provider,settings.json管运行时行为和默认参数。骨架如下:
{ "provider": "taotoken", "apiBase": "https://taotoken.net/api", "apiKeyEnv": "TAOTOKEN_API_KEY", "model": "claude-sonnet-4-5", "timeoutMs": 60000, "retry": { "maxAttempts": 3, "backoffMs": 800 }, "gateway": { "autoRestart": true } }两个文件里的base_url/apiBase和模型名保持一致,避免出现「网关连上了但调用走错 provider」的情况。
4. 验证升级与通道是否真的通了
升级完只看版本号还不够,得确认网关能起来、通道能调通。先看网关状态:
openclaw gateway status正常会返回 running 和监听端口。然后发一个最小请求,验证 TaoToken 通道:
openclaw run --prompt "回复 ok" --model claude-sonnet-4-5如果返回内容里带ok,说明 Key、base_url、模型名三者都对上了。再检查一次版本和更新提示:
openclaw --version openclaw check-updatecheck-update返回已是最新,或者没有可用更新,就闭环了。整个过程的结果可以对照下面这张表:
| 检查项 | 命令 | 期望结果 |
|---|---|---|
| 版本号 | openclaw --version | 显示新版本号 |
| 网关状态 | openclaw gateway status | running,端口正常 |
| 通道调用 | openclaw run --prompt "回复 ok" | 返回含 ok 的内容 |
| 更新提示 | openclaw check-update | 无可用更新 |
5. 本篇常见错误排查
升级过程中最容易卡在几个固定位置,逐个说清楚。
报错一:openclaw update提示文件被占用或 EPERM。这是网关没停干净。先openclaw gateway stop,再用任务管理器确认没有残留的 node 进程,然后重试。实在不行重启一次终端再执行。
报错二:npm 安装卡在下载或超时。检查是否带了--registry=https://registry.npmmirror.com。如果公司网络有代理,需要单独配置 npm 的 proxy,但不要用任何绕过网络管理的方式,按所在环境的合规要求处理。
报错三:升级后--version还是旧号。多半是全局安装路径和当前 PATH 里的不是同一个。用下面命令看实际路径:
npm root -g where.exe openclaw两个路径对不上,就调整 PATH 或重装到正确位置。
报错四:网关起来了但调用返回 401。Key 没读到。确认环境变量名和配置里写的一致:
echo $env:TAOTOKEN_API_KEY为空就重新设置,并重开终端让变量生效。
报错五:调用返回模型不存在。default_model写错了。去模型对话页面确认可用模型名,再改config.toml和settings.json。
报错六:settings.json改了不生效。检查 JSON 是否有语法错误,比如多了逗号。可以用 PowerShell 校验:
Get-Content ~/.openclaw/settings.json | ConvertFrom-Json能解析通过才说明格式没问题。
6. 升级之后怎么继续用
升级本身只是把版本换新,真正影响日常使用的是通道配置。如果你只是偶尔跑一下模型,把config.toml和settings.json配好就够了,Key 在 API Keys 页面管理,地址是 https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ,接入细节可以对照文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。
如果你打算长期用 OpenClaw 做编码或 Agent 任务,频繁升级和调用会比较多,可以看一下 Coding Plan,地址是 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,它更适合这种持续使用的场景。想先验证模型效果,直接在模型对话页面跑几条 prompt 就行,地址是 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite 。
最后留一个实用习惯:每次升级前把openclaw --version的输出记一下,升级后再记一次,两次对照比只看「有没有报错」可靠得多。配置文件改完先跑openclaw run --prompt "回复 ok"这种最小请求,能省掉很多「以为配好了其实没通」的时间。