1. Windows 上装 openClaw 为什么第一步就卡住:ExecutionPolicy 与 Gateway 的真实场景
如果你在 Windows 上第一次接触 openClaw,大概率会遇到两个拦路虎:一个是 PowerShell 直接甩给你一句「禁止运行脚本」,另一个是装完之后 Gateway 网关连不上、仪表板打不开。这两个问题看起来吓人,其实都是环境配置层面的小坎,搞清楚原理之后五分钟就能解决。
openClaw 是一个本地运行的 AI Agent 网关工具,它能帮你把各种大模型能力统一接入到本地服务里,再通过 Gateway 暴露给聊天客户端、机器人或者你自己的脚本调用。适合谁用?适合想在 Windows 本机上跑一个私有 AI 助手、又不想折腾 Linux 双系统的开发者。它的安装脚本是.ps1格式,通过 PowerShell 执行,所以第一步就撞上了 Windows 默认的安全策略。
Windows 的 PowerShell 默认执行策略是Restricted,意思是「任何脚本都不许跑」。这个设计本身是为了防止恶意脚本自动执行,但对于我们这种要跑安装脚本的场景来说,就成了第一道墙。你需要把执行策略改成RemoteSigned——本地脚本可以跑,从网上下载的脚本需要签名。这是官方推荐的安全级别,比Unrestricted稳妥得多。
改完策略之后,安装脚本能跑了,但很多人装完发现 Gateway 起不来。原因通常是:新手引导阶段选了跳过服务安装,或者重启电脑后网关进程没了。Gateway 是 openClaw 的核心组件,它负责监听端口、转发请求、管理模型连接。没有它,仪表板就是个空壳。所以整篇文章我会按「改策略 → 装本体 → 配 Gateway → 验证请求 → 排错」这条线走,每一步都给可直接复制的命令和配置片段。
我试过在一台全新的 Windows 11 机器上从零走一遍,全程大概十五分钟,其中大部分时间花在等安装脚本下载依赖上。下面把我踩过的坑和验证过的步骤完整写出来,你照着做就行。
2. TaoToken 前置准备:拿 Key、选模型、配 Base URL
openClaw 本身是一个网关框架,它需要对接一个模型服务才能干活。你可以把它理解成一个「插座」,模型服务是「电源」。TaoToken 在这里扮演的就是稳定供电的角色——它提供统一的 API 入口,兼容主流模型协议,你只需要一个 Key 和 Base URL 就能在 openClaw 里调用多种模型。
为什么要在装 openClaw 之前先准备 TaoToken?因为新手引导阶段会让你选模型、填 API 信息。如果你提前把 Key 和地址准备好,引导流程会顺畅很多,不会卡在「模型选择」那一步反复试错。
第一步,打开浏览器访问 TaoToken 官网,注册并登录。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。登录之后进入控制台,找到 API Keys 管理页面,新建一个 Key。这个 Key 就是你后续所有请求的凭证,格式通常是一串以sk-开头的字符串。创建的时候给它起个名字,比如openclaw-local,方便以后区分。
第二步,确认你要用的模型 ID。openClaw 的配置里需要填 Model ID,这个 ID 必须和 TaoToken 支持的模型列表一致。你可以在控制台的模型列表里查看可用模型,也可以直接访问模型对话页面测试一下哪个模型响应快、效果好。对于本地 Agent 场景,建议选一个指令跟随能力强的模型,这样在工具调用和多轮对话里表现更稳定。
第三步,记下 Base URL。TaoToken 的 API 地址是 https://taotoken.net/api ,注意这个地址不带任何查询参数,直接填到 openClaw 的配置里就行。有些工具要求 Base URL 以/v1结尾,openClaw 的配置项里通常写完整的 API 根地址即可,具体看下一节的配置片段。
这里有个细节要注意:TaoToken 的官网链接带了 UTM 参数用于来源追踪,但 API 地址是干净的,不要混用。你在配置文件里填的一定是https://taotoken.net/api,而不是带一堆参数的官网地址。
准备好这三样东西——API Key、Model ID、Base URL——之后,就可以进入 openClaw 的安装和配置环节了。如果你还想先体验一下模型对话效果,可以直接打开模型对话页面,用刚创建的 Key 发一条测试消息,确认 Key 有效再继续。
3. 可复制配置:ExecutionPolicy 命令 + Gateway 配置片段
这一节是整篇文章的核心操作区,所有命令和配置都可以直接复制。我按执行顺序排列,你从上往下走就行。
3.1 修改 PowerShell ExecutionPolicy
首先以管理员身份打开 PowerShell。在开始菜单搜索「PowerShell」,右键选择「以管理员身份运行」。然后执行查看当前策略的命令:
Get-ExecutionPolicy如果返回Restricted,说明脚本被完全禁止。接着执行修改命令:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser这里我加了-Scope CurrentUser,只对当前用户生效,不需要动系统全局策略,更安全。执行后会提示你确认,输入Y回车。再次运行Get-ExecutionPolicy确认返回RemoteSigned。
注意:不要用
Unrestricted,那等于把安全门完全打开。RemoteSigned已经足够跑本地安装脚本,远程脚本仍然需要签名,这是平衡安全和便利的最佳选择。
3.2 执行 openClaw 安装脚本
策略改好之后,直接运行官方安装命令:
iwr -useb https://openclaw.ai/install.ps1 | iex这条命令分两部分:iwr -useb是下载脚本内容,iex是执行。安装过程会自动下载依赖、解压到默认目录。安装完成后,脚本通常会提示你把安装路径加入 PATH 环境变量。如果没自动加,手动在「系统属性 → 环境变量 → Path」里新增一条,指向 openClaw 的安装目录。
3.3 运行新手引导并配置 Gateway
安装完成后,运行新手引导:
openclaw onboard --install-daemon引导过程中会依次问你几个问题。模型选择环节,选「QuicStart」模式,然后模型提供商选国内的 Qwen 或者你准备好的 TaoToken 接入。如果选 TaoToken,需要填入上一节准备的 Base URL 和 API Key。默认模型选择「keep current」,后续的选项全部选跳过或 no,这些以后可以在控制台里改。
引导完成后,Gateway 服务应该已经注册为后台服务。你可以用以下命令检查状态:
openclaw gateway status如果显示未运行,手动前台启动看看报错:
openclaw gateway --port 18789 --verbose--verbose会打印详细日志,方便定位问题。端口默认 18789,如果被占用可以换成其他端口。
3.4 Gateway 配置文件片段
openClaw 的 Gateway 配置通常放在用户目录下的.openclaw文件夹里。如果你需要手动编辑配置,可以参考这个 JSON 片段:
{ "gateway": { "port": 18789, "host": "127.0.0.1", "logLevel": "info" }, "model": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的Key", "modelId": "你的模型ID" } }把apiKey和modelId替换成你自己的值。baseUrl保持https://taotoken.net/api不变。保存后重启 Gateway 让配置生效。
提示:配置文件里的 Key 是明文存储的,注意不要把这个文件提交到 Git 或者分享给别人。如果多人共用一台机器,考虑用环境变量注入 Key。
3.5 验证 Gateway 健康状态
配置完成后,依次运行以下命令验证:
openclaw doctor openclaw status openclaw healthdoctor会检查环境依赖和配置完整性,status显示 Gateway 运行状态,health返回网关健康检查结果。三个都通过之后,打开仪表板:
openclaw dashboard浏览器会自动打开管理页面。如果页面能正常加载并且显示模型连接正常,说明整条链路通了。
4. 验证请求:从仪表板到实际对话的完整链路
配置写完不代表能用,必须实际发一次请求确认整条链路通畅。这一节我带你从仪表板验证到真实对话测试,每一步都有明确的成功标志。
4.1 仪表板加载与状态确认
运行openclaw dashboard之后,浏览器会打开一个本地地址,通常是http://127.0.0.1:18789或者类似的端口。页面加载后,你首先看到的是概览面板。重点看三个指标:Gateway 状态、模型连接状态、最近请求记录。
Gateway 状态应该显示绿色或者「running」。如果显示红色或者「disconnected」,说明网关进程没起来,回到上一节用openclaw gateway --port 18789 --verbose前台启动看日志。模型连接状态显示的是 openClaw 能否成功调用你配置的模型服务。如果这里报错,大概率是 Base URL 或 API Key 填错了。
注意:仪表板本身也是一个 HTTP 服务,如果浏览器打不开,先确认端口没有被防火墙拦截。Windows 防火墙有时会弹窗询问是否允许,一定要点「允许访问」。
4.2 用 curl 直接测试 Gateway 接口
仪表板是图形界面,但底层还是 HTTP 接口。我们可以用 curl 直接打一个请求,绕过界面确认网关本身是否正常工作。打开一个新的 PowerShell 窗口,执行:
curl -X POST http://127.0.0.1:18789/v1/chat/completions ` -H "Content-Type: application/json" ` -d '{\"model\":\"你的模型ID\",\"messages\":[{\"role\":\"user\",\"content\":\"你好,测试一下\"}]}'如果返回一个包含choices字段的 JSON,说明 Gateway 正常转发请求并且模型服务返回了结果。如果返回 401,说明 API Key 有问题;如果返回连接拒绝,说明 Gateway 没在监听;如果返回reading choices相关的解析错误,说明返回格式不符合预期,检查 Base URL 是否填对。
4.3 在仪表板里做一次真实对话
curl 通了之后,回到仪表板,找到对话测试区域。输入一句简单的话,比如「用一句话介绍你自己」,点击发送。成功的话,你会看到模型返回的文本逐字显示出来。这个过程验证了从界面到 Gateway 到模型服务的完整链路。
如果仪表板里发送失败但 curl 成功,说明是前端配置问题,检查仪表板设置里的模型 ID 是否和配置文件一致。如果两个都失败,回到 Gateway 日志里找线索。
4.4 重启后的 Gateway 恢复
Windows 机器重启后,Gateway 服务不一定会自动启动,这取决于你在新手引导时有没有选「安装为服务」。如果没有,每次重启后需要手动运行:
openclaw gateway --port 18789想让它开机自启,可以在引导时选择安装 daemon,或者手动把 Gateway 启动命令加到 Windows 任务计划程序里,触发条件设为「登录时」。这样每次开机后网关自动在后台运行,你直接打开仪表板就能用。
4.5 验证模型切换是否生效
如果你在配置里改了模型 ID,想确认新模型是否生效,最简单的办法是在仪表板里发一条只有新模型才能正确回答的问题,或者直接看返回内容里的模型标识。有些模型会在响应头或者 JSON 的model字段里回显自己的 ID,对比一下就知道有没有切成功。
整条链路验证下来,你应该能完成「打开仪表板 → 发消息 → 收到回复」这个闭环。任何一步卡住,下一节的排错指南都有对应方案。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth 报错
这一节我把 Windows 上装 openClaw 最常见的几类报错整理出来,每条都给出真实错误信息和对应的解决动作。你遇到问题时可以直接对照查找。
5.1 401 Unauthorized
错误表现:curl 或仪表板返回401 Unauthorized,或者提示invalid api key。
原因通常是 API Key 填错、过期,或者 Base URL 和 Key 不匹配。解决步骤:第一,回到 TaoToken 控制台确认 Key 还在有效期内,没有误删。第二,检查配置文件里的apiKey字段有没有多余空格或换行。第三,确认baseUrl填的是https://taotoken.net/api,没有多写/v1或者少写协议头。第四,如果 Key 是在环境变量里注入的,确认环境变量名和配置文件里引用的名字一致。
改完之后重启 Gateway,再跑一次 curl 测试。
5.2 local proxy failed
错误表现:Gateway 日志里出现local proxy failed或者dial tcp 127.0.0.1:xxxx connection refused。
这个错误说明 Gateway 尝试连接某个本地端口失败。常见原因是端口被占用,或者 Gateway 自己没起来。解决步骤:先用netstat -ano | findstr 18789查看端口占用情况。如果被其他进程占了,换一个端口启动,比如openclaw gateway --port 18888。如果端口没被占但连接拒绝,说明 Gateway 进程根本没启动,用前台模式跑一次看报错。
还有一种情况是配置文件里写了错误的 host,比如写成了0.0.0.0但实际只监听127.0.0.1。统一改成127.0.0.1试试。
5.3 reading choices 解析错误
错误表现:返回 JSON 解析失败,日志里出现reading 'choices'或者cannot read property of undefined。
这个错误说明 Gateway 收到了响应,但响应格式不是预期的 OpenAI 兼容格式。原因通常是 Base URL 指向了一个返回 HTML 错误页的地址,或者模型服务返回了非标准结构。解决步骤:第一,用 curl 直接请求 Base URL 加/models,看返回的是不是 JSON。第二,确认 Base URL 没有多余路径,比如误写成https://taotoken.net/api/v1/chat。第三,检查模型 ID 是否在 TaoToken 支持列表里,不支持的模型可能返回错误结构。
5.4 OAuth 授权失败
错误表现:新手引导阶段选择某些模型时,浏览器弹出授权页面但回调失败,或者提示OAuth callback error。
这类问题通常出现在选择需要网页登录授权的模型提供商时。解决步骤:第一,确认默认浏览器能正常打开本地回调地址,有些安全软件会拦截localhost回调。第二,如果授权页面一直转圈,尝试换一个浏览器或者清除缓存重试。第三,如果多次失败,直接跳过 OAuth 流程,改用 API Key 方式接入 TaoToken,在配置文件里手动填 Key 和 Base URL,这样不依赖网页授权。
5.5 CC Switch / Cline MCP / Codex auth.json 三件套配置
如果你在 openClaw 之外还用了 CC Switch、Cline 的 MCP 功能,或者 Codex 的auth.json,这些工具接入模型服务时同样需要三件套:Base URL、API Key、Model ID。以 Codex 的auth.json为例,配置片段如下:
{ "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的Key", "model": "你的模型ID" }Cline 的 MCP 配置里也是类似结构,在settings.json里找到模型提供商配置段,填入同样的三个值。CC Switch 切换配置时,确保每个 profile 里的 Base URL 都指向https://taotoken.net/api,不要混用不同来源的地址。
注意:这三个工具不要同时连同一个 Gateway 端口,容易冲突。如果都要用,给它们分配不同的本地端口,或者错开使用时间。
5.6 安装脚本下载失败
错误表现:iwr -useb https://openclaw.ai/install.ps1 | iex执行后提示网络错误或者脚本内容为空。
先确认 ExecutionPolicy 已经改成RemoteSigned,否则iex会直接拒绝执行。如果策略没问题但下载失败,检查网络连接是否稳定,可以先用iwr -useb https://openclaw.ai/install.ps1 -OutFile install.ps1把脚本下载到本地,再手动执行.\install.ps1。这样能看到更详细的错误信息。
6. 继续深入:从本地 Gateway 到长期编码 Agent
装好 openClaw 并且验证 Gateway 可用之后,你其实已经拥有了一个本地 AI 网关。接下来可以根据自己的需求往不同方向扩展。
如果你主要用它来做日常对话和模型测试,可以直接在仪表板里切换模型、调整参数,把 TaoToken 支持的模型都试一遍,找到最适合你任务的那个。模型对话页面可以快速对比不同模型的响应质量,不用改配置就能切换。
如果你打算把它当成长期编码助手或者 Agent 运行环境,建议了解一下 Coding Plan。它提供了更稳定的调用配额和针对代码场景优化的配置,适合每天都要用 AI 辅助写代码的开发者。openClaw 的 Gateway 可以和 Coding Plan 配合,把本地工具链和云端模型能力串起来。
接入文档里有完整的 API 说明和示例代码,包括如何用 Python、Node.js 或者 curl 调用 Gateway 接口。如果你要自己写脚本对接,先看文档里的认证方式和请求格式,能省不少调试时间。
最后提醒一个实操细节:Windows 上跑 Gateway 建议把它注册成开机自启服务,否则每次重启都要手动敲命令。注册方法在接入文档的「守护进程」章节有说明,或者直接用新手引导里的--install-daemon参数。这样你每天打开电脑,Gateway 已经在后台跑着,打开仪表板就能直接用。
整个流程走下来,最关键的其实就是两步:ExecutionPolicy 改成RemoteSigned,Gateway 配置里 Base URL 填对。剩下的都是验证和排错。把这两步做扎实,后面基本不会有大问题。