1. Windows 下 OpenClaw 安装与飞书接入:从 PowerShell 到机器人连通
OpenClaw 是一个可以在本地跑起来的 AI 网关与消息渠道聚合工具,简单说,它能把飞书、模型 API、插件这些东西串成一条线,让你在本地就拥有一个可对话、可扩展的机器人服务。它适合谁?适合想在 Windows 上折腾本地 AI 助手、又不想把数据全丢到云端的开发者,也适合需要把飞书群机器人接上大模型做内部工具的团队。我这次是在 Windows 11 + PowerShell 7 的环境里从零走了一遍,踩了几个坑,尤其是飞书插件安装时的spawn EINVAL报错,最后靠手动下载 tgz 包才绕过去。下面把完整流程拆开讲,命令都可以直接复制。
核心检索词先明确:OpenClaw 安装、Windows PowerShell、Node 版本校验、飞书机器人接入、配置文件修改、连通性验证。这几个词会贯穿全文,你照着做就能在本地完成从零到可用的闭环。
先说清楚整体路径,避免你中途迷路。第一步是准备 PowerShell 环境并校验 Node 版本,Node 必须大于等于 22,这是硬门槛,低于这个版本后面插件装不上。第二步是用官方脚本或 npm 安装 OpenClaw 本体,并启动守护进程。第三步是安装飞书消息渠道插件,这一步最容易出问题。第四步是修改配置文件,把飞书机器人的 App ID、App Secret 填进去。第五步是启动网关,用回调验证飞书连通性。第六步是排查常见错误,比如 401、local proxy failed、spawn EINVAL 这些。
我试过在 CMD 里执行安装命令,结果直接失败,因为iwr这个命令只在 PowerShell 里可用,CMD 里没有。所以第一件事,确认你打开的是 PowerShell,不是 CMD。你可以按 Win + X,选择“终端”或“Windows PowerShell”,然后在窗口标题栏看到 PowerShell 字样。如果你用的是 Windows Terminal,默认可能是 PowerShell,也可能是 CMD,点一下下拉箭头确认。
Node 版本校验这一步不能跳过。打开 PowerShell,输入:
node -v如果输出是v22.x.x或更高,比如v24.9.0,那就没问题。如果低于 22,或者提示node不是内部或外部命令,说明你没装 Node 或者没加到 PATH。去 Node 官网下载 LTS 版本,安装时勾选“Add to PATH”。装完关掉 PowerShell 重新打开,再执行node -v确认。我本地用的是 nvm 管理的 Node,版本是 v24.9.0,路径在D:\App\env_tool\nvm\v24.9.0,这个路径后面排查报错时会用到。
还有一个隐藏坑:如果你之前装过旧版 Node,或者用 nvm 切换过版本,PowerShell 里node -v和实际 npm 全局包路径可能对不上。执行npm root -g看一下全局包目录,确认和你当前 Node 版本匹配。不匹配的话,后面openclaw命令可能找不到。
环境准备好之后,就可以进入安装环节了。下一节讲具体命令和守护进程启动。
2. TaoToken 前置准备:API Key 与接入文档
在正式接飞书之前,你需要先把模型侧的凭证准备好。OpenClaw 本身是一个网关,它需要调用大模型来完成对话,所以你得有一个可用的 API Key。这里我用的是 TaoToken 的接入方式,它的 API 地址是https://taotoken.net/api,注意这个地址不带任何查询参数,直接作为 Base URL 使用。
为什么先讲这个?因为很多人装完 OpenClaw、接完飞书,结果机器人不回消息,排查半天发现是模型 Key 没配或者 Base URL 写错了。所以先把模型侧的前置条件搞定,后面飞书连通性验证才能一次通过。
你需要做两件事:第一,拿到 API Key;第二,确认你要用的模型 ID。API Key 的获取入口在控制台,打开https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,登录后创建一个新的 Key,复制保存。注意 Key 只显示一次,丢了就得重新建。
模型 ID 这块,TaoToken 支持多种模型,你在模型对话页面可以看到当前可用的模型列表。打开https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,选一个你常用的,比如claude-sonnet-4-20250514或者gpt-4o,把模型 ID 记下来。后面写配置文件时要用。
如果你对接入方式不熟,官方文档在https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,里面有 Base URL、鉴权方式、请求示例的完整说明。我建议你花五分钟扫一遍,尤其是鉴权部分,OpenClaw 的配置文件里填 Key 的方式和文档里一致。
这里要强调一个点:TaoToken 的 API 是标准接口,不是那种需要额外代理的灰色通道。你直接在 OpenClaw 的配置里填 Base URL 和 Key 就行,不需要改系统代理,也不需要装任何额外网络工具。这一点在 Windows 环境下尤其重要,因为 Windows 的代理设置经常和命令行工具打架,能少一层就少一层。
准备好这三样东西:API Key、Base URL(https://taotoken.net/api)、模型 ID。把它们放在一个临时文本里,下一步写配置文件时直接粘贴。
另外,如果你打算长期跑编码类任务或者 Agent 工作流,可以看一下 Coding Plan,入口在https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,它针对高频调用场景做了额度优化。不过这一步不是必须的,先用按量计费的 Key 跑通流程再说。
前置条件齐了,接下来进入 OpenClaw 本体的安装和配置。
3. 可复制配置:OpenClaw 安装、飞书插件与 settings 片段
这一节是全文的核心操作区,命令和配置片段都可以直接复制。我按顺序拆成四步:安装 OpenClaw、安装飞书插件、修改配置文件、启动网关。
3.1 安装 OpenClaw 本体
打开 PowerShell,执行官方安装脚本:
iwr -useb https://openclaw.ai/install.ps1 | iex openclaw onboard --install-daemon第一行是下载并执行安装脚本,第二行是启动引导界面并安装守护进程。执行完openclaw onboard后,会进入一个交互式界面,问你一些配置项,比如监听端口、数据目录。如果你不想改,直接一路回车用默认值。默认本地地址是http://127.0.0.1:18789/。
如果你已经有 Node 且版本大于等于 22,也可以用 npm 方式安装:
npm install -g openclaw@latest openclaw onboard --install-daemon两种方式效果一样,选一种就行。我本地用的是 npm 方式,因为 nvm 管理下全局包路径比较清晰。
安装完成后,验证一下:
openclaw --version能输出版本号就说明本体装好了。
3.2 安装飞书消息渠道插件
执行:
openclaw plugins install @openclaw/feishu这一步我遇到了Failed to start CLI: Error: spawn EINVAL报错,完整堆栈里能看到ChildProcess.spawn和installPluginFromNpmSpec。这个错误在 Windows 上比较常见,原因是 npm 子进程调用时参数传递出了问题。解决办法是手动下载插件包再本地安装。
先下载 tgz 包:
iwr -useb https://registry.npmjs.org/@overlink/openclaw-feishu/-/openclaw-feishu-0.1.10.tgz -OutFile openclaw-feishu-0.1.10.tgz然后在你下载的目录下执行本地安装:
openclaw plugins install ./openclaw-feishu-0.1.10.tgz npm install -g zod@latest npm install @larksuiteoapi/node-sdk openclaw plugins enable feishu openclaw gateway restart openclaw plugins list最后一行openclaw plugins list用来查看插件状态,如果飞书那一行显示loaded,就说明插件装好了。注意npm install @larksuiteoapi/node-sdk这条命令要在 OpenClaw 的项目目录下执行,如果你不确定目录在哪,先执行openclaw config看一下数据目录路径,切过去再装。
3.3 修改配置文件(settings 片段)
OpenClaw 的配置文件通常是 JSON 格式,路径在数据目录下,文件名可能是settings.json或config.json。你可以执行openclaw config打开配置界面,也可以直接编辑文件。我建议直接编辑,因为要填的字段比较多。
下面是一个可复制的配置片段,你需要把appId、appSecret、apiKey、model替换成你自己的值:
{ "channels": { "feishu": { "enabled": true, "appId": "cli_xxxxxxxxxxxx", "appSecret": "xxxxxxxxxxxxxxxxxxxxxxxx", "verificationToken": "xxxxxxxxxxxxxxxx", "encryptKey": "xxxxxxxxxxxxxxxx" } }, "models": { "default": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-xxxxxxxxxxxxxxxx", "model": "claude-sonnet-4-20250514" } }, "gateway": { "port": 18789, "host": "127.0.0.1" } }这里有三件套必须写全:Base URL 是https://taotoken.net/api,Key 是你从控制台复制的sk-开头的字符串,Model ID 是你选定的模型。飞书侧的appId和appSecret来自飞书开放平台,verificationToken和encryptKey也在飞书后台的事件订阅页面。
如果你用的是 Claude Code 或者 Cline MCP 这类工具,配置逻辑是一样的,都是 Base URL + Key + Model ID 三件套。OpenClaw 的配置文件只是把它们组织成 JSON 结构。
3.4 启动网关并验证
配置写完后,重启网关:
openclaw gateway restart openclaw dashboardopenclaw dashboard会打开浏览器,地址是http://127.0.0.1:18789/。你能看到仪表盘界面,说明网关跑起来了。
然后执行飞书渠道添加:
openclaw channels add按提示选择飞书,填入 App ID 和 App Secret。完成后,飞书插件会开始监听事件。
到这里,配置部分就完成了。下一节讲怎么验证飞书机器人真的通了。
4. 验证请求与成功结果:飞书回调与模型对话测试
配置写完不代表通了,必须做两步验证:一是飞书回调验证,二是模型对话测试。
4.1 飞书回调验证
打开飞书开放平台,进入你的应用,找到“事件订阅”页面。这里需要填两个东西:请求地址和 Verification Token。
请求地址填你的 OpenClaw 网关地址加上飞书回调路径,通常是:
http://你的公网IP:18789/channels/feishu/callback如果你在本地跑,没有公网 IP,可以用内网穿透工具把 18789 端口暴露出去。注意,这里说的是内网穿透,不是代理,两者不是一回事。内网穿透只是把你的本地端口映射到一个公网地址,方便飞书服务器回调。
填完地址后,点“保存”,飞书会发一个 challenge 请求到你的网关。如果 OpenClaw 配置正确,它会自动响应 challenge,页面提示“验证成功”。如果失败,检查verificationToken是否和配置文件里一致,以及网关是否在运行。
验证通过后,在飞书后台把机器人添加到某个群,或者直接和机器人私聊。发一条消息,比如“你好”,观察 OpenClaw 的日志输出。执行:
openclaw gateway logs如果看到收到消息、调用模型、返回响应的日志,说明链路通了。
4.2 模型对话测试
除了飞书,你也可以直接在 OpenClaw 的仪表盘里测试模型。打开http://127.0.0.1:18789/,找到对话界面,输入一句话,看是否返回结果。
如果返回正常,说明 Base URL、Key、Model ID 三件套配置正确。如果报错,常见的是 401,说明 Key 无效或者没填对。还有一种报错是reading choices,说明返回结构不符合预期,通常是 Base URL 写错了,比如多加了/v1或者少了/api。
我实测下来,TaoToken 的 Base URL 就是https://taotoken.net/api,不要在后面加/v1,OpenClaw 会自动拼接路径。这一点和某些 SDK 的默认行为不同,容易踩坑。
4.3 成功结果长什么样
当一切正常时,你在飞书里发消息,机器人会在几秒内回复。OpenClaw 日志里会显示:
[feishu] received message: 你好 [model] calling provider openai-compatible, model claude-sonnet-4-20250514 [model] response received, tokens: 128 [feishu] reply sent同时,仪表盘上会显示当前会话数、模型调用次数、平均延迟等指标。这些指标能帮你判断系统是否健康。
如果你用的是 Coding Plan,高频调用时额度消耗会体现在控制台。普通按量计费的 Key 则看余额。
验证通过后,你就可以正常使用了。但实际部署中还会遇到一些错误,下一节集中讲排查。
5. 本篇常见错排查:401、local proxy failed、spawn EINVAL、OAuth
这一节把我在 Windows 环境下遇到的真实报错和解决办法列出来,你对照着排查。
5.1 spawn EINVAL
完整报错:
[openclaw] Failed to start CLI: Error: spawn EINVAL at ChildProcess.spawn (node:internal/child_process:421:11) at spawn (node:child_process:796:9) at runCommandWithTimeout (file:///D:/App/env_tool/nvm/v24.9.0/node_modules/openclaw/dist/exec-B8JKbXKW.js:201:16) at installPluginFromNpmSpec (file:///D:/App/env_tool/nvm/v24.9.0/node_modules/openclaw/dist/installs-DNzuaAfs.js:339:20)这个错误出现在openclaw plugins install @openclaw/feishu时。原因是 Windows 下 npm 子进程调用参数传递有问题,Node 的spawn在 Windows 上对某些参数格式敏感。
解决办法就是前面说的手动下载 tgz 包,然后本地安装:
iwr -useb https://registry.npmjs.org/@overlink/openclaw-feishu/-/openclaw-feishu-0.1.10.tgz -OutFile openclaw-feishu-0.1.10.tgz openclaw plugins install ./openclaw-feishu-0.1.10.tgz装完后别忘了补依赖:
npm install -g zod@latest npm install @larksuiteoapi/node-sdk openclaw plugins enable feishu openclaw gateway restart5.2 401 Unauthorized
报错信息通常是:
[model] request failed: 401 Unauthorized原因有三个:Key 没填、Key 填错、Key 过期。检查配置文件里的apiKey字段,确认是sk-开头的完整字符串,没有多余空格。如果刚在控制台重新生成过 Key,旧 Key 会失效,需要更新配置。
还有一种情况是 Base URL 写成了https://taotoken.net,少了/api,导致请求打到了错误的路由,返回 401。正确写法是https://taotoken.net/api。
5.3 local proxy failed
报错信息:
[model] request failed: local proxy failed这个错误通常出现在你系统里设置了代理,但代理不可用的情况下。OpenClaw 会读取系统代理设置,如果代理地址无效,请求就发不出去。
解决办法:检查 Windows 的“设置 > 网络和 Internet > 代理”,把手动代理关掉。或者在 PowerShell 里临时清除环境变量:
$env:HTTP_PROXY="" $env:HTTPS_PROXY=""然后重启网关。注意,TaoToken 的 API 不需要代理,直连即可。
5.4 reading choices
报错信息:
[model] response parse error: cannot read property 'choices' of undefined这说明模型返回的 JSON 结构里没有choices字段。原因通常是 Base URL 路径不对,比如你写成了https://taotoken.net/api/v1,而实际应该是https://taotoken.net/api。OpenClaw 会自己拼接/chat/completions,你多写一层/v1就会导致 404 或者返回错误结构。
检查配置文件里的baseUrl,确保是https://taotoken.net/api。
5.5 OAuth 相关错误
如果你在配置模型时选了 OAuth 登录方式,可能会遇到:
OAuth callback failed: redirect_uri mismatch这是因为 OAuth 回调地址和注册应用时填的不一致。解决办法是改用 API Key 方式,在配置文件里直接填apiKey,不要走 OAuth 流程。TaoToken 的接入方式就是 API Key,简单直接。
如果你确实需要用 OAuth,检查飞书开放平台里的重定向 URL 是否和 OpenClaw 生成的一致。但大多数场景下,API Key 就够了。
5.6 飞书插件显示 not loaded
执行openclaw plugins list后,飞书那一行显示not loaded或者error。原因可能是依赖没装全。补装:
npm install -g zod@latest npm install @larksuiteoapi/node-sdk openclaw plugins enable feishu openclaw gateway restart如果还是不行,执行诊断:
openclaw doctor --fix这个命令会自动检查配置和依赖,并尝试修复。
5.7 网关启动失败
如果openclaw gateway restart报错,先看端口是否被占用。18789 端口可能被其他程序占了。换一个端口:
openclaw config在配置界面里改gateway.port,比如改成 18790,然后重启。
如果问题依旧,关掉命令窗口,重新执行:
openclaw onboard openclaw doctor --fix这两个命令能解决大部分初始化问题。
排查完这些,基本就能稳定运行了。最后说一下后续怎么用。
6. 后续使用与接入文档
跑通之后,日常使用就简单了。飞书里直接和机器人对话,OpenClaw 会自动调用你配置的模型。如果你想换模型,改配置文件里的model字段,重启网关即可。
常用命令记一下:
openclaw gateway restart # 重启网关 openclaw dashboard # 打开浏览器仪表盘 openclaw config # 重新配置 openclaw plugins list # 查看插件状态 openclaw doctor --fix # 诊断修复如果你要接入其他消息渠道,比如企业微信、钉钉,逻辑和飞书一样:装插件、填凭证、重启网关。官方文档在https://docs.openclaw.ai/zh-CN/channels/feishu,飞书接入部分写得很细,遇到问题可以先查文档。
模型侧如果要用更多模型,直接在 TaoToken 的模型对话页面测试,确认可用后再写进配置。API Key 管理在https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,接入文档在https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。长期跑编码任务的话,Coding Plan 入口在https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。
最后提醒一句:配置文件里的 Key 不要提交到 Git,也不要在截图里暴露。Windows 下建议把配置目录加到杀毒软件白名单,避免网关进程被误杀。