1. 为什么 Windows 上的 OpenClaw 需要「每日升级」这套流程OpenClaw 是一个跑在本地的 AI 助理框架它把模型调用、工具执行、会话记忆这些能力打包成一个常驻服务你在 Windows 上装好之后它就像一个随时待命的小助手。问题是它迭代很快官方仓库几乎每天都有提交模型侧的能力也在变。如果你只是装完就不管过两周再回来会发现新工具用不了、旧配置报错、某些接口签名对不上。真正让人头疼的不是「升级」这个动作本身而是升级之后的两件事一是多个工具各自要填 Key升级后配置文件被覆盖你得挨个重新找二是 OpenClaw 依赖 Node 22 以上、pnpm 构建、gateway 常驻Windows 下路径和权限又和 Linux 不一样稍不注意就卡在pnpm build或者 daemon 起不来。我试过最省事的做法是把所有模型的访问入口收敛到一个统一的 Key 和 API 通道上这样无论 OpenClaw 怎么升级、配置怎么回填我只需要维护一份凭证。这篇就按这个思路把 Windows 下 OpenClaw 的每日升级流程拆成可复制的步骤包括config.toml和settings.json的骨架、升级后怎么回填、以及怎么验证升级真的生效了。适合谁看已经在 Windows 上跑 OpenClaw、想让它保持最新、又不想每次升级都重新配一遍 Key 的人。如果你还没装也可以跟着走步骤是完整的。2. 前置准备用 TaoToken 统一 Key 和 API 通道在动手升级之前先把「凭证」这件事解决掉。OpenClaw 在运行时会读取模型配置如果你同时用多个模型或工具每个都填一套 Key升级后配置一旦被重置你就得重新翻一遍。统一到一个入口之后回填只需要改一处。TaoToken 在这里扮演的角色是统一的 API 通道你拿到一个 Key配置一个 base URLOpenClaw 里所有需要调模型的地方都指向它。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 这个不加 UTM直接填进配置里。具体操作上你需要先拿到 Key。进入控制台创建 API Key页面在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 的管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。创建好之后复制出来后面填进config.toml。注意Key 只显示一次复制后先存到你的密码管理器或者临时记事本里别直接贴在聊天窗口。如果你后面要长期跑编码类任务或者 Agent 工作流可以了解下 Coding Plan入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。想先验证模型通不通用模型对话页 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条测试消息最快。接入细节和参数说明在文档里 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 遇到字段对不上时优先查这里。这一步的目标只有一个你手上有一个 Key、一个 base URL接下来所有配置都围绕这两个值展开。3. 可复制配置config.toml 与 settings.json 骨架OpenClaw 在 Windows 下的配置分两层config.toml管服务级参数端口、日志、模型通道settings.json管运行时偏好默认模型、工具开关、会话行为。升级时官方可能更新默认模板所以你要做的是把自己的关键字段抽出来升级后重新合并回去。先看config.toml的骨架。放在项目根目录或者%USERPROFILE%\.openclaw\下取决于你的安装方式# config.toml [server] host 127.0.0.1 port 8787 log_level info [model] # 统一走 TaoToken 通道 provider openai-compatible base_url https://taotoken.net/api api_key sk-你的Key default_model claude-sonnet-4-5 timeout_seconds 120 [gateway] watch true auto_reload true [tools] enable_shell true enable_file true workspace C:/Users/你的用户名/openclaw-workspace几个关键点base_url填https://taotoken.net/api不要带结尾斜杠provider用openai-compatible是因为大多数兼容接口都按这个协议走default_model按你实际要用的模型名填不确定就先在模型对话页试一条。再看settings.json它通常在%USERPROFILE%\.openclaw\settings.json{ defaultModel: claude-sonnet-4-5, modelOverrides: { baseUrl: https://taotoken.net/api, apiKeyEnv: TAOTOKEN_API_KEY }, tools: { shell: { enabled: true, timeoutMs: 30000 }, file: { enabled: true, rootDir: C:/Users/你的用户名/openclaw-workspace } }, session: { persist: true, maxTurns: 50 }, upgrade: { checkOnStart: true, channel: stable } }这里我把 Key 换成了环境变量TAOTOKEN_API_KEY好处是配置文件里不出现明文升级覆盖也不怕泄露。Windows 下设置环境变量用 PowerShell[Environment]::SetEnvironmentVariable(TAOTOKEN_API_KEY, sk-你的Key, User)设置完要重开一个终端才生效。这样settings.json里只留apiKeyEnv指向变量名升级后即使文件被重置你只要把这段 JSON 合并回去就行。提示把这两个文件的「你的版本」单独备份一份比如config.local.toml和settings.local.json升级脚本里做合并而不是每次手改。4. 每日升级流程从拉取到回填的完整命令升级的核心逻辑是拉官方最新代码 → 装依赖 → 构建 → 回填你的配置 → 重启 gateway。下面按顺序给命令全部在 PowerShell 里执行。第一步进入项目目录并确认 Node 版本。OpenClaw 要求 Node 22cd C:\Users\你的用户名\openclaw node -v # 期望输出 v22.x.x 或更高如果版本不对用 nvm-windows 切换nvm use 22第二步拉取上游更新。如果你是自己 fork 的先合并上游如果是直接 clone 官方仓库直接 pullgit fetch upstream git checkout main git merge upstream/main # 或者直接git pull origin main第三步安装依赖并构建。这一步在 Windows 下最容易出问题建议按顺序来pnpm install pnpm ui:build pnpm buildpnpm ui:build首次运行会自动装 UI 依赖耐心等。如果卡住先清一下缓存再重试pnpm store prune第四步回填配置。升级后官方模板可能覆盖了你的config.toml把备份的本地版本合并回去Copy-Item .\config.local.toml .\config.toml -Force Copy-Item $env:USERPROFILE\.openclaw\settings.local.json $env:USERPROFILE\.openclaw\settings.json -Force第五步重启 gateway。如果你之前用 daemon 方式装的先停再起pnpm openclaw daemon stop pnpm openclaw daemon start开发调试场景可以直接用 watch 模式改 TS 自动重载pnpm gateway:watch这套流程跑顺之后你可以写成一个upgrade.ps1脚本每天定时任务触发或者手动双击运行。关键是第四步的合并逻辑要固定别每次靠记忆改。5. 验证升级是否生效具体命令与检查步骤升级完不能只看「命令没报错」就完事要确认三件事版本号变了、模型通道通了、配置没丢。先看版本pnpm openclaw --version对比官方仓库最新 tag确认是新的。然后检查 gateway 是否在跑Invoke-RestMethod http://127.0.0.1:8787/health期望返回类似{status:ok,version:x.y.z}。如果连不上说明 daemon 没起来回去看日志Get-Content $env:USERPROFILE\.openclaw\logs\gateway.log -Tail 50接着验证模型通道。用 curl 直接打一次 TaoToken 的接口确认 Key 和 base URL 没问题curl.exe https://taotoken.net/api/v1/models -H Authorization: Bearer $env:TAOTOKEN_API_KEY返回模型列表就说明通道是通的。如果返回 401检查环境变量有没有在当前终端生效返回 404检查 base URL 是不是多写了路径。最后在 OpenClaw 里发一条真实请求确认端到端可用pnpm openclaw chat 用一句话说明你现在用的模型版本能正常回复且回复内容符合你配置的default_model就说明升级后配置回填成功。如果回复报模型不存在多半是default_model名字写错了去模型对话页核对一下准确的模型标识。注意验证时如果发现配置被重置先别急着改对比一下config.toml和你的备份看是哪个字段被官方模板覆盖了把差异记下来下次合并脚本里补上。6. 本篇常见错排查升级过程中最容易踩的坑集中在依赖、路径和配置三块下面按报错现象给排查方向。pnpm install报 EPERM 或权限错误Windows 下常见于文件被占用。先关掉正在跑的 gateway 和编辑器再删node_modules重装Remove-Item -Recurse -Force node_modules pnpm installpnpm build卡在 UI 构建多半是缓存问题清 pnpm store 后重试或者单独跑pnpm ui:build看具体报错。gateway 启动后立刻退出看日志里有没有EADDRINUSE说明 8787 端口被占。换个端口或者杀掉占用进程netstat -ano | findstr :8787 taskkill /PID 占用进程号 /F模型请求返回 401Key 没生效。确认环境变量在当前终端可见echo $env:TAOTOKEN_API_KEY为空就重开终端或者临时在当前会话设置一次。升级后工具全没了settings.json被官方模板覆盖。把备份合并回去重点检查tools段。default_model报不存在模型名写错或该模型当前不可用。去模型对话页确认准确名称再改config.toml和settings.json两处保持一致。排查时记住一个原则先确认「通道通不通」curl 打接口再确认「配置对不对」对比备份最后才怀疑代码。大部分问题出在前两步。7. 把升级变成日常下一步怎么做这套流程跑通之后你可以把它固化成每天开机自动执行的任务。Windows 任务计划程序里建一个触发器指向你的upgrade.ps1日志输出到固定文件出问题翻日志就行。如果你还在手动填 Key 的阶段建议先把统一通道配好接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content Key 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。长期跑编码和 Agent 任务的话Coding Plan 入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 可以先了解再决定。最后留一个我自己的习惯每次升级前先git tag打一个本地标记万一新版本有问题回滚就是一条命令的事。升级不是目的让助理稳定可用才是。
