ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw 云服务器部署 + 飞书机器人接入:7x24 在线 AI 助理全流程

OpenClaw 云服务器部署 + 飞书机器人接入:7x24 在线 AI 助理全流程 先说结论OpenClaw 部署在云服务器、用飞书当对话入口这套组合我试下来稳定性和体验都比我一开始在本地跑好太多。OpenClaw 是一个开源的多平台 AI Agent 框架核心能力是让 AI 在服务器上接收消息、调用模型、执行工具、主动推送结果飞书这边的自建应用机器人接口足够成熟单聊、群聊、多维表格、文件消息都能打通。这篇文章就是把我的完整操作过程摊开来讲从买服务器开始到环境配置、OpenClaw 安装、飞书应用权限、事件订阅、消息收发再到发表格、查日志、排故障每一步给出能直接照做的命令和配置最后还有我踩过的几个坑。适合两种人想给自己搞一个 7x24 在线 AI 助理的开发者以及已经用飞书协作、想把 AI 以机器人身份拉进工作群的团队。1. 为什么我把 OpenClaw 搬上云服务器再用飞书当入口1.1 本地跑的痛点我最初是在自己的 Windows 电脑上跑 OpenClaw。白天还好一到晚上问题就来了电脑休眠助手直接掉线家里宽带 IP 变动飞书回调地址跟着失效我还要时不时腾出内存给它跑模型机器卡得怀疑人生。最难受的是OpenClaw 这类 Agent 的价值在于随时在线、随时执行本地机器天然做不到这一点除非你 24 小时不关机不改网络这显然不现实。换到云服务器之后这些痛点全部消失服务器有独立公网环境不会因为家里断电断网掉线资源是独立的跑模型不会影响我本地工作而且服务器可以同时跑 OpenClaw、Ollama、数据库等一堆服务后续扩展也不用手忙脚乱。对我这种想把 AI 助理当团队基础设施来用的人云部署几乎是唯一解。1.2 为什么入口选飞书而不是 Telegram 或 SlackOpenClaw 支持不少消息渠道我也试过接 Telegram效果不错但真正落到日常使用还是飞书最顺手。原因有三第一飞书是国内团队协作的主流工具手机、电脑客户端都有通知推送及时第二机器人接口成熟支持单聊、群聊、机器人触发还内置了多维表格Bitable这样的数据能力这对 AI 助理来说太关键了第三你不需要给用户装任何额外软件大家本来就在飞书里拉个机器人进群就能用落地成本极低。1.3 整体架构理解这套方案的架构其实很简单一句话就能说清用户通过飞书客户端和机器人对话飞书开放平台把消息事件下发给 OpenClawOpenClaw 调用大模型 API 或本地 Ollama 处理任务再把结果通过飞书 API 回传。关键点在于 OpenClaw 到飞书这层用的是长连接WebSocket而不是传统的 Webhook 回调所以云服务器不需要对外开放公网端口也不需要申请域名、配反向代理安全性和部署难度都好很多。组件作用部署位置OpenClaw 核心接收消息、调度模型、执行技能云服务器大模型 API / Ollama提供推理算力云 API 或本地服务飞书开放平台承担机器人事件订阅、消息收发官方云端飞书客户端用户对话入口手机 / 电脑2. 服务器选型与基础环境2C4G 起步Node.js 是刚需2.1 服务器配置怎么定先说结论只接 API 调用大模型的话2 核 4G 内存的服务器就够用想要在同一台机器上跑 Ollama 本地模型建议 4 核 8G 起步跑 7B 量化模型勉强可以更大参数就得上带 GPU 的实例了。使用场景CPU内存磁盘说明纯 API 模式2 核4G40G SSDOpenClaw pm2 足够日常够稳API Ollama 7B 量化4 核8G80G SSD小模型推理勉强可用别开太多并发Ollama 14B 以上GPU 实例16G100GCPU 推理太慢不推荐硬扛操作系统我建议直接选 Ubuntu 22.04 LTS原因没有花头社区资料多、Node.js 兼容性好、踩坑时搜得到答案。地域就近选择离你用户近的即可。另外千万记得如果走长连接模式安全组只需要放行 SSH 的 22 端口不需要对公网开放 80/443这能少操很多安全方面的心。2.2 Node.js 与基础工具安装OpenClaw 是 Node.js/TypeScript 项目所以服务器的第一件事就是装 Node.js。最低要求 18我实际用下来 LTS 20 最稳没碰到什么兼容性问题。有人问为什么 node.js 官网要下载 OpenClaw其实不是从官网下载 OpenClaw而是 OpenClaw 运行前必须先有 Node.js 运行时装完 Node 再通过 npm 拉 OpenClaw顺序别搞反。sudo apt update sudo apt upgrade -y sudo apt install -y curl git build-essential curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm alias default 20 node -v npm -v装完 Node 顺手把 pm2 装上它是 Node 进程守护工具后面 OpenClaw 全靠它保持在线npm install -g pm22.3 目录规划与权限很多人装完就直接 root 跑图省事但我不建议。给 OpenClaw 单独建一个普通用户和目录万一某个技能脚本出问题不会把整个服务器搞坏。当然对个人测试场景你可以先用当前用户跑但养成好习惯总没错sudo useradd -m -s /bin/bash openclaw sudo mkdir -p /opt/openclaw sudo chown -R openclaw:openclaw /opt/openclaw我的习惯是把项目放/opt/openclaw配置和数据放~/.openclaw日志统一交给 pm2后续排查问题能省不少时间。3. OpenClaw 安装与最小配置先让服务跑起来3.1 两种安装方式OpenClaw 官方仓库在 GitHub 上搜就能找到安装方式有两种一种是 npm 全局安装适合快速部署、体验核心功能另一种是 git clone 源码后手动构建适合要改源码或深度定制技能的场景。我个人推荐先用 npm 装跑通链路之后需要扩展再切源码方式。# 方式一npm 全局安装 npm install -g openclaw openclaw --version # 方式二git clone 源码 git clone https://github.com/openclaw官方仓库.git /opt/openclaw cd /opt/openclaw npm install3.2 配置文件结构速览OpenClaw 的配置思路是密钥走环境变量、行为走配置文件、扩展走 skills 目录。初始化命令会帮你生成一个骨架openclaw init初始化之后目录里大概会有.env密钥、openclaw.json主配置、skills/技能目录。.env 文件主要放模型 API Key、飞书 App 凭证这类敏感信息主配置则声明用哪个渠道、哪个模型、技能目录在哪。不同版本字段名可能有细微差别但你打开生成的示例文件对照着改就行。3.3 模型接入API 与本地 Ollama 该选哪个很多人问OpenClaw 只能用接入 API 的方式使用算力吗答案不是。OpenClaw 支持两条算力路线云 API 或本地 Ollama。API 路线就是把模型服务商提供的 Key 配进.envOpenAI 兼容接口就填OPENAI_API_KEY和OPENAI_BASE_URL模型名写在配置里。优点是模型质量高、速度快缺点是按 token 计费高频使用时成本心里要有数。Ollama 路线则是在云服务器上再装一个 Ollama拉取开源模型比如 Qwen、Llama 系列OpenClaw 把请求转发到http://localhost:11434/v1这个本地地址。优点是一次性硬件成本跑起来没有 token 费用缺点是对服务器配置要求高普通 CPU 实例跑 7B 模型一次回复可能要等上几十秒。# 在云服务器上安装 Ollama curl -fsSL https://ollama.com/install.sh | sh ollama pull qwen2.5:7b我的建议是先用 API 跑通全部功能确认 OpenClaw 和飞书链路稳定之后再根据需求评估要不要上 Ollama。毕竟部署 AI 助理的第一目标是把流程跑通而不是跟模型较劲。4. 飞书侧准备从自建应用到事件订阅4.1 创建自建应用与机器人飞书开放平台的控制台操作路径比较固定照着走就行登录飞书开放平台进入开发者后台。点击创建企业自建应用填写应用名称和描述。在添加应用能力里选择机器人这会自动在你的应用下创建一个机器人。左侧凭证与基础信息页面能看到 App ID 和 App Secret这两个值后面要填到 OpenClaw 的.env里。这里有个容易忽略的细节不要关闭应用的启用机器人开关否则后面事件订阅配得再好也收不到消息。4.2 权限清单照着勾就行飞书的权限管理是独立的机器人要收消息、发消息、读写多维表格每一项都要单独开权限。权限代码会随平台调整以你当前看到的为准但核心是下面这几项权限代码用途im:message.p2p_msg读取用户单聊发给机器人的消息im:message.group_at_msg读取群聊中 机器人的消息im:chat获取群组基础信息im:resource上传 / 下载消息中的图片、文件bitable:app读写多维表格数据contact:user.base:readonly读取通讯录基本信息用于展示发送者名字勾选权限之后记得点击开通权限并创建一个应用版本发布出去。这里很多人卡住应用不发布机器人实际不生效。发布时可以把可用范围先设成全员或者指定测试人员等调试通过再调整。4.3 事件订阅长连接优先飞书开放平台支持两种接收事件的方式Webhook 回调模式和长连接模式。Webhook 需要提供一个公网可达的 HTTPS 回调地址还要处理 URL 验证、加解密折腾一圈挺累的。长连接模式则完全相反OpenClaw 主动向飞书建立 WebSocket 连接飞书把事件推送到这条连接上云服务器不需要开放任何对外端口。具体操作在应用的事件订阅页面选择使用长连接接收事件然后添加事件im.message.receive_v1这是机器人接收消息的核心事件。长连接模式下加密密钥那栏不填也没关系如果填了OpenClaw 侧也要配同样的密钥少填一项少一个坑。4.4 发布版本事件订阅配好之后最后一步是创建版本并发布。发布时填写版本号、更新说明、可用范围提交后等管理员审核或者如果你的账号是管理员就直接通过。调试期间常见的问题是应用还在测试中状态机器人发消息时灵时不灵先把版本发出来很多问题会自动消失。5. 打通 OpenClaw 与飞书配置、启动、验活5.1 写入飞书凭证在 OpenClaw 的.env文件里加上飞书应用凭证# 飞书应用凭证 FEISHU_APP_IDcli_xxxxxxxx FEISHU_APP_SECRET你的AppSecret注意两点.env文件千万不要提交到 git文件权限最好收紧到当前用户chmod 600 .env是关键操作避免同服务器其他用户能读到密钥。5.2 启动与日志验证配置写完之后启动 OpenClawcd ~/.openclaw pm2 start openclaw --name openclaw pm2 logs openclaw启动几秒后日志里如果出现类似Feishu channel connected或者long connection established的输出说明长连接已经建立OpenClaw 已经能接收飞书事件了。这一步如果没看到相关日志优先确认事件订阅是否选择了长连接模式以及im.message.receive_v1事件是否添加成功。为了让服务器重启后 OpenClaw 自动拉起还需要执行 pm2 的开机自启配置pm2 save pm2 startup5.3 第一次对话要确认的三件事机器人配好了第一次在飞书里发消息之前先确认三件事第一应用版本已发布且你的账号在可用范围内第二事件订阅里im.message.receive_v1已添加第三你要用单聊还是群聊——单聊需要你先主动给机器人发一条消息打开会话群聊则必须在消息里 机器人否则事件不会触发。第一次发你好之后看 pm2 日志是否出现 message received 的记录。如果只是收到事件但没回消息多半是模型侧配置有问题比如 API Key 错误或模型名称不对去.env里核对。如果事件都没收到先用下面命令手动验证飞书 API 连通性curl -I https://open.feishu.cn能正常返回 HTTP 状态码说明服务器到飞书的网络链路没有问题问题基本锁定在应用配置上。6. 让飞书机器人能发表格附件消息与多维表格实战6.1 发送表格附件飞书机器人发送表格最常见的方式是先生成文件再作为资源上传并发送。很多人在这一步卡住是因为不知道消息和文件是两回事文件要先调用上传接口拿到 file_key发送时才引用这个 key。步骤拆开看OpenClaw 在服务器上生成 xlsx 或 csv 文件可以用 Python 的 pandas或者 Node 的 exceljs。调用飞书上传文件接口拿到 file_key。发送消息时使用msg_type: file把 file_key 放进去。# 获取 tenant_access_token curl -X POST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal \ -H Content-Type: application/json \ -d {app_id: cli_xxx, app_secret: xxx} # 上传文件 curl -X POST https://open.feishu.cn/open-apis/im/v1/files \ -H Authorization: Bearer {tenant_access_token} \ -F file_typexlsx \ -F file/tmp/report.xlsx # 发送文件消息 curl -X POST https://open.feishu.cn/open-apis/im/v1/messages \ -H Authorization: Bearer {tenant_access_token} \ -H Content-Type: application/json \ -d {receive_id: ou_xxx, msg_type: file, content: {\file_key\: \xxx\}}6.2 操作飞书多维表格多维表格Bitable是飞书区别于普通 IM 的核心功能OpenClaw 完全可以往里面写数据实现AI 帮你整理结果、团队在表格里协作的效果。读写多维表格的关键是拿到两个 ID文档的 app_token 和具体数据表的 table_id这两个都在多维表格的 URL 里能看到。比较容易被忽略的一步是要把应用添加为多维表格的协作者打开目标多维表格右上角... → 更多 → 高级权限 → 添加应用输入你的应用名称并授予权限。没有这一步OpenClaw 调用 bitable 接口就会报权限错误。# 向多维表格写入记录 curl -X POST https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records \ -H Authorization: Bearer {tenant_access_token} \ -H Content-Type: application/json \ -d { fields: { 任务: 部署 OpenClaw, 状态: 已完成, 负责人: 张三 } }有人问Codex 接入飞书多维表格怎么搞原理和 OpenClaw 一样Codex 只要能调用飞书开放 API或者通过一个中转服务把输出转发给飞书机器人就能写入多维表格。OpenClaw 的优势是把这一步做成了原生能力配置好权限之后在聊天里直接说把刚才的结果写到多维表格它就能自己完成。6.3 表格相关高频问题关于飞书多维表格上下合并这类操作要认清一个现实多维表格不是 Excel原生不支持单元格合并。如果你确实需要合并表头的展示效果正确做法是让 OpenClaw 生成 xlsx 文件再发送而不是在多维表格里硬凑。另外两个常见问题数字写入后变成小数或者被当成文本通常是 JSON 里字段类型不对多维表格的字段有严格类型定义写数字就传 number 类型不要传字符串日期字段则需要传秒级或毫秒级时间戳直接传2025-01-01这种字符串大概率会失败。7. 高频报错排查链路从 WSL 校验到机器人静默7.1 无法安全验证与 WSL 环境报错这个报错是搜索热度最高的一个openclaw 无法安全验证后面还跟着sl2 环境请在 PowerShell 中运行 wsl -- status。先说结论这个报错基本只影响 Windows 本地部署和云服务器方案没关系。Windows 上安装 OpenClaw 时部分版本会依赖 WSL2 作为运行环境。报错出现时打开 PowerShell 依次执行wsl --status wsl --set-default-version 2 wsl --update wsl --shutdown多数情况下执行完这几步WSL2 环境修复之后问题就消失了。如果报错里的无法安全验证指的是 TLS/SSL 证书校验失败比如你的服务器使用了自签名证书那要先解决证书信任问题而不是绕过证书校验。临时调试可以设置NODE_TLS_REJECT_UNAUTHORIZED0但这只是排查手段生产环境千万不要长期关掉。7.2 飞书客户端连不上网络飞书下载下来连接不上网络这个搜索词看着像飞书客户端的问题但有时候根因在服务器侧。如果你在云服务器上发现 OpenClaw 无法连接飞书 API先确认两件事一是服务器 DNS 是否正常手动curl -I https://open.feishu.cn不通就检查/etc/resolv.conf换成云厂商提供的默认 DNS二是系统时间是否准确TLS 握手对时间敏感偏差超过几分钟就会失败执行sudo timedatectl set-ntp true开启自动同步。7.3 机器人收到消息但不回复这是部署完最容易遇到的现象原因通常出在三层现象排查位置处理方式完全没有事件日志事件订阅 / 长连接确认长连接模式已启用、消息事件已添加有日志但模型调用失败.env 模型配置检查 API Key、Base URL、模型名模型正常但没发消息发送权限 / token确认用 tenant_access_token检查 im 资源权限群聊场景还要记得 机器人默认配置下只有被 才会触发回复。单聊第一次没反应检查你是否先主动给机器人发过消息。7.4 表格字段对不上、数字变小数这个坑我踩过两次。用 OpenClaw 往多维表格写入数据后数字变成了一串小数排查半天发现是字段类型不匹配多维表格里的数字字段要求 JSON 里传 number我误传了字符串系统自动做的类型转换把 10 变成了 10.0 展示。解决方式很简单写入前用typeof或脚本强制转换类型数字字段传数字日期字段传时间戳文本字段才传字符串。7.5 云服务器日志时间对不上日志时间不对排查起来非常耽误事。云服务器默认时区通常是 UTC和北京时间差 8 小时。我在排查一次机器人半夜没回消息的问题时对着 UTC 日志怎么都对不上时间线。后来发现只是时区没设置sudo timedatectl set-timezone Asia/Shanghai date改完之后 pm2 日志的时间就和飞书消息时间对上了排查效率直接翻倍。新服务器配置好之后第一件事就是设置时区别等出问题了才想起来。8. 再往前走一步Skill 扩展与多端联动8.1 OpenClaw Skill 怎么扩展OpenClaw 的 Skill技能机制是我最喜欢的部分——它让 AI 助手从聊天机器人变成能干活的工作助理。一个技能本质上就是一段描述 一段脚本OpenClaw 收到用户指令后会根据技能描述判断该调用哪一个然后执行对应的脚本。举个例子我想让飞书机器人能查服务器状态只需要在skills/目录下建一个server_status文件夹里面写一个技能清单文件{ name: server_status, description: 查询服务器 CPU、内存、磁盘占用情况, args: [] }再写一个脚本执行free -h、top -bn1、df -h并把结果拼接成文本。之后在飞书里跟机器人说查一下服务器状态OpenClaw 就能自动命中这个技能并返回结果。技能描述写得越明确模型触发准确率越高这一点在调试时体会很深。8.2 Windows Companion 怎么配有人问OpenClaw Windows Companion 怎么配置这个组件的适用场景是OpenClaw 跑在云服务器但你有些资源只在本机 Windows 上比如本地文件、特定的 Windows 软件。Companion 是一个常驻本机的桥接进程让云端 OpenClaw 能安全地操作本地电脑。配置的核心就三件事服务地址、认证 Token、端口号。本机下载 Companion 后把服务地址指向你云服务器的 OpenClaw 实例填入相同的 Token确保端口一致然后重启双方进程。我的经验是如果不涉及 Windows 专属资源建议不要优先启用 Companion多一个桥接点就多一份排查负担云端能完成的事尽量全放云端。8.3 Termux 安卓部署要点OpenClaw 安卓部署也是高频搜索词不少人是想在手机上跑一个随身助手。以 Termux 方式安装是主流路线从 F-Droid 安装 TermuxPlay 商店版本比较旧然后执行pkg update pkg install nodejs git npm install -g openclaw装完后配置和云服务器基本一致但安卓端有两个天然限制要注意一是手机锁屏后进程容易被系统杀掉要用termux-wake-lock保持唤醒电池优化里把 Termux 设为不限制二是手机网络和 IP 不稳定不适合长期作为生产环境。我个人把安卓端定位成移动调试终端——用来测试技能、检查配置生产任务还是交给云服务器。9. 几点个人体会这套方案我跑了近一个月最常用的组合是云端 2C4G API 模型 飞书单聊和群聊成本很低但体验稳定。最后分享几点实际经验别急着加功能先把消息收发 → 调模型 → 回消息的闭环跑通再逐步加表格、技能、多维表格每加一层能力都要确认日志正常密钥管理要谨慎.env 权限收紧到 600不上传 gitApp Secret 泄露了就到飞书后台重置长连接 pm2 开机自启 时区校准这三件套是部署完能安心睡觉的基础。OpenClaw 迭代很快配置字段可能随版本调整遇到问题先看官方文档再看日志最后再怀疑自己的操作——大多数时候问题都出在这三层里。
返回列表