跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具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/9/1266 浏览
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. 总结

更多推荐文章

查看全部
  • 大模型推理中的张量并行:详解 4 种通信计算重叠模式
  • AI 绘画模型格式转换完全指南:从问题诊断到场景化解决方案
  • Venera 开源漫画阅读器使用指南与优化技巧
  • Unreal Engine 5 中 VRM4U 插件使用指南与性能优化
  • ToDesk ToClaw:基于 OpenClaw 的零门槛 AI 桌面自动化助手
  • 基于 nanobot 构建轻量级 QQ AI 机器人及搜索功能扩展实践
  • Python 虚拟环境对比:venv 与 Anaconda/Miniconda 选型指南
  • Ubuntu 24.04 下使用 Waydroid 运行 Android 应用指南
  • GLM-4.7 vLLM Ascend 推理性能优化实战:12 项核心措施
  • 影刀 RPA 完全指南:从零入门到自动化实践
  • Agent AI 探索多模态交互的前沿领域综述
  • 两个月学习大语言模型(LLM)的详细学习计划与实战指南
  • Ceru Music 开源跨平台桌面音乐播放器
  • 行星减速器原理、计算公式及 C++ 实现
  • Neo4j下载安装教程手把手演示(Windows、MacOS、Linux等平台安装包&官方文档、查询语言文档&均附下载链接)
  • MySQL 库级别 DDL 操作详解:创建、修改与删除
  • Node.js+Vue 宠物店管理系统设计与实现
  • Cloudflare 反爬绕过:Canvas/WebGL/WebRTC 多维度浏览器指纹隐身实战
  • Python Addict 库基本用法与特性
  • 豆包 AI 视频去水印方法及工具推荐

相关免费在线工具

  • 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