☰
Open Claw 安装 初体验:从 WSL2 到飞书接入的完整踩坑记录
2026/10/17 2:15:30 网站建设 项目流程

1. 为什么要在 WSL2 里折腾 Open Claw

Open Claw 这段时间在开发者圈子里讨论度很高,它本质上是一个可以跑在本地的 Agent 网关,能把你常用的聊天工具(比如飞书)和本地电脑打通,让你在手机上就能指挥电脑干活。我第一次看到别人演示「在飞书里发一句话,电脑自动整理桌面文件」的时候,确实有点心动,于是决定自己在 Windows 上装一遍试试。

问题来了:Open Claw 官方推荐在 Linux 或 macOS 上跑,Windows 原生环境支持并不完整。我一开始偷懒直接在 PowerShell 里装,结果卡在依赖检测那一步,报了一堆路径相关的错。后来老老实实回到 WSL2,才把整个流程跑通。所以这篇记录的核心场景就是:Windows 用户通过 WSL2 部署 Open Claw,并接入飞书机器人,面向的是第一次接触 Open Claw、对 WSL2 也只是听说过的开发者。

WSL2 是什么?你可以把它理解成「Windows 里内置了一个轻量级 Linux 子系统」,它和 Windows 共享文件系统,但运行的是真正的 Linux 内核。Open Claw 需要的 Node.js 环境、npm 全局安装、后台网关服务,在 WSL2 里跑起来和原生 Ubuntu 几乎没区别。而且它还能直接访问 Windows 的 C 盘、D 盘,这也是后面 Open Claw 能操作你桌面文件的关键。

整个流程我拆成几块:先把 WSL2 和 Node.js 环境准备好,这是硬性门槛;然后跑 Open Claw 的安装脚本,走完配置向导;接着验证网关和 Web 控制台是否正常;最后接入飞书,让手机端能对话。中间我踩过的坑包括 Node.js 版本过低导致安装中断、网关 Token 丢失导致 Web UI 报 unauthorized、飞书事件订阅没配好导致机器人收不到消息。这些都会在下面具体说。

如果你只是想快速体验一下 Agent 是什么感觉,其实也可以先用云端方案,省去本地环境折腾。但如果你想让它真正操作你电脑里的文件、跑定时任务,那本地部署这一步绕不开。下面开始动手。

2. 前置环境:WSL2 与 Node.js 版本要求

这一节是地基,地基没打好后面全是报错。我建议你按顺序来,不要跳步。

2.1 确认并进入 WSL2

在 Windows 搜索栏输入「PowerShell」,右键以管理员身份运行。先检查一下 WSL 是否已经安装:

wsl --list --verbose

如果输出里有类似Ubuntu Running 2的内容,说明你已经有一个 WSL2 发行版了,直接wsl回车进入即可。如果提示「没有已安装的分发版」,那就先装一个:

wsl --install -d Ubuntu

装完会要求你设置 Linux 用户名和密码,这个密码后面sudo会用到,记牢。装好后重新打开 PowerShell,输入wsl就能进入 Ubuntu 环境。注意看--verbose输出里的 VERSION 列,必须是2,如果是1需要执行wsl --set-version Ubuntu 2升级。

2.2 安装 Node.js 22 以上版本

Open Claw 对 Node.js 版本有硬性要求,低于 22 会在安装脚本检测阶段直接报错退出。我一开始用的是 Ubuntu 自带的 Node.js 18,跑安装脚本时提示版本不满足,白折腾了十分钟。

在 WSL2 终端里执行下面两条命令,通过 NodeSource 源安装 22.x:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt-get install -y nodejs

第一条命令会下载并执行 NodeSource 的配置脚本,把 22.x 的软件源加到 apt 列表里;第二条才是真正安装。整个过程大概一两分钟,取决于网络。

装完后验证:

node -v npm -v

正常应该输出v22.x.x和对应的 npm 版本(比如10.5.0)。这里有个细节:网上有些教程写「Node.js 需 ≥v20.0.0」,但 Open Claw 实际安装时对 22 以下版本会警告甚至中断,所以直接上 22 最省心。

提示:如果你之前装过旧版本 Node.js,建议先sudo apt-get remove nodejs卸载干净,再执行上面的安装,避免多版本冲突导致node -v显示的还是旧版本。

2.3 一个容易忽略的点:WSL2 的常驻性

WSL2 里的服务不会因为你关掉终端窗口就自动后台常驻。Open Claw 的网关是跑在 WSL2 里的一个进程,一旦你关闭所有 WSL 终端,网关就断了,飞书那边自然也就没响应。这一点我在第一次测试时踩得很惨:装完能用,第二天开机发现飞书机器人不回消息,排查半天才想起来是 WSL 没启动。

所以后面每次重启电脑,你都需要重新进入 WSL,手动把网关服务拉起来。这个操作在第五节会给出具体命令。

3. 安装 Open Claw 与可复制配置片段

环境就绪后,安装本身其实很快,麻烦的是配置向导里的各种选择。这一节我把每一步的选择和背后的含义都写清楚,你可以照着抄。

3.1 一键安装脚本

在 WSL2 终端里执行官方安装命令:

curl -fsSL https://openclaw.ai/install.sh | bash

这个脚本会自动检测系统环境、安装缺失依赖、全局部署 Open Claw,然后启动配置向导。中途会有安全提示,输入yes确认。接着进入交互式配置,下面是我实际走下来的选择路径。

网关类型选择local,也就是本地网关。这一步决定了 Open Claw 是跑在你本机还是连远程,初次体验选 local 就对了。

3.2 模型认证配置

接下来是 AI 模型认证。我这里用的是智谱 AI 的 Coding-Plan-CN 方案,你需要先在智谱开放平台创建一个 API Key,然后粘贴到向导里。模型版本要选你实际有权限调用的,比如zai/glm-4.6v。如果你用的是其他模型服务商,逻辑一样:拿到 API Key,选对应模型 ID。

这里其实有个更省事的思路。如果你不想在多个平台之间来回切换管理 Key,可以用 TaoToken 这类聚合入口统一管理模型调用。它的 API 地址是https://taotoken.net/api,在配置模型认证时把 Base URL 指向它,Key 用你在 TaoToken 控制台生成的即可。这样后面换模型、查用量都在一个地方,不用每个平台单独登录。具体操作是:先在 TaoToken 控制台创建一个 API Key,然后在 Open Claw 的模型认证环节选择自定义 Base URL,填入https://taotoken.net/api,再把 Key 粘贴进去,模型 ID 按你实际要用的填。

3.3 通信渠道与 Skills 的取舍

向导走到 IM 配置时,可以先跳过,因为我们后面要单独配飞书。Skills 安装环节,用空格键选中你想要的技能,回车提交,安装方式选 npm。我一开始只选了两个基础技能,后面按需再加。

API key 绑定和 hooks 安装这两步,初次体验可以全部跳过。Open Claw 自带的三个 hooks 分别是:session-memory在你发/new时把会话上下文保存到工作区;command-logger把所有命令事件记录到commands.log;boot-md在网关启动时运行BOOT.md。这些后面有需要再开。

3.4 关键配置文件片段

Open Claw 的配置最终会落到一个 JSON 文件里,路径通常在~/.openclaw/config.json(WSL2 里的家目录)。如果你想像我一样手动核对或修改,可以参考下面这个结构。注意路径和字段名要和你的实际安装保持一致:

{ "gateway": { "type": "local", "port": 18789, "auth": { "token": "你的网关Token" } }, "models": { "provider": "custom", "baseUrl": "https://taotoken.net/api", "apiKey": "你的TaoToken Key", "modelId": "zai/glm-4.6v" }, "channels": { "feishu": { "appId": "cli_xxxxxxxx", "appSecret": "xxxxxxxxxxxxxxxx", "connectionMode": "websocket", "region": "cn" } } }

这个片段里三个关键点:gateway.auth.token是 Web 控制台的访问凭证,丢了就得重新生成;models.baseUrl指向你的模型调用入口;channels.feishu里的appId和appSecret来自飞书开放平台。如果你用 Cline MCP 或 Codex 的auth.json方式接入,逻辑是一样的三件套:Base URL、Key、Model ID,缺一不可。

注意:配置文件里的 Token 和 Key 属于敏感信息,不要提交到 Git 仓库,也不要在公开场合截图。

4. 验证安装:网关、Web UI 与飞书对话

装完不代表能用,必须逐层验证。我按「网关 → Web UI → 飞书」的顺序来,任何一层不通都能快速定位。

4.1 启动网关并检查状态

在 WSL2 终端执行:

openclaw gateway start

这个命令会启动 Open Claw 网关服务,默认监听 18789 端口。然后检查状态:

openclaw gateway status

如果输出显示running,说明网关正常。关闭服务用openclaw gateway stop,建议电脑关机前执行一下,避免下次启动端口占用。

4.2 打开 Web 控制台

这里有个大坑。很多人(包括我)装完后直接在浏览器输入http://127.0.0.1:18789/,结果看到报错:

unauthorized: gateway token missing (open the dashboard URL and paste the token in Control UI settings)

原因是客户端连接 Gateway 时,握手阶段必须携带 Token,Gateway 会拿它和配置里的gateway.auth.token比对,不匹配就直接拒绝 WebSocket 连接,返回 1008 错误。浏览器旧标签页或直接输地址都不会带上有效 Token。

正确做法是执行:

openclaw dashboard

这个命令会输出一个带 Token 的完整 URL,把它复制到浏览器打开,就能进入控制台。在控制面板里发一条测试消息,比如「你好,介绍一下你自己」,能收到正常回复,说明模型配置也对了。

4.3 飞书机器人接入与测试

飞书这边分两步:先在开放平台建应用,再回到 Open Claw 配置渠道。

在飞书开放平台创建一个「企业自建应用」,设置名称和描述。然后添加「机器人」能力,开通机器人所需权限,发布应用。到「凭证管理」页面复制APP Id和APP Secret。

回到 WSL2 终端,执行:

openclaw config

选择配置通信渠道 Channels → Configure/link → 飞书。会提示通过 npm 安装飞书插件,确认即可。然后把刚才复制的APP Id和APP Secret分别粘贴进去。通信方式默认 WebSocket,地区选国内版飞书。群聊使用选 Open,私聊访问策略选 Yes → Open,这样任何人都能私聊机器人,不需要预先配对。

配置完成后,还要在飞书开放平台设置「事件与回调」和「权限管理」,最后发布版本让配置生效。这一步漏了的话,机器人会收不到消息。

全部就绪后,在飞书 App 里给机器人发「你好呀」,会先显示一个表情表示正在回复,等模型生成完才返回答案。到这一步,整条链路就通了。

5. 常见报错排查对照表

这一节把我实际遇到和社区里高频出现的报错整理成对照表,方便你按图索骥。

报错信息可能原因解决动作
Node.js version too lowNode.js 低于 22按 2.2 节重装 22.x,确认node -v
unauthorized: gateway token missing直接访问 18789 端口,未带 Token执行openclaw dashboard获取带 Token 的 URL
1008WebSocket 关闭Token 与配置不匹配核对gateway.auth.token,必要时重新生成
local proxy failed网关未启动或端口被占openclaw gateway status检查,stop后重启
reading choices相关解析错误模型返回格式异常或模型 ID 不对核对modelId是否为可用版本
飞书机器人无响应事件订阅/权限未发布回开放平台检查事件与回调、重新发布版本
OAuth相关失败凭证过期或权限范围不足重新生成 App Secret,检查权限勾选
WSL 关闭后服务断WSL2 不常驻每次开机重新wsl进入并openclaw gateway start

几个重点展开说。local proxy failed这个报错我遇到过一次,当时是因为我同时开了两个 WSL 终端,一个已经启动了网关,另一个又执行start,端口冲突。解决方法是先openclaw gateway stop,确认没有残留进程,再重新start。

飞书无响应是最常见的,九成是开放平台那边「事件与回调」没配或者版本没发布。飞书的机制是:你改了权限或事件订阅,必须重新发布版本才生效,光保存不算。

还有一个隐蔽的坑:如果你在配置模型时用的是自定义 Base URL(比如指向 TaoToken 的https://taotoken.net/api),但 Key 填错或额度不足,表现可能是「消息发出去了但一直转圈」,而不是明确报错。这时候去 TaoToken 控制台看一下调用记录和余额,能快速排除。

6. 后续玩法与接入入口

跑通之后,我试了几个有意思的操作。最直观的是让 Open Claw 访问 Windows 的 D 盘文件——因为 WSL2 默认挂载了/mnt/d,所以它能直接读到。我让它找桌面并列出文件,没问题;让它改文件内容,也能改,但这里要小心:它默认是覆盖而不是追加,我第一次测试时原来的内容被清空了。所以涉及写操作,建议先备份,或者明确告诉它「追加到文件末尾」。

图片方面,它能读取图片的大小、修改日期等元信息,但暂时没法直接把图片以图片形式发回飞书,这个可能需要额外装 Skills 才能实现。

如果你也想从零搭一套,建议按这个顺序:先把 WSL2 和 Node.js 22 装好,这是所有后续步骤的前提;然后跑安装脚本,模型认证环节可以用 TaoToken 统一管理 Key,Base URL 填https://taotoken.net/api;网关起来后用openclaw dashboard验证 Web UI;最后接飞书,记得发布版本。

几个常用入口我列一下,方便你直接跳转:

  • 模型对话体验:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model-chat
  • 长期编码与 Agent 场景的 Coding Plan:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding-plan
  • 控制台创建 Key:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=console
  • API Keys 管理:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api-keys
  • 接入文档:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc
  • Claude Code Anthropic 接入:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=claudecode-anthropic

最后提醒一句:WSL2 里的网关不是开机自启的,每次重启电脑后,先wsl进入,再openclaw gateway start,然后openclaw dashboard拿 Token 开控制台。养成这个习惯,就不会出现「昨天还好好的今天怎么不回消息」的情况了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询