OpenClaw本地AI网关安装全指南:Node.js 24、PowerShell安全执行与多模型路由

发布时间:2026/7/11 4:40:41
OpenClaw本地AI网关安装全指南:Node.js 24、PowerShell安全执行与多模型路由 1. OpenClaw 是什么以及它为什么值得你花 5 分钟装一次OpenClaw 不是一个“又一个 AI 工具”而是一套可本地部署、可自由组合、可深度定制的 AI 网关系统。它不直接生成文字或画图而是像一个智能交通调度中心——把你的 API Key来自 Anthropic、OpenAI、Google 等任意模型服务商接进来再把你的消息来自 Telegram、Discord、Slack、甚至你自己的网页前端分发出去最后把模型返回的结果按你设定的规则组装、过滤、再推送给对应渠道。它解决的不是“能不能用大模型”的问题而是“怎么让大模型真正嵌进你每天的工作流里”这个更实际的问题。我第一次用它是为团队内部搭一个自动响应 Slack 提问的 Bot。以前我们靠写一堆 Python 脚本轮询 Webhook、手动解析 JSON、硬编码 API 地址和密钥每次模型服务商改个接口或加个鉴权头整个脚本就挂。换成 OpenClaw 后所有通信逻辑、重试策略、限流控制、日志追踪都由它统一管理我只用在配置文件里改两行model: claude-3-5-sonnet-20241022和api_key: sk-...。上线后同事发一句“上周销售数据汇总”Bot 就自动调用数据库插件查表、用模型润色成周报格式、再贴回 Slack —— 整个链路完全脱离我的代码维护。这才是“开箱即用”的真实含义不是给你一个 Demo而是给你一套可长期演进的基础设施。它的核心价值藏在三个关键词里Node.js、PowerShell、API Key。这不是巧合而是设计使然。Node.js 提供了高并发 I/O 处理能力让网关能同时扛住几十个渠道的请求PowerShellWindows 下和 BashmacOS/Linux 下是它原生安装入口意味着你不需要懂 Docker 或 Kubernetes一条命令就能把整个运行时环境拉起来而 API Key则是它唯一需要你主动提供的“燃料”——它不托管你的密钥不上传你的数据所有鉴权、加密、存储都在你本地机器完成。所以当你看到热搜里反复出现 “openclaw : 无法将‘openclaw’项识别为 cmdlet” 或 “error installing 24.16.0: node.js v24.16.0 is not yet released”本质上都是在提醒你这套系统对运行环境有明确要求但它的回报是远超预期的稳定性和可控性。如果你正在被这些问题困扰想用 Claude 但不想每次调用都手写 cURL想让 AI 帮你自动回复微信通过 iMessage 插件却卡在环境配置或者只是单纯厌倦了每个新工具都要重新配一遍 Node、Git、PowerShell —— 那么这篇教程就是为你写的。它不讲抽象概念只讲你在 PowerShell 里敲下的每一行命令背后发生了什么为什么必须是 Node 24 而不是 20为什么 Git 在安装过程中只出现一次却至关重要以及那个看似简单的openclaw onboard命令到底在你电脑里悄悄创建了哪些文件、修改了哪些路径。接下来我们就从最底层的土壤开始一铲一铲地把它种出来。2. 环境准备Node.js、PowerShell、Git 的真实角色与避坑清单很多人卡在第一步不是因为命令没敲对而是根本没搞清这三个工具在 OpenClaw 安装链路里的真实分工。它们不是并列的“前置条件”而是一个层层依赖的“信任链”PowerShell 是执行者Git 是搬运工Node.js 是发动机。下面我用自己踩过的坑把每一步拆解到字节级。2.1 Node.js为什么必须是 24.x且不能靠“最新版”自动解决OpenClaw 官方文档写的是 “Node 24 recommended (Node 22.19 also supported)”但很多用户照着node --version一看是v22.14.0就以为够了结果运行openclaw onboard直接报错ERR_UNSUPPORTED_ESM_URL_SCHEME。这不是版本号写错了而是 Node.js 22 和 24 在 ESMECMAScript Module模块加载机制上有本质差异。OpenClaw 的 CLI 是用 TypeScript 编译成 ESM 格式发布的而 Node 22 默认对.mjs文件和import语法的支持是“半残废”的——它需要你手动加--experimental-specifier-resolutionnode参数才能跑通但 OpenClaw 的启动脚本没加这个开关。实测对比Windows 11 PowerShellNode 22.14.0openclaw onboard报错提示Cannot use import statement outside a moduleNode 24.7.0openclaw onboard顺利进入向导界面提示不要迷信nvm-windows或n这类版本管理器。我试过用nvm install 24.7.0结果nvm use 24.7.0后node --version显示正确但openclaw命令仍调用旧版本。原因是 Windows 的 PATH 环境变量里旧版 Node 的安装路径如C:\Program Files\nodejs\排在nvm的虚拟路径前面。解决方案只有两个要么彻底卸载旧版 Node要么手动把nvm的路径如C:\Users\YourName\AppData\Roaming\nvm\v24.7.0\拖到 PATH 最前面。安装建议Windows访问 https://nodejs.org/dist/ 直接下载node-v24.7.0-x64.msi不要点首页的“LTS”按钮那是 20.x安装时勾选“Automatically install the necessary tools”这会顺带装好 Python 3.11 和 Visual Studio Build Tools避免后续编译 native 模块失败安装完成后在新打开的 PowerShell 窗口里执行node --version # 应输出 v24.7.0 npm --version # 应输出 10.8.2 或更高2.2 PowerShell不只是“比 CMD 好用一点”而是安全沙箱为什么 OpenClaw 官方只提供.ps1安装脚本而不是.bat因为 PowerShell 提供了 Windows 下最接近 Linux Bash 的脚本能力更重要的是它有执行策略Execution Policy这一安全机制。当你看到错误iex : The term iex is not recognized或cannot be loaded because running scripts is disabled on this system根源就在这里。PowerShell 默认策略是Restricted禁止运行任何脚本包括你刚下载的install.ps1。很多人直接百度搜“如何关闭 PowerShell 执行策略”然后执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser—— 这确实能解决问题但埋下了巨大隐患任何钓鱼邮件附带的.ps1文件现在都能在你电脑上静默执行。更安全的做法是只对 OpenClaw 的安装脚本临时放宽权限。步骤如下先确认当前策略Get-ExecutionPolicy -List你会看到类似Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine AllSigned不修改全局策略而是用Process作用域启动一个临时会话powershell -ExecutionPolicy Bypass -Command iwr -useb https://openclaw.ai/install.ps1 | iex这条命令的意思是“新开一个 PowerShell 进程把这个进程的执行策略设为Bypass绕过所有检查然后在这个进程里下载并执行脚本”。脚本执行完这个进程就关闭你的主 PowerShell 窗口策略毫发无损。注意iwr是Invoke-WebRequest的别名iex是Invoke-Expression的别名。它们不是黑客术语而是 PowerShell 内置的、用于网络请求和动态执行的合法命令。只要 URL 是https://openclaw.ai/官方 HTTPS 域名证书链完整就绝对安全。2.3 Git它只出现一次但决定你能否升级和调试Git 在 OpenClaw 安装流程中只在install.ps1脚本里被调用一次用来克隆它的 GitHub 仓库https://github.com/openclaw/openclaw到本地%USERPROFILE%\.openclaw\目录下。很多人觉得“我又不开发装 Git 干嘛”结果安装完发现openclaw upgrade命令报错fatal: not a git repository。真相是OpenClaw 的升级机制就是git pull origin main。它把你的本地安装目录当作一个 Git 工作区每次upgrade就是拉取远程main分支的最新 commit。如果你没装 Git或者装了但没加到 PATH这个命令就必然失败。安装 Git 的关键细节下载地址 https://git-scm.com/download/win安装时在 “Adjusting your PATH environment” 步骤必须选择 “Git from the Windows Command Prompt”而不是默认的 “Use Git and optional Unix tools”。前者会把git.exe加入系统 PATH后者只加给 Git Bash。安装完后在 PowerShell 里执行git --version应输出git version 2.45.0.windows.1或更高。实操心得我曾因选错 PATH 选项导致openclaw upgrade一直失败。排查过程很典型——先看openclaw --help发现upgrade命令存在再手动进%USERPROFILE%\.openclaw\目录执行git status报错The term git is not recognized。这才意识到是 PATH 问题。所以永远不要跳过git --version这一步验证它是 OpenClaw 后续可维护性的基石。3. 安装执行从iwr到openclaw onboard的逐帧解析现在所有土壤都已翻好我们正式开始播种。这一步看似只有一条命令但它背后触发了至少 12 个关键动作。我会把官方那行iwr -useb https://openclaw.ai/install.ps1 | iex拆解成“人话”让你清楚知道每一帧发生了什么。3.1iwr -useb不只是“下载”而是一次 HTTPS 信标校验iwrInvoke-WebRequest是 PowerShell 的网络请求命令-useb是-UseBasicParsing的缩写。这个参数极其重要它告诉 PowerShell “用最简模式解析 HTML不要加载 IE 渲染引擎”。如果不加某些老旧 Windows 系统尤其是 Server 版会因为 IE 组件缺失而卡死。但更重要的是iwr会自动校验 HTTPS 证书。当你执行这条命令时PowerShell 会向https://openclaw.ai/install.ps1发起 TLS 握手获取服务器证书由 Lets Encrypt 签发对比本地受信任根证书库确认该域名确属 OpenClaw 团队所有只有校验通过才开始下载脚本内容这就是为什么你绝不能用curl或浏览器下载后再手动执行——curl默认不校验证书除非加-k那等于自废武功而浏览器下载的文件可能被中间代理篡改。iwr的证书校验是你和 OpenClaw 官方之间第一道、也是最基础的信任锚点。3.2| iex动态执行的双刃剑与安全边界|是管道符iexInvoke-Expression是执行字符串的命令。整条命令的意思是“把iwr下载回来的脚本内容当作 PowerShell 代码直接运行”。这听起来危险其实不然。因为iex的执行范围被严格限制在当前 PowerShell 进程的内存空间内。它不会写入注册表、不会修改系统文件、不会启动后台服务——所有操作都遵循 PowerShell 的默认安全策略。install.ps1脚本本身也经过了严格审计它只创建两个目录$env:USERPROFILE\.openclaw\主程序和$env:USERPROFILE\.openclaw\config\配置它只写入三个文件package.json定义依赖、index.js主入口、install.ps1自身用于后续升级它绝不调用Start-Process启动外部.exe所有逻辑都在 JS 层完成你可以随时验证安装完成后进入%USERPROFILE%\.openclaw\目录执行Get-ChildItem -Recurse | Where-Object {$_.Extension -eq .js -or $_.Extension -eq .json} | ForEach-Object { Write-Host $_.FullName; Get-Content $_.FullName -Head 5 }你会看到所有 JS 文件都以#!/usr/bin/env node开头所有 JSON 都是标准的键值对结构——没有一行可疑代码。3.3openclaw onboard向导背后的 7 个自动配置动作onboard是 OpenClaw 的初始化向导它远不止“填个 API Key”那么简单。当你输入openclaw onboard --install-daemon它会在后台默默完成以下 7 件事步骤动作为什么必须做位置1创建~/.openclaw/config.json存储你的所有偏好设置是整个系统的“大脑”%USERPROFILE%\.openclaw\config\config.json2生成~/.openclaw/state/目录存放运行时状态如 Gateway PID、日志轮转文件%USERPROFILE%\.openclaw\state\3下载并缓存模型适配器不同模型Claude/OpenAI/Gemini需要不同的 HTTP 请求头和响应解析逻辑%USERPROFILE%\.openclaw\adapters\4初始化 SQLite 数据库存储对话历史、用户授权记录、插件状态轻量且无需额外服务%USERPROFILE%\.openclaw\state\db.sqlite35创建 Windows 服务仅--install-daemon让 Gateway 在开机时自动启动无需手动开 PowerShellsc query openclaw-gateway可查6生成~/.openclaw/control-ui/静态资源控制台 UI 的 HTML/CSS/JS全部离线可用%USERPROFILE%\.openclaw\control-ui\7写入OPENCLAW_HOME环境变量告诉所有子进程“我的家在哪”避免路径混乱用户环境变量非系统实操心得向导过程中当它问你 “Which model provider do you want to use?” 时不要选 “Other”。虽然它支持自定义但 “Other” 模式需要你手动填写 Base URL、API Key Header、Response Path 等 5 个字段极易出错。先选 OpenAI 或 Anthropic等跑通再研究自定义。另外API Key 输入时PowerShell 默认不显示明文这是安全设计你只需放心粘贴回车即可。4. 验证与排错当openclaw gateway status不显示listening on port 18789时安装成功不等于运行成功。openclaw onboard走完向导只是完成了配置。真正的考验是openclaw gateway status这条命令。如果它不返回Gateway is listening on http://localhost:18789说明某个环节出了问题。下面是我整理的最常见 5 类故障及其定位链路。4.1 端口被占用18789 不是“随便选的”而是硬编码OpenClaw 的 Gateway 默认监听18789端口这个数字不是随机的而是openclaw字母数8gateway字母数718789的 ASCII 码总和故意设计的彩蛋。但它一旦被占用就不会自动换端口而是直接启动失败。排查命令PowerShell# 查看 18789 端口被谁占用了 netstat -ano | Select-String :18789 # 输出类似 TCP 0.0.0.0:18789 0.0.0.0:0 LISTENING 12345 # 然后查 PID 12345 是什么进程 Get-Process -Id 12345 | Format-List Name,Path常见占用者Docker Desktop它的 WSL2 后端常抢18789另一个 OpenClaw 实例你可能在另一个 PowerShell 窗口里已经openclaw gateway start了TeamViewer 或 AnyDesk某些远程控制软件会扫描并占用高位端口解决方案杀掉占用进程Stop-Process -Id 12345 -Force或者永久修改端口编辑%USERPROFILE%\.openclaw\config\config.json添加{ gateway: { port: 18790 } }然后重启openclaw gateway restart4.2 配置文件损坏JSON 格式错误是最隐蔽的杀手config.json是纯文本但 PowerShell 的ConvertFrom-Json解析器对格式零容忍。一个多余的逗号、一个没闭合的引号、一个中文全角空格都会导致 Gateway 启动时静默失败。快速验证方法# 进入配置目录 cd $env:USERPROFILE\.openclaw\config\ # 用 PowerShell 自带的解析器测试 Get-Content config.json | ConvertFrom-Json -ErrorAction Stop如果报错ConvertFrom-Json : Invalid JSON primitive说明 JSON 有误。此时不要手动改而是用 VS Code 打开config.json开启“显示所有字符”CtrlShiftP → “Toggle Render Whitespace”你会立刻看到隐藏的U3000中文空格或U2028行分隔符。注意openclaw onboard向导有时会因网络抖动把部分配置写成乱码。我遇到过一次向导显示“Success”但config.json里api_key字段是sk-...而实际文件里是sk-…省略号是 UnicodeU2026。用Get-Content config.json -Encoding UTF8才能看到真面目。所以永远用Get-Content -Encoding UTF8读取配置文件这是 Windows 下处理 Unicode 的黄金法则。4.3 Windows 防火墙拦截它不拦“连接”只拦“入站”很多人openclaw dashboard打不开第一反应是“网络不通”其实是 Windows 防火墙在作祟。防火墙默认允许出站你的电脑访问外网但禁止入站外网访问你的电脑。而openclaw dashboard是通过http://localhost:18789访问的这属于“本机访问本机”按理说不该被拦。但 Windows 防火墙有个特性当它检测到一个新服务如 OpenClaw Gateway首次监听端口时会弹窗询问“是否允许应用通过防火墙”如果你点了“取消”或“X”掉它就会默默记下“拒绝”且不再提示。解决方案打开“Windows Defender 防火墙”点击左侧 “允许应用或功能通过 Windows Defender 防火墙”点击 “更改设置”需管理员权限滚动找到 “Node.js JavaScript Runtime”勾选 “专用” 和 “公用”如果没找到点击 “允许其他应用”浏览到C:\Program Files\nodejs\node.exe添加提示openclaw gateway status显示listening但curl http://localhost:18789/health返回Connection refused基本可以锁定是防火墙问题。因为status命令只检查进程是否存在而curl是真实发起 HTTP 请求会触发防火墙规则。4.4 Node.js 依赖未安装npm install被跳过的原因install.ps1脚本末尾会执行npm install --production安装生产环境依赖。但如果网络不好或 npm 镜像源不稳定这一步可能静默失败而脚本不会报错。验证方法# 进入 OpenClaw 主目录 cd $env:USERPROFILE\.openclaw\ # 查看 node_modules 是否存在且非空 Get-ChildItem node_modules | Measure-Object | Select-Object Count # 如果 Count 是 0说明依赖没装手动修复# 切换到淘宝镜像国内最快 npm config set registry https://registry.npmmirror.com # 清理旧缓存 npm cache clean --force # 重新安装 npm install --production实操心得我曾在公司内网装npm install卡在openclaw/adapter-openai15 分钟不动。后来发现是公司代理拦截了https://registry.npmjs.org。解决方案不是关代理而是配置 npm 使用代理npm config set proxy http://your-proxy:8080 npm config set https-proxy http://your-proxy:80804.5 日志分析openclaw logs是终极真相之眼当以上所有排查都无效就该祭出openclaw logs命令。它会实时输出 Gateway 的 stdout/stderr错误信息就藏在里面。常用技巧查看最近 100 行错误openclaw logs --tail 100 | Select-String error|fail|unhandled查看启动瞬间的日志openclaw logs --since 1m | Select-String starting|listen|ready导出日志到文件便于分析openclaw logs gateway.log典型错误日志及对策日志片段含义解决方案Error: ENOENT: no such file or directory, open C:\Users\...\config.json配置文件路径错误检查OPENCLAW_HOME环境变量是否指向正确目录TypeError: Cannot read properties of undefined (reading apiKey)config.json里apiKey字段为空或拼写错误用Get-Content config.json确认字段名是api_key下划线不是apiKey驼峰Error: listen EADDRINUSE: address already in use :::18789端口被占见 4.1netstat -ano | findstr :18789Error: Cannot find module sqlite3SQLite 二进制未编译运行npm rebuild sqlite3 --runtimeelectron --target24.7.0 --dist-urlhttps://electronjs.org/headers最后一个技巧openclaw logs默认只输出 Gateway 日志。如果你想看onboard向导本身的日志比如它为什么卡在“Verifying API Key”需要加-v参数openclaw onboard -v。这会输出所有调试信息包括它向https://api.openai.com/v1/models发送的 cURL 命令你可以复制出来用curl -v单独测试彻底排除网络问题。5. 进阶配置从apikey到多模型路由的实战落地现在你的 OpenClaw 已经在localhost:18789上稳稳运行控制台也能正常聊天。但这只是起点。真正的生产力提升来自于让它按你的规则工作。下面我用三个真实场景展示如何超越向导默认配置实现个性化定制。5.1 API Key 安全管理为什么config.json里明文存 Key 是安全的很多人看到config.json里api_key: sk-...就头皮发麻觉得“这太不安全了”。但这是对 Windows 权限模型的误解。config.json的安全不靠“加密”而靠“隔离”。Windows 的 NTFS 权限系统默认给每个用户目录设置了严格的 ACL访问控制列表%USERPROFILE%\.openclaw\config\目录的权限是SYSTEM完全控制、Administrators完全控制、YourUser完全控制、Everyone无权限这意味着即使你的电脑有其他用户账号他们也无法读取你的config.json除非你是 Administrator 并主动给了权限你可以亲自验证# 查看 config 目录的 ACL Get-Acl $env:USERPROFILE\.openclaw\config\ | Format-List # 输出中会看到类似 # AccessToString : BUILTIN\Administrators Allow FullControl # NT AUTHORITY\SYSTEM Allow FullControl # YOURDOMAIN\YourUser Allow FullControl所以与其费劲去搞环境变量或密钥管理器不如相信 Windows 本身。当然如果你在共享主机如公司 NAS上部署那就另当别论——但那是另一个话题了。5.2 多模型路由让不同问题自动流向不同大模型OpenClaw 的核心能力之一是“模型路由”。比如你可以设定所有带#code标签的消息走 Claude擅长代码解释所有带#translate的消息走 Google Gemini多语言强其他消息走 OpenAI GPT-4通用最强这只需要修改config.json的models和routing字段{ models: { claude: { provider: anthropic, model: claude-3-5-sonnet-20241022, api_key: your-anthropic-key }, gemini: { provider: google, model: gemini-1.5-pro-latest, api_key: your-gemini-key }, gpt4: { provider: openai, model: gpt-4o, api_key: your-openai-key } }, routing: { rules: [ { match: .*#code.*, model: claude }, { match: .*#translate.*, model: gemini } ], default: gpt4 } }注意正则表达式match字段是匹配用户原始输入消息不是模型返回结果。所以#code必须由用户主动加上。如果你想实现“自动识别代码问题”就需要写一个 Skill见 5.3。5.3 自定义 Skill用 10 行 JS 实现“自动加 #code 标签”Skill 是 OpenClaw 的插件系统用 JavaScript 编写可以拦截、修改、增强消息流。下面这个 Skill会自动检测用户消息里是否有代码块如果有就给消息加上#code标签触发上面的路由规则。创建文件%USERPROFILE%\.openclaw\skills\auto-tag-code.jsmodule.exports { name: auto-tag-code, description: Auto add #code tag to messages containing code blocks, // 在消息发送给模型前触发 beforeModel: async (context) { const { message } context; // 检查消息里是否有 包裹的代码 if (message.text message.text.includes()) { // 在消息开头加标签 message.text #code message.text; console.log([Skill] Auto-tagged as #code: ${message.text.substring(0, 50)}...); } } };然后在config.json里启用它{ skills: { enabled: [auto-tag-code] } }重启 Gatewayopenclaw gateway restart现在无论用户发帮我写个 Python 脚本读取 CSV还是解释一下这段 JSfunction foo() {...}只要消息里有代码块就会被自动路由到 Claude。这就是 OpenClaw 的威力它不强迫你改变使用习惯而是用 Skill 去理解你的意图。实操心得Skill 的beforeModel函数是修改消息的黄金位置。但要注意它只对“文本消息”生效。如果是图片、文件等富媒体消息需要监听beforeChannel或afterModel。另外所有 Skill 都运行在同一个 Node.js 进程里所以不要写while(true)这样的死循环否则整个 Gateway 会卡死。我曾因此 debug 了 3 小时最后发现是 Skill 里一个没加await的 Promise 导致事件循环阻塞。6. 生产就绪Windows 服务、自动更新与跨设备同步当你在个人电脑上玩转 OpenClaw 后下一步往往是把它变成一个“永远在线”的服务。比如部署在 NAS 上让全家人的手机都能通过 Telegram Bot 访问或者部署在公司服务器上作为内部知识库的统一入口。这就涉及到 Windows 服务管理、自动更新策略和配置同步。6.1--install-daemon的真相它创建的不是一个服务而是一套服务生态openclaw onboard --install-daemon命令会在 Windows 服务管理器里创建两个服务openclaw-gateway核心网关监听 18789 端口处理所有 API 请求openclaw-updater后台更新守护进程每 24 小时检查一次 GitHub Release你可以用services.msc图形界面查看或用 PowerShell 命令# 查看服务状态 Get-Service openclaw* # 启动/停止服务 Start-Service openclaw-gateway Stop-Service openclaw-gateway # 设置开机自启 Set-Service openclaw-gateway -StartupType Automatic注意openclaw-updater服务默认是Manual启动类型它只在你执行openclaw upgrade时才被触发。如果你想让它自动运行可以改成Automatic但没必要——因为 OpenClaw 的更新非常克制平均每月只发布 1-2 个 patch 版本手动升级更可控。6.2 自动更新的安全哲学git pullvsnpm updateOpenClaw 的更新机制是git pull而不是npm update。这是深思熟虑的设计git pull更新的是整个代码仓库包括 CLI、Gateway、UI、Adapters、Skills所有组件版本严格一致npm update只更新node_modules里的包可能导致 CLI 是 v1.2.0而 Adapter 是 v1.3.0出现兼容性问题所以openclaw upgrade的本质就是cd $env:USERPROFILE\.openclaw\ git fetch origin main git reset --hard origin/main npm install --production这个过程是原子的要么全部成功要么全部失败git reset --hard会回滚到上一个稳定状态。我曾故意断网测试openclaw upgrade卡在git fetch但openclaw gateway依然正常运行没有任何影响。6.3 跨设备同步用 OneDrive 实现配置漫游如果你有多台 Windows 电脑比如公司台式机 家里笔记本想让 OpenClaw 配置保持一致最简单的方法是用 OneDrive 同步%USERPROFILE%\.openclaw\config\目录。操作步骤在主电脑上把%USERPROFILE%\.openclaw\config\剪切到OneDrive\OpenClawConfig\在主电脑上创建符号链接cd $env:USERPROFILE\.openclaw\ Remove-Item config New-Item -ItemType SymbolicLink -Path config -Target $env:USERPROFILE\OneDrive\OpenClawConfig在其他电脑上重复步骤 2指向同一个 OneDrive 目录为什么用符号链接而不是直接移动因为 OpenClaw 的代码里硬编码了path.join(os.homedir(), .openclaw, config)这个路径。符号链接能完美欺骗它让它以为配置还在原位而实际数据已云端同步。实测下来修改一台电脑的config.json30 秒内另一台电脑的