1. Windows 本地跑 OpenClaw 接飞书卡点到底在哪如果你在 Windows 上想把 OpenClaw 跑起来再让它通过飞书机器人收发消息大概率会经历这么一条链路PowerShell 里装 WSL、进 Ubuntu 装 OpenClaw、配模型和 API Key、去飞书开放平台建应用、开权限、配事件回调、发布版本、最后回到终端里验证消息能不能推过去。每一步单看都不难但串起来之后最容易翻车的其实不是安装本身而是API Key 分散管理和飞书回调配置这两块。我这次实测的环境是 Windows 11 WSL2 Ubuntu 22.04OpenClaw 走的是官方 install.sh 脚本模型侧统一用 TaoToken 的 Key 来收口。为什么要统一 Key因为 OpenClaw 在配置阶段会问你模型、API Key、Channel 这些信息如果你同时还在用别的编码工具、Agent 工具每个工具都塞一份不同的 Key后面排查问题时你根本分不清是哪个 Key 失效了。TaoToken 的好处是给你一个统一的入口模型对话、Coding Plan、API Keys 都在一个控制台里管理OpenClaw 这边只需要填一次。这篇文章的目标很明确让你在 Windows 本地一次性跑通 OpenClaw 到飞书的消息推送。我会给出可复制的 config.toml 和 settings.json 骨架、TaoToken 统一 Key 的接入步骤以及飞书 webhook 的连通性验证动作。适合谁适合已经在 Windows 上用 WSL 做过开发、想把自己的 Agent 接到飞书里当通知机器人或者对话入口的人。如果你还没装 WSL下面第一步会带你装。先说结论整条链路里飞书那边报app do not have bot是最常见的错误原因基本都出在权限没开全或者版本没重新发布。这个坑我后面会单独拆一节讲。2. 前置准备WSL、OpenClaw 与 TaoToken 统一 Key2.1 PowerShell 装 WSL 并进 Ubuntu在 Windows 上以管理员身份打开 PowerShell执行wsl --install这条命令会默认装 Ubuntu 发行版。装完之后重启首次进入 Ubuntu 会让你设置用户名和密码。如果你机器上已经有 WSL 但版本旧可以先更新wsl --update wsl --set-default-version 2进 Ubuntu 之后先确认网络和基础工具sudo apt update sudo apt install -y curl git注意如果你所在网络环境需要走本地代理端口可以在 PowerShell 里设置环境变量再进 WSL但不要在这里写任何绕过合规网络管理的方式。企业环境请遵循公司网络规范。2.2 安装 OpenClaw在 WSL 的 Ubuntu 终端里执行官方安装脚本curl -fsSL https://openclaw.ai/install.sh | bash安装脚本跑完会进入交互式配置会依次问你模型、API Key、Channel。这里 Channel 先选 FeiShu但先别急着填飞书的 App ID因为飞书应用还没建。你可以先跳过或者随便填后面用配置文件覆盖。安装完成后OpenClaw 会输出一段关键信息包括 Gateway 服务、Control UI 地址、Gateway token。类似这样Gateway service installed. Web UI: http://127.0.0.1:18888/ Gateway WS: ws://127.0.0.1:18888 Gateway: reachable记住这个18888端口和 Gateway token后面验证要用。查看 token 的命令是openclaw config get gateway.auth.token如果 token 丢了可以重新生成openclaw doctor --generate-gateway-token2.3 为什么用 TaoToken 统一 KeyOpenClaw 支持多种模型接入方式配置阶段会让你填 base_url 和 api_key。如果你每个工具都去申请一份 Key管理成本会很高。TaoToken 的思路是把模型调用收口到一个入口你只需要在控制台里管理 API KeysOpenClaw 这边填一次就行。具体操作先到 TaoToken 控制台创建 API Key地址是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。创建完之后复制 Key格式一般是sk-开头。然后 OpenClaw 的模型配置里base_url 填https://taotoken.net/apiapi_key 填你刚复制的那个。如果你后面还要接 Coding Plan 或者做长期编码任务可以在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 里看套餐但这一步不是必须的先把 OpenClaw 跑通再说。3. 可复制配置config.toml 与 settings.json 骨架OpenClaw 的配置分两块一块是 Gateway 和 Agent 的主配置通常在~/.openclaw/openclaw.json另一块是模型和 Channel 的配置可以用config.toml来管理。下面给出一份可以直接改的骨架。3.1 config.toml 模型与飞书配置在~/.openclaw/目录下创建或编辑config.toml[model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoTokenKey model claude-sonnet-4-20250514 timeout 120 [channel.feishu] enabled true app_id cli_你的飞书AppID app_secret 你的飞书AppSecret verification_token 你的VerificationToken encrypt_key 你的EncryptKey connection_mode long_connection [gateway] host 127.0.0.1 port 18888几个关键点说明base_url填 TaoToken 的 API 地址不要带 UTM 参数就是https://taotoken.net/api。api_key填你在控制台创建的那个。model字段按你实际要用的模型填TaoToken 支持的模型列表可以在模型对话页面里看。飞书这块connection_mode一定要选long_connection也就是长连接模式。如果你选 webhook 回调模式就需要公网可访问的地址本地开发会很麻烦。长连接模式是飞书 SDK 主动连出去的本地也能用。3.2 settings.json 补充配置有些 OpenClaw 版本会把部分配置放在settings.json里位置一般在~/.openclaw/settings.json{ gateway: { auth: { token: 你的GatewayToken } }, agents: { main: { model: claude-sonnet-4-20250514, session_store: /home/你的用户名/.openclaw/agents/main/sessions/sessions.json } }, channels: { feishu: { enabled: true, app_id: cli_你的飞书AppID, app_secret: 你的飞书AppSecret, connection_mode: long_connection } } }改完配置后重启 Gatewayopenclaw gateway restart或者直接systemctl --user restart openclaw-gateway.service3.3 飞书开放平台侧配置去 https://open.feishu.cn/ 创建企业自建应用拿到 App ID 和 App Secret。然后做三件事第一开权限。在应用的「权限管理」里把 OpenClaw 文档里要求的权限批量导入。通常包括消息收发、事件订阅、机器人相关权限。批量导入的入口在权限管理页面的「批量导入权限」按钮。第二配事件回调。在「事件与回调」里选择长连接方式订阅im.message.receive_v1这类消息接收事件。注意这里一定要选长连接不要选 webhook 地址。第三发布版本。在「版本管理与发布」里创建版本并发布。每次改完权限或事件配置都要重新创建版本并发布否则配置不生效。注意飞书应用权限和事件配置改完之后必须重新发布版本。很多人配完权限直接去发消息结果报app do not have bot就是因为版本没重新发布。4. 验证请求从本地 OpenClaw 推到飞书4.1 启动 TUI 并确认 Gateway 可达配置改完之后启动 TUIopenclaw tui - ws://127.0.0.1:18888 - agent main - session main如果 Gateway 正常你会看到类似Wake up, my friend!的欢迎语说明 Agent 已经起来了。这时候你可以先在 TUI 里跟它聊一句确认模型调用是通的。如果模型调用报错先检查config.toml里的base_url和api_key。4.2 飞书侧发消息验证在飞书里搜索你创建的应用名称比如openclaw找到这个机器人联系人给它发一条消息。正常情况下OpenClaw 的终端里会打印收到消息的日志然后 Agent 会回复飞书里能看到回复内容。如果飞书里发消息没反应先在终端里看 Gateway 日志journalctl --user -u openclaw-gateway.service -f日志里会显示飞书长连接是否建立成功、有没有收到事件。如果看到Feishu: failed (unknown) - API error: app do not have bot说明飞书应用没有机器人能力或者权限没开全。4.3 用 curl 验证 TaoToken Key 是否可用在 WSL 里可以直接用 curl 测一下 TaoToken 的 API 是否通curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: ping}], max_tokens: 16 }如果返回正常的 JSON 结构说明 Key 和网络都没问题。如果返回 401检查 Key 是否复制完整如果返回 404检查 base_url 是不是写成了带路径的形式。4.4 飞书 webhook 连通性验证虽然我们用的是长连接模式但如果你想额外验证飞书机器人能不能主动推消息可以用飞书的自定义机器人 webhook 做一次测试。在飞书群里添加自定义机器人拿到 webhook 地址然后curl -X POST https://open.feishu.cn/open-apis/bot/v2/hook/你的webhookID \ -H Content-Type: application/json \ -d { msg_type: text, content: {text: OpenClaw 连通性测试} }如果群里收到消息说明飞书侧的网络和机器人配置没问题。这一步是辅助验证不是 OpenClaw 主链路必须的。5. 本篇常见错排查5.1 app do not have bot这是最高频的错误。原因有三个一是飞书应用没有开启机器人能力在「应用功能」里要启用机器人二是权限没开全特别是消息相关权限三是改完配置没重新发布版本。解决顺序先检查机器人能力是否开启再检查权限批量导入是否成功最后重新创建版本并发布。5.2 Gateway 启动失败或端口占用如果18888端口被占用改config.toml里的port字段然后重启 Gateway。查看端口占用ss -tlnp | grep 18888如果是 systemd 服务启动失败看日志systemctl --user status openclaw-gateway.service journalctl --user -u openclaw-gateway.service -n 505.3 模型调用 401 或超时401 一般是 Key 不对检查config.toml里的api_key有没有多余空格。超时的话把timeout调大或者检查 WSL 的网络是否能正常访问外部 API。可以在 WSL 里curl -I https://taotoken.net/api看连通性。5.4 飞书长连接建立失败如果日志里显示长连接连不上检查app_id和app_secret是否填对以及飞书应用是否已经发布。长连接模式不需要公网地址但需要应用有事件订阅权限。另外确认connection_mode写的是long_connection不是webhook。5.5 配置改了不生效OpenClaw 有些配置是启动时加载的改完config.toml或settings.json后必须重启 Gateway。如果重启后还不生效检查是不是有多个配置文件冲突比如openclaw.json和config.toml里都配了模型以哪个为准要看版本。建议统一在一处配置。6. 接入文档与后续动作整条链路跑通之后你手里应该有一个能在飞书里对话的 OpenClaw Agent模型调用走的是 TaoToken 的统一 Key。后续如果你要加更多 Channel、换模型、或者做长期编码任务可以按下面的路径继续排障和接入细节看接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。验证模型是否可用、切换模型去模型对话页面https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。如果你要把 OpenClaw 当长期编码 Agent 用看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。Key 管理在控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 新建 Key 在 API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite 。最后说一个我踩过的坑飞书应用每次改权限或事件配置都要重新发布版本这个动作很容易忘。我当时的做法是在飞书开放平台里把「版本管理与发布」页面收藏到浏览器书签改完配置就顺手点一次创建版本。另外 Gateway token 不要泄露它相当于本地 Control UI 的登录凭证如果暴露了可以用openclaw doctor --generate-gateway-token重新生成。
