跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScriptNode.jsAI

Jetson 部署 OpenClaw 接入飞书机器人实现本地 AI 助手

Jetson 部署 OpenClaw 接入飞书机器人实现本地 AI 助手。环境基于 Ubuntu 20.04 ARM64 CUDA 11.4。需安装 Node.js 20 及 pnpm,解决 CMake 版本过低问题。配置 openclaw.json 设置 Gateway Token 确保客户端与服务端一致。创建飞书企业自建应用,导入权限并启用长连接事件 im.message.receive_v1。发布应用版本后通过 pairing code 完成绑定。常见问题包括依赖编译失败、环境变量未配置、Token 不匹配及飞书应用未发布等。

林间仙子发布于 2026/3/27更新于 2026/6/324 浏览
Jetson 部署 OpenClaw 接入飞书机器人实现本地 AI 助手

1. 背景

在 Jetson 上部署一个本地 OpenClaw,并通过飞书机器人进行远程交互,从而让边缘设备成为高级 AI 助手。整体目标如下:

  • 在 Jetson 上运行 OpenClaw
  • 接入模型 API(使用阿里云百炼)
  • 通过飞书群聊 @机器人或者私聊机器人直接调用本地 Agent

工作流如下:

Feishu Group ↓ Feishu Bot ↓ OpenClaw Gateway (Jetson) ↓ Agent ↓ LLM API ↓ 返回飞书消息 

本文记录从源码部署 OpenClaw,到接通飞书机器人的完整过程,以及过程中踩到的几个关键坑。


2. 环境信息

Jetson 环境
uname -a # 输出 Linux agx229-desktop 5.10.216-tegra #1 SMP PREEMPT Tue Mar 4 01:35:16 PST 2025 aarch64 aarch64 aarch64 GNU/Linux
lsb_release -a # 输出 Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal
nvcc --version # 输出 Cuda compilation tools, release 11.4, V11.4.315
说明

当前平台为:

  • Jetson ARM64
  • Ubuntu 20.04
  • CUDA 11.4

这点很重要,因为后续某些依赖在 ARM64 + Ubuntu 20.04 上会遇到额外兼容性问题。


3. 安装 Node.js 与 pnpm

OpenClaw 是一个 Node.js 项目,因此首先需要准备 Node 环境。

建议使用 Node 20。

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# 重新加载 shell 配置
source ~/.bashrc
# 如果使用 zsh
source ~/.zshrc
# 配置镜像加速下载(可选,建议中国用户使用)
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/
# 安装并使用 Node.js 20
nvm install 20
nvm use 20
# 设为默认版本
nvm alias default 20
# 配置 npm 镜像加速
npm config set registry https://registry.npmmirror.com
# 验证安装
node --version
npm --version

还需要安装 pnpm:

npm install -g pnpm

安装后检查:

pnpm -v

4. 配置 pnpm 环境变量

这一步非常重要。

如果不配置 PNPM_HOME,后面可能出现这些问题:

  • pnpm link --global 报错
  • OpenClaw 自动构建 UI 时提示找不到 pnpm
  • 全局命令不可用

建议将下面内容加入 ~/.bashrc:

# pnpm export PNPM_HOME="/home/agx229/.local/share/pnpm"
case ":$PATH:" in *":$PNPM_HOME:"*) ;; *) export PATH="$PNPM_HOME:$PATH" ;; esac
# pnpm end

保存后执行:

source ~/.bashrc

再验证:

echo $PNPM_HOME
which pnpm

5. 克隆 OpenClaw 源码

cd ~
git clone https://github.com/openclaw/openclaw.git
cd openclaw

6. 解决 Jetson 上 CMake 版本过低的问题

在 Jetson Ubuntu 20.04 上,系统自带的 CMake 往往版本较低。 而 OpenClaw 的某些依赖在编译时要求更高版本的 CMake。

我在安装过程中遇到的典型报错是:

CMake 3.19 or higher is required. You are running version 3.16.3

因此需要手动升级 CMake。

安装新版 CMake
cd ~
wget https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-linux-aarch64.sh
chmod +x cmake-3.31.6-linux-aarch64.sh
sudo ./cmake-3.31.6-linux-aarch64.sh --skip-license --prefix=/usr/local

检查版本:

/usr/local/bin/cmake --version

如果系统仍然找不到新版本,可临时加入 PATH:

export PATH=/usr/local/bin:$PATH
hash -r
cmake --version

必要时可以加入 ~/.bashrc。


7. 安装依赖并编译 OpenClaw

在项目目录执行:

cd ~/openclaw
pnpm install
pnpm build

如果安装过程中出现原生模块编译问题,优先检查:

  • CMake 版本
  • build-essential 是否安装
  • pnpm 是否在 PATH 中

8. 配置模型 API

OpenClaw 通过 ~/.openclaw/openclaw.json 进行配置。

如果目录不存在,先创建:

mkdir -p ~/.openclaw
nano ~/.openclaw/openclaw.json

使用阿里云百炼 API,配置教程可以参考阿里官方文档: 大模型服务平台百炼控制台


9. 配置 Gateway Token

这是本文里一个非常关键的坑。

OpenClaw 的架构不是'CLI 直接调用模型',而是:

CLI / TUI / Logs ↓ Gateway ↓ Agent ↓ Model

所以 CLI 其实是 Gateway 的客户端。 既然是客户端连接服务端,就涉及认证。

为什么要加 token

如果只配置服务端 token,而没有配置客户端 token,就会出现:

unauthorized: gateway token mismatch

因此需要让 gateway 服务端 和 客户端连接配置 使用同一个 token。

通过 ~/.openclaw/openclaw.json 可知如下,推荐配置如下:

{
  "gateway": {
    "mode": "local",
    "auth": {
      "mode": "token",
      "token": "Yours Token"
    },
    "remote": {
      "token": "Yours Token"
    }
  }
}
解释
  • gateway.auth.token:Gateway 服务端认证 token
  • gateway.remote.token:CLI / TUI / logs 等客户端连接 Gateway 时使用的 token

这两个必须一致。


10. 启动 Gateway 服务

先安装 gateway service:

openclaw gateway install

然后启动:

systemctl --user start openclaw-gateway.service

检查状态:

openclaw gateway status

正常情况下会看到类似输出:

Runtime: running
RPC probe: ok
Listening: 127.0.0.1:18789

如果配置修改过,需要重启:

systemctl --user restart openclaw-gateway.service

11. 验证 TUI 是否可用

如果配置正确,可以直接运行:

openclaw tui

若成功,界面会显示已连接,并能直接与模型对话。

TUI Interface

如果出现 token mismatch,基本就是 auth.token 和 remote.token 不一致。


12. 配置飞书机器人

第一步:创建飞书应用

进入飞书开放平台 https://open.feishu.cn/?lang=zh-CN,创建一个企业自建应用。

Create App

第二步:启用机器人能力

在应用后台启用机器人。

Bot Enable 1 Bot Enable 2 Bot Enable 3

第三步:配置权限

在左侧目录树选择'开发配置 > 权限管理',单击'批量导入/导出权限'按钮。

Permissions

加入如下内容:

{
  "scopes": {
    "tenant": [
      "contact:contact.base:readonly",
      "docx:document:readonly",
      "im:chat:read",
      "im:chat:update",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message.pins:read",
      "im:message.pins:write_only",
      "im:message.reactions:read",
      "im:message.reactions:write_only",
      "im:message:readonly",
      "im:message:recall",
      "im:message:send_as_bot",
      "im:message:send_multi_users",
      "im:message:send_sys_msg",
      "im:message:update",
      "im:resource",
      "application:application:self_manage",
      "cardkit:card:write",
      "cardkit:card:read"
    ],
    "user": [
      "contact:user.employee_id:readonly",
      "offline_access",
      "base:app:copy",
      "base:field:create",
      "base:field:delete",
      "base:field:read",
      "base:field:update",
      "base:record:create",
      "base:record:delete",
      "base:record:retrieve",
      "base:record:update",
      "base:table:create",
      "base:table:delete",
      "base:table:read",
      "base:table:update",
      "base:view:read",
      "base:view:write_only",
      "base:app:create",
      "base:app:update",
      "base:app:read",
      "board:whiteboard:node:create",
      "board:whiteboard:node:read",
      "calendar:calendar:read",
      "calendar:calendar.event:create",
      "calendar:calendar.event:delete",
      "calendar:calendar.event:read",
      "calendar:calendar.event:reply",
      "calendar:calendar.event:update",
      "calendar:calendar.free_busy:read",
      "contact:contact.base:readonly",
      "contact:user.base:readonly",
      "contact:user:search",
      "docs:document.comment:create",
      "docs:document.comment:read",
      "docs:document.comment:update",
      "docs:document.media:download",
      "docs:document:copy",
      "docx:document:create",
      "docx:document:readonly",
      "docx:document:write_only",
      "drive:drive.metadata:readonly",
      "drive:file:download",
      "drive:file:upload",
      "im:chat.members:read",
      "im:chat:read",
      "im:message",
      "im:message.group_msg:get_as_user",
      "im:message.p2p_msg:get_as_user",
      "im:message.send_as_user",
      "im:message:readonly",
      "search:docs:read",
      "search:message",
      "space:document:delete",
      "space:document:move",
      "space:document:retrieve",
      "task:comment:read",
      "task:comment:write",
      "task:task:read",
      "task:task:write",
      "task:task:writeonly",
      "task:tasklist:read",
      "task:tasklist:write",
      "wiki:node:copy",
      "wiki:node:create",
      "wiki:node:move",
      "wiki:node:read",
      "wiki:node:retrieve",
      "wiki:space:read",
      "wiki:space:retrieve",
      "wiki:space:write_only"
    ]
  }
}

Permissions Import

在弹窗中确认权限无误后,单击'申请开通'按钮,完成操作。

Apply Access

第四步:发布应用

Publish 1 Publish 2 Publish 3 Publish 4

到此就可以回来 Jetson 去连接我们的飞书机器人了。

第五步:配置 Feishu Channel

运行:

openclaw channels add

选择:

Feishu / Lark

然后输入:

  • App ID
  • App Secret

Channel Config

具体过程可以参考选项。

Config Step 1 Config Step 2

到此就基本完成了 OpenClaw 与飞书机器人的连接了,但是要实现聊天还得再继续配置。

第六步:重启 Gateway
openclaw gateway restart
第七步:配置事件与回调

选择:

使用长连接接收事件

Event Config

然后添加事件:

im.message.receive_v1

这是机器人接收消息所必需的事件。

Event Add Event Confirm

继续配置回调

Callback Config

添加回调

Callback Add

第八步:发布应用版本

这一步非常关键。(这里参考第四步)

很多时候飞书应用配置改了但机器人无效,就是因为没有发布版本。

进入:

版本管理与发布

创建版本并发布。

第九步:配置私聊飞书机器人

在飞书 APP 中找到开发者小助手

Dev Helper

之后给机器人发送任何信息

Send Msg

将 Pairing code 复制然后在 Jetson 终端输入

openclaw pairing approve feishu NHMC7CRG

Pairing

到此,基本就实现了在飞书中直接召唤我们边缘设备干活了,回到飞书,与我们小助手聊天即可。

Chat Result


13. 常见坑总结

坑 1:Jetson 上 CMake 版本过低

会导致依赖编译失败。

坑 2:没有配置 pnpm PATH

会导致全局命令或 UI 构建异常。

坑 3:误以为需要单独安装 Feishu 插件

源码版已经内置,不需要重复安装。

坑 4:没有配置 gateway.remote.token

会导致 CLI 连接 Gateway 时出现 token mismatch。

坑 5:App ID / App Secret 使用了旧应用凭证

这是我这次飞书始终接不通的根因。

坑 6:飞书应用修改后未发布版本

会导致机器人看似配置好了,但实际不生效。


14. 最终效果

完成上述配置后,可以实现:

  • 在 Jetson 上运行 OpenClaw Gateway
  • 接入自己的模型 API
  • 在飞书群中 @机器人
  • 机器人调用本地 Agent 并返回回复

这为后续扩展提供了很好的基础,例如:

  • 远程查询 Jetson 状态
  • 执行自动化任务
  • 调用机器人系统接口
  • 通过飞书统一管理实验设备

15. 总结

这次在 Jetson 上部署 OpenClaw 并接入飞书机器人的过程,整体并不算复杂,但有几个坑非常容易卡住:

  • ARM 平台的依赖编译问题
  • pnpm 环境变量问题
  • Gateway token 机制

只要把这些关键点处理好,OpenClaw + 飞书这套链路其实是很顺的。

目录

  1. 1. 背景
  2. 2. 环境信息
  3. Jetson 环境
  4. 说明
  5. 3. 安装 Node.js 与 pnpm
  6. 安装 nvm
  7. 重新加载 shell 配置
  8. 如果使用 zsh
  9. 配置镜像加速下载(可选,建议中国用户使用)
  10. 安装并使用 Node.js 20
  11. 设为默认版本
  12. 配置 npm 镜像加速
  13. 验证安装
  14. 4. 配置 pnpm 环境变量
  15. pnpm export PNPM_HOME="/home/agx229/.local/share/pnpm"
  16. pnpm end
  17. 5. 克隆 OpenClaw 源码
  18. 6. 解决 Jetson 上 CMake 版本过低的问题
  19. 安装新版 CMake
  20. 7. 安装依赖并编译 OpenClaw
  21. 8. 配置模型 API
  22. 9. 配置 Gateway Token
  23. 为什么要加 token
  24. 解释
  25. 10. 启动 Gateway 服务
  26. 11. 验证 TUI 是否可用
  27. 12. 配置飞书机器人
  28. 第一步:创建飞书应用
  29. 第二步:启用机器人能力
  30. 第三步:配置权限
  31. 第四步:发布应用
  32. 第五步:配置 Feishu Channel
  33. 第六步:重启 Gateway
  34. 第七步:配置事件与回调
  35. 第八步:发布应用版本
  36. 第九步:配置私聊飞书机器人
  37. 13. 常见坑总结
  38. 坑 1:Jetson 上 CMake 版本过低
  39. 坑 2:没有配置 pnpm PATH
  40. 坑 3:误以为需要单独安装 Feishu 插件
  41. 坑 4:没有配置 gateway.remote.token
  42. 坑 5:App ID / App Secret 使用了旧应用凭证
  43. 坑 6:飞书应用修改后未发布版本
  44. 14. 最终效果
  45. 15. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • NXOpen Python API 二次开发环境配置
  • 基于 n8n 与 Web Unlocker 的自动化资讯采集系统构建
  • Claude Code 高级编程技巧与实战项目详解
  • MySQL 数据类型深度解析:选对类型提升性能
  • 成年人自学网络安全技术:难点解析与职业路径指南
  • 无人机地面站 QGroundControl 在 Ubuntu 20.04 下的安装指南
  • AIGC 产品经理转行指南:核心技能与实战项目解析
  • HarmonyOS ArkWeb 开发指南:Hybrid 应用鸿蒙化与 JSBridge
  • KIMI 与文心一言、通义千问能力对比评测
  • Llama 3.1 中文微调版本地部署指南:Ollama 与 HuggingFace 集成
  • SpringBoot 校园志愿者管理系统
  • Python For 循环详解与实战应用
  • Apache Airflow 源码分析:启动机制
  • 《ChatGPT 原理与应用开发》:大模型入门实战指南
  • Python 网络爬虫入门指南与实战案例演示
  • ComfyUI Mixlab 插件 Whisper.available False 报错修复
  • PyInstaller 将 Python 脚本打包为 exe 文件实战指南
  • 即梦 AI 与剪映创作课程资源汇总
  • Python 七大主流就业方向及核心技能解析
  • 计算机专业毕业去向:金融科技岗位选择银行还是券商

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online