
1. 泰山派3M-RK3576 上 OpenClaw 飞书通道为什么收不到消息你在泰山派3MRK3576上把 OpenClaw 跑起来了飞书机器人也建好了结果发消息过去石沉大海或者机器人回一句「未配置通道」。这个场景我遇到过不止一次问题基本不在板子性能而在飞书通道的鉴权入口和 settings 里的 endpoint 字段没对上。先说清楚 OpenClaw 飞书通道是什么。它是 OpenClaw 提供的一种和飞书平台集成的方式让你能直接在飞书里跟 OpenClaw 对话机器人理解你的意图、执行操作、再把结果发回飞书。适合谁适合手上有一块 RK3576 这类边缘设备、想把它当成一个随时在线的智能助手入口的人。泰山派3M 这块板子跑 Linux内存和算力足够撑起 OpenClaw 的网关进程飞书通道走的是长连接WebSocket模式不需要你额外暴露公网端口这对板端部署很友好。但「不需要公网端口」不等于「不需要配置」。飞书通道的鉴权分两层一层是飞书应用侧的 App ID / App Secret另一层是 OpenClaw 侧 settings 里的通道配置。很多人只填了前者忘了后者里 endpoint 和鉴权字段的对应关系于是消息能到飞书服务器却进不了板子上的 OpenClaw。我实测下来泰山派3M 上最容易踩的坑有三个一是飞书应用没发布版本就配事件订阅长连接保存直接失败二是 settings 里 endpoint 写成了国际站域名而应用建在国内站三是 App Secret 复制时带了空格。这三个都会让通道「看起来配好了实际不通」。这篇就按「通道配置 鉴权入口」这条线走给你可复制的 settings 片段、飞书侧回调与权限核对清单最后演示一次完整的消息往返验证。目标很明确在板端把飞书通道跑通发一条消息能收到回复。需要说明的是OpenClaw 的模型调用和网关能力可以对接不同的服务端点。如果你希望板端的推理请求走一个统一的入口可以在 settings 里把 endpoint 指向 TaoToken 的 API 地址这样飞书通道收到的消息经过 OpenClaw 处理后模型调用这一段就有了稳定的落点。下面配置片段里我会标出这个位置。2. 泰山派3M 上 OpenClaw 飞书通道的前置准备与鉴权入口定位在动 settings 之前先把飞书侧的东西备齐否则你改完配置也不知道对不对。这一节把前置条件和鉴权入口讲透下一节直接给可复制的配置。2.1 飞书应用侧要拿到什么进飞书开发者后台创建一个企业自建应用。你需要从「凭证与基础信息」页面复制两样东西App ID 和 App Secret。App ID 形如cli_a90f*****89cd9App Secret 是一串更长的字符。这两个就是飞书通道鉴权的第一层凭证。然后添加应用能力按能力添加 → 机器人 → 添加。没有机器人能力消息事件根本不会推给你。权限这块进「权限管理」用批量导入的方式把下面这段 JSON 贴进去。这是 OpenClaw 飞书通道需要的最小权限集合少一个都可能导致消息收不到或发不出{ scopes: { tenant: [ aily:file:read, aily:file:write, application:application.app_message_stats.overview:readonly, application:application:self_manage, application:bot.menu:write, cardkit:card:write, contact:user.employee_id:readonly, corehr:file:download, docs:document.content:read, event:ip_list, im:chat, im:chat.access_event.bot_p2p_chat:read, im:chat.members:bot_access, im:message, im:message.group_at_msg:readonly, im:message.group_msg, im:message.p2p_msg:readonly, im:message:readonly, im:message:send_as_bot, im:resource, sheets:spreadsheet, wiki:wiki:readonly ], user: [ aily:file:read, aily:file:write, im:chat.access_event.bot_p2p_chat:read ] } }导入后先创建一个初始版本并发布。这一步不能省因为事件订阅的配置依赖已发布的应用版本。版本号和说明随便填保存发布即可。2.2 鉴权入口在 settings 的哪个位置OpenClaw 的配置入口是openclaw configure。在泰山派3M 上跑这条命令会进入一个交互式界面。路径是这样的先选 Gateway 运行位置本地部署选 Local然后进 Channels 段再选 Configure/link在通道列表里选 Feishu/Lark。这里有个关键点Feishu 通道是插件形式第一次配置会让你选安装方式。选Download from npm (openclaw/feishu)让它从 npm 拉插件。装完之后才进入真正的鉴权字段填写。鉴权字段分三处第一处是 App ID 和 App Secret直接对应飞书应用的凭证。第二处是站点选择国内应用选Feishu (feishu.cn) - China国际版选 Lark。这个选择决定了 OpenClaw 内部使用的 endpoint 域名选错了长连接就建不起来。第三处是 DM 策略和群聊策略属于访问控制不是鉴权但会影响你能不能收到消息。如果你不走交互式界面想直接改 settings 文件那就要找到 OpenClaw 的配置目录。在泰山派3M 上通常是~/.openclaw/settings.json或项目目录下的settings.json。飞书通道的配置节点在channels.feishu下面鉴权字段是appId、appSecretendpoint 相关字段是domain和baseUrl。下一节给完整片段。2.3 为什么要把 endpoint 指向 TaoTokenOpenClaw 处理飞书消息时如果涉及模型调用需要一个 API 端点。默认配置可能指向公共端点但在板端长期运行时你希望这个端点稳定、可控。TaoToken 提供统一的 API 入口地址是https://taotoken.net/api。在 settings 里把模型调用的 baseUrl 指向它飞书通道收到的消息经过 OpenClaw 编排后推理请求就有了明确落点。这不是必须的但如果你打算让板子长期挂着飞书机器人建议一开始就把 endpoint 规划好省得后面迁移。TaoToken 的 API Key 在控制台创建具体入口在文末 CTA 里给。3. 可复制的 settings 配置片段与飞书侧核对清单这一节是核心。我按「settings 片段 飞书侧清单」两块给你照着填就行。3.1 settings.json 飞书通道片段在泰山派3M 上编辑~/.openclaw/settings.json找到或新增channels节点。下面是一个可复制的飞书通道配置片段字段名和路径与 OpenClaw 实际配置一致{ channels: { feishu: { enabled: true, appId: cli_a90f*****89cd9, appSecret: DAViZXBY*****fMyCV*****nC3Y, domain: feishu.cn, baseUrl: https://taotoken.net/api, connectionMode: websocket, groupPolicy: open, dmPolicy: pairing, requireMention: true } }, model: { baseUrl: https://taotoken.net/api, apiKey: 你的TaoToken API Key, modelId: 你的模型ID } }几个字段说明一下。domain填feishu.cn对应国内站填larksuite.com对应国际站必须和飞书应用创建时的站点一致。connectionMode用websocket这就是长连接模式不需要公网回调地址。baseUrl指向 TaoToken 的 API 地址模型调用走这里。dmPolicy用pairing首次私聊会要求配对码安全一些。如果你用的是 TOML 格式的配置部分 OpenClaw 版本支持等价片段如下[channels.feishu] enabled true appId cli_a90f*****89cd9 appSecret DAViZXBY*****fMyCV*****nC3Y domain feishu.cn baseUrl https://taotoken.net/api connectionMode websocket groupPolicy open dmPolicy pairing requireMention true [model] baseUrl https://taotoken.net/api apiKey 你的TaoToken API Key modelId 你的模型ID注意App Secret 里不要有前后空格复制时特别容易带上。我踩过这个坑排查了半小时才发现是空格问题。3.2 飞书侧回调与权限核对清单settings 填完后回飞书开发者后台逐项核对事件订阅页面选择「使用长连接接收事件WebSocket 模式」添加事件im.message.receive_v1。这是接收消息的核心事件没有它机器人收不到任何消息。注意如果 OpenClaw 网关没启动或通道没配好这个长连接设置会保存失败所以顺序是先配好 OpenClaw 再回来点保存。权限管理页面确认前面那段 JSON 权限已经导入并生效。重点检查im:message、im:message:send_as_bot、im:message.p2p_msg:readonly这三个它们分别对应读消息、以机器人身份发消息、读私聊消息。版本管理与发布页面创建新版本并发布。每次改了权限或事件订阅都要重新发版才生效。发布后飞书里会收到应用提醒点开就能进聊天界面。核对清单可以记成四句话机器人能力加了没权限导入了没长连接事件加了没版本发布了没。四个都打勾飞书侧才算齐。3.3 交互式配置的等价操作如果你不想手改 JSON用openclaw configure走一遍也行。路径是Local → Channels → Configure/link → Feishu/Lark → Download from npm → 填 App ID → 填 App Secret → 选 Feishu (feishu.cn) - China → 群聊策略选 Open → Finished → DM 策略选 Yes → Pairing → Continue。走完之后OpenClaw 会把配置写进 settings 文件。你可以再打开文件确认baseUrl是否指向了 TaoToken交互式界面不一定问你这个字段可能需要手动补。4. 在泰山派3M 上验证飞书通道消息往返配置写完重启 OpenClaw 网关然后做一次完整的消息往返验证。这一节给你具体命令和预期结果。4.1 启动网关并确认通道加载在泰山派3M 上执行openclaw gateway start或者如果你用 systemd 管理sudo systemctl restart openclaw-gateway sudo systemctl status openclaw-gateway看日志里有没有飞书通道加载成功的记录journalctl -u openclaw-gateway -f | grep -i feishu正常会看到类似feishu channel connected或websocket established的输出。如果看到feishu plugin not found说明插件没装好回去跑一遍openclaw configure里的 npm 安装步骤。4.2 飞书侧发消息触发配对打开飞书找到你的机器人应用发一条任意消息比如「你好」。第一次会收到一个配对码。回到泰山派3M 终端运行配对命令openclaw pairing approve 配对码配对成功后再发一条消息测试。我一般用这条你是谁用的什么模型检查下当前运行的设备名字是什么预期结果是机器人回复一段包含模型信息和设备名的文本。设备名应该是泰山派3M 的主机名模型信息取决于你在 settings 里配的 modelId。4.3 用 curl 验证 TaoToken 端点连通性在板端确认模型端点通不通可以单独测一下curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer 你的TaoToken API Key | head -c 500返回模型列表就说明端点和 Key 都没问题。如果这里就报 401那飞书通道里的模型调用也会失败先解决 Key 的问题。4.4 消息往返的完整链路一次成功的往返是这样的飞书发消息 → 飞书服务器通过长连接推给板端 OpenClaw → OpenClaw 解析意图 → 调用 TaoToken API 做推理 → 拿到结果 → 通过飞书 API 发回消息 → 你在飞书看到回复。任何一环断了都会表现为「没反应」。所以验证时不要只看飞书界面要同时看板端日志。日志里能看到消息进入、模型调用、消息发出的每一步。5. 泰山派3M 飞书通道常见报错排查这一节按真实报错来。你在板端大概率会遇到下面几个。5.1 401 Unauthorized这是最常见的。两种可能一是 TaoToken API Key 错了或过期二是飞书 App Secret 填错。先分清是哪个 401。如果日志里报错发生在模型调用阶段那是 TaoToken Key 的问题去控制台重新创建一个 Key更新 settings 里的model.apiKey。如果报错发生在飞书鉴权阶段那是 App Secret 的问题回飞书后台重新复制。排查命令grep -i 401 ~/.openclaw/logs/*.log看报错上下文里是feishu auth还是model request就能定位。5.2 local proxy failed这个报错通常出现在网关启动阶段意思是本地代理连接失败。OpenClaw 的网关默认监听ws://127.0.0.1:18789如果这个端口被占用或者网关没起来就会报这个。检查端口ss -tlnp | grep 18789如果被占用改 settings 里的 gateway 端口或者杀掉占用进程。如果没进程监听说明网关没启动成功看完整日志找原因。5.3 reading choices 相关报错这个报错一般出现在模型返回格式不符合预期时。OpenClaw 期望模型返回标准的 choices 结构如果端点返回了非标准格式解析就会失败。确认你的model.baseUrl指向的是兼容 OpenAI 格式的端点。TaoToken 的 API 地址https://taotoken.net/api是兼容的但路径要写对。如果写成https://taotoken.net/api/v1而 OpenClaw 自己会拼/v1就会变成/v1/v1返回 404 或非标准响应。正确写法是 baseUrl 只到/api让 OpenClaw 自己拼后续路径。5.4 OAuth 相关报错飞书通道在某些配置下会走 OAuth 流程获取 tenant_access_token。如果报 OAuth 错误通常是 App ID 和 App Secret 不匹配或者应用没发布。确认三点App ID 和 Secret 是同一个应用的应用已经创建版本并发布权限里有application:application:self_manage。5.5 长连接保存失败在飞书后台点保存长连接设置时报错提示网关未启动或渠道未添加。这就是顺序问题。先在板端把 OpenClaw 网关跑起来、飞书通道配好再回飞书后台保存长连接。验证网关和通道状态openclaw channels list看到 feishu 状态是 enabled 或 connected再去飞书后台操作。5.6 消息发出去了但机器人不回如果飞书显示消息已发送但机器人没回复先看板端日志有没有收到im.message.receive_v1事件。没有的话是事件订阅没生效回飞书后台确认长连接事件已添加且版本已发布。有事件但没回复看模型调用是否成功。如果模型调用超时检查板端网络和 TaoToken 端点连通性。泰山派3M 的网络如果走的是不稳定 Wi-Fi长连接可能断建议用有线网或者确认 Wi-Fi 信号强度。6. 板端跑通飞书通道后的接入与长期使用建议飞书通道跑通之后你在飞书里就能直接跟泰山派3M 上的 OpenClaw 对话了。但要让这套东西长期稳定还有几件事值得做。第一把 OpenClaw 网关做成 systemd 服务开机自启。板子断电重启后不用手动拉起来。写一个 service 文件ExecStart 指向openclaw gateway startRestart 设为 always。第二TaoToken 的 API Key 和飞书 App Secret 不要硬编码在 settings 里明文放着。可以用环境变量注入settings 里引用变量名。OpenClaw 支持${ENV_VAR}这种写法。第三飞书通道的 DM 策略建议保持 pairing不要开 Open。板端设备如果暴露在公网可达的飞书机器人下开放私聊会有安全风险。pairing 模式首次需要配对码之后才放行。第四如果你打算把这个飞书机器人当成长期的编码助手或 Agent 入口可以考虑用 TaoToken 的 Coding Plan它在长期编码场景下有更合适的额度规划。模型对话入口可以用来快速验证模型是否正常响应接入文档里有完整的 API 说明。具体入口我列一下按需取用模型对话验证https://taotoken.net/console/chat?utm_sourcetaotoken_aicg_blog_endutm_contentfeishu_channelutm_campaignrewriteCoding Plan长期编码/Agenthttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentfeishu_channelutm_campaignrewrite控制台创建 API Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentfeishu_channelutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentfeishu_channelutm_campaignrewriteAPI 地址不加 UTMhttps://taotoken.net/api最后说一个实用技巧。泰山派3M 的存储如果是 eMMC日志写多了会占空间。给 OpenClaw 的日志配一个 logrotate按天切割、保留七天。板端设备最怕的就是日志把盘写满然后整个服务挂掉。这个坑我踩过后来加了 logrotate 就再没出过问题。