
1. 为什么要在本地跑 OpenClaw 并接飞书OpenClaw 是一个可以跑在自己电脑上的 AI 助手网关它能做的事情很直接把大模型的对话能力接到你日常用的聊天工具里让 AI 变成团队协作流程的一部分。本地安装部署的好处是数据不出内网、模型和 Key 都由自己掌控适合需要把 AI 工具接入企业协作平台的开发者。而飞书 API 作为国内团队高频使用的协作入口把 OpenClaw 和飞书打通之后你就能在飞书群里直接 机器人提问、让 AI 读取消息并回复甚至把编码任务丢给它处理。这篇教程聚焦一条完整链路从 OpenClaw 本地安装部署开始到用 TaoToken 统一 Key 配置模型通道再到飞书开放平台创建应用、填写 config.toml 与 settings.json、最后做连通性验证。整套流程我在本地环境实测跑通过中间踩过的坑会一并写出来。你不需要事先懂飞书机器人开发只要跟着步骤走就能在本地把消息收发跑起来。适合谁看手里有一台 Windows、macOS 或 Linux 机器想给团队搭一个私有 AI 助手的开发者已经在用 OpenClaw 但卡在飞书接入这一步的人以及希望用统一 Key 管理多个模型通道、不想在配置文件里到处塞不同厂商密钥的运维同学。2. 前置准备TaoToken 统一 Key 与飞书应用2.1 环境依赖检查OpenClaw 对 Node.js 版本有硬性要求低于 v22 会在启动阶段直接报错。先在终端确认版本node -v # 期望输出 v22.x 或更高推荐 v24 LTS git --version python3 --version如果 Node.js 版本不够去官网下载 LTS 版本覆盖安装即可。Windows 用户建议在 WSL2 里操作路径和权限问题会少很多直接用 PowerShell 也能跑但涉及文件监听的功能偶尔会有差异。2.2 安装 OpenClawmacOS 和 Linux 用一键脚本curl -fsSL https://openclaw.ai/install.sh | bashWindows PowerShell 用管理员身份执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb https://openclaw.ai/install.ps1 | iex已经装好 Node.js 的环境也可以走 npmnpm install -g openclawlatest openclaw --version看到版本号输出就说明安装成功。接着运行初始化向导openclaw onboard向导里会问几个问题安全风险确认选 Yes模式选 QuickStart模型提供商这一步先随便选一个后面我们会用 TaoToken 的配置覆盖它通信渠道选 Skip for now飞书我们手动配技能安装选 No避免依赖冲突。2.3 获取 TaoToken 统一 KeyTaoToken 的作用是把多个模型通道收敛到一个 Key 上你不需要在 OpenClaw 里为每个厂商单独维护密钥。打开控制台创建 API Keyhttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_feishu创建后复制那串以sk-开头的 Key先存到本地临时文件里。接口地址统一用https://taotoken.net/api注意这个地址后面不要加 UTM 参数配置里写干净的基础地址就行。如果你还没决定用哪个模型可以先去模型对话页面试一下响应速度https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_feishu2.4 飞书开放平台创建应用登录飞书开放平台创建一个企业自建应用。创建完成后进入应用详情拿到两个关键凭证App ID 和 App Secret。这两个值后面要填进 OpenClaw 的配置文件。然后在「权限管理」里开通机器人收发消息所需的权限至少包括接收消息、发送消息、以应用身份读取用户信息。权限开通后需要发布版本并等待管理员审核企业内部应用通常几分钟就能通过。最后在「事件订阅」里配置请求地址这个地址指向你本地 OpenClaw 的飞书回调端口。本地环境没有公网 IP所以需要用一个内网穿透工具把本地端口暴露出去或者把 OpenClaw 部署在一台有公网入口的机器上。这一步是飞书 API 能否连通的关键很多人卡在这里就是因为回调地址填了127.0.0.1飞书服务器根本访问不到。3. 可复制配置config.toml 与 settings.json3.1 config.toml 模型通道配置OpenClaw 的主配置文件在~/.openclaw/config.toml。用编辑器打开把模型提供商指向 TaoToken[provider] name taotoken base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 default_model claude-sonnet-4-5 [provider.options] timeout 120 max_retries 3这里base_url只写到/api不要带任何查询参数。default_model填你在 TaoToken 控制台里确认可用的模型名。如果你同时想保留本地 Ollama 作为备用通道可以再加一段[provider.fallback] name ollama base_url http://127.0.0.1:11434 default_model glm-4.7-flash这样主通道超时或报错时会自动切到本地模型适合对稳定性要求高的场景。3.2 settings.json 飞书通道配置飞书相关的配置写在~/.openclaw/settings.json。这个文件如果不存在就手动创建{ channels: { feishu: { enabled: true, app_id: cli_你的AppID, app_secret: 你的AppSecret, verification_token: 你的VerificationToken, encrypt_key: 你的EncryptKey, callback_path: /feishu/events, port: 18790, bot_name: openclaw-bot } }, gateway: { bind: loopback, port: 18789 } }几个字段说明一下。verification_token和encrypt_key在飞书开放平台的事件订阅页面能找到如果没开启加密可以留空但建议开启。callback_path要和你在飞书后台填的请求地址路径一致。port是飞书回调监听的端口和 Web 界面的 18789 分开避免冲突。gateway.bind默认是loopback只允许本机访问。如果你要把 OpenClaw 部署在服务器上让飞书直接回调改成lan或具体网卡地址。本地开发配合内网穿透的话保持loopback就行穿透工具会把外部请求转发到本机。3.3 配置校验改完两个文件后先跑一次健康检查openclaw doctor这个命令会逐项检查 Node 版本、配置文件语法、端口占用、模型通道连通性。如果config.toml里有拼写错误它会直接指出行号。确认没有红色报错后重启网关openclaw gateway restart openclaw statusstatus里应该能看到provider: taotoken和channel: feishu都是 running 状态。4. 验证请求从模型对话到飞书消息收发4.1 先验证模型通道在动飞书之前先确认 TaoToken 这条通道是通的。用 curl 直接打一次对话接口curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-5, messages: [{role: user, content: 回复两个字通了}] }返回 JSON 里choices[0].message.content有内容说明 Key 和地址都没问题。如果返回 401检查 Key 是否复制完整返回 404检查base_url是不是多写了路径。4.2 验证飞书回调启动 OpenClaw 后飞书会向你配置的请求地址发送一个 challenge 验证请求。你可以在 OpenClaw 日志里看到openclaw logs --follow正常情况会打印feishu challenge verified。如果一直没收到回到飞书开放平台检查请求地址是否可达。本地环境用内网穿透工具时确认穿透域名和端口映射正确并且callback_path和后台填的路径完全一致。4.3 在飞书里发第一条消息把机器人拉进一个测试群 它发一句话。OpenClaw 收到事件后会调用 TaoToken 通道请求模型再把回复发回群里。整个过程在日志里能看到三段event received、provider request、message sent。如果消息发出去了但机器人没回先看日志里有没有provider request。没有的话说明事件没进来问题在飞书回调有的话说明模型通道报错回去检查 TaoToken 配置。4.4 长期编码场景的通道选择如果你打算让 OpenClaw 承担长期的编码任务或者跑 Agent 流程单次对话的按量计费可能不够划算。TaoToken 的 Coding Plan 提供包月通道适合高频调用https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_feishu开通后在config.toml里把api_key换成 Coding Plan 对应的 Key 即可base_url不变。5. 本篇常见错误排查5.1 Node 版本过低导致启动失败报错长这样Error: OpenClaw requires Node.js 22。解决办法是升级 Node。用 nvm 的话nvm install 24 nvm use 24 openclaw gateway restartWindows 用户如果装了多个 Node 版本确认where node指向的是新版本。5.2 飞书回调 404 或 challenge 失败最常见的原因是callback_path和飞书后台填的路径不一致。比如配置里写的是/feishu/events后台填的是/feishu/event差一个字母就通不过。另一个原因是端口没对上settings.json里port是 18790穿透工具映射的却是 18789请求打到 Web 界面自然 404。5.3 TaoToken 返回 401 或 403先确认 Key 没有多余空格。复制的时候很容易带上换行符用echo -n sk-xxx | wc -c检查长度。如果 Key 没问题去控制台确认这个 Key 有没有绑定可用的模型通道以及账户余额是否充足。5.4 消息重复回复飞书事件订阅在超时后会重试如果 OpenClaw 处理时间超过飞书等待阈值同一条消息会被投递多次。解决办法是在settings.json里开启去重{ channels: { feishu: { dedup: true, dedup_ttl: 300 } } }dedup_ttl是去重窗口秒数300 秒足够覆盖飞书的重试周期。5.5 本地端口被占用openclaw gateway start报EADDRINUSE说明 18789 或 18790 被别的进程占了。查一下lsof -i :18789 lsof -i :18790把占用进程关掉或者改settings.json里的端口号。改完记得同步更新飞书后台的回调地址和穿透工具的映射。6. 把 Key 和文档收好后续接入更顺整套流程跑下来核心其实就三件事OpenClaw 本地装好、TaoToken 统一 Key 填对位置、飞书回调地址能通。配置文件里的字段看着多但真正需要你改的只有api_key、app_id、app_secret和callback_path这几项其余保持默认即可。后续如果要加新的模型通道不用动飞书那边的配置只在config.toml里加一段 provider 就行。要管理或轮换 Key去控制台操作https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_feishu接入过程中遇到字段含义不清楚的文档里有完整的配置说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_feishu如果你用的是 Claude Code 这类编码工具想让 OpenClaw 和它共用同一个 Key可以参考 Anthropic 兼容接入的配置方式https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_feishu最后提醒一句OpenClaw 对本地文件系统有读写权限别在根目录或者生产环境的重要目录下运行给它单独开一个 workspace 目录出问题也好清理。