跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
JavaScriptNode.jsAI

在 Jetson 上部署 OpenClaw 并接入飞书机器人打造本地 AI 助手

Jetson 部署 OpenClaw 接入飞书机器人实现本地 AI Agent 交互。基于 Ubuntu 20.04 与 CUDA 11.4 环境,通过 Node.js 运行 OpenClaw 服务。关键点包括升级 ARM64 平台 CMake 版本、配置 pnpm 环境变量、以及正确设置 Gateway 服务端与客户端 Token 以解决认证问题。飞书侧需创建企业自建应用,导入消息读写权限,发布应用版本并配置长连接回调。完成配对后,即可在群聊或私聊中调用本地 Agent 执行任务,实现边缘设备远程智能化控制。

未来可期发布于 2026/4/80 浏览
在 Jetson 上部署 OpenClaw 并接入飞书机器人打造本地 AI 助手

1. 背景

最近希望在 Jetson 上部署一个本地 OpenClaw,并通过飞书机器人进行远程交互,从而让闲置的边缘设备秒变高级 AI 助手。整体目标很明确:

  • 在 Jetson 上运行 OpenClaw
  • 接入自己的模型 API(我使用的是阿里的 Coding Plan)
  • 通过飞书群聊 @机器人 或者私聊机器人直接调用本地 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

我使用阿里的 Coding Plan,个人体验觉得挺不错的,速度快,模型也多。这部分配置教程可以参考阿里官方的教程:大模型服务平台百炼控制台


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

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

文章配图

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


12. 配置飞书机器人

第一步:创建飞书应用

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

文章配图

第二步:启用机器人能力

在应用后台启用机器人。

文章配图 文章配图 文章配图

第三步:配置权限

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

文章配图

加入如下内容:

{
  "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"
    ]
  }
}

文章配图

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

文章配图

第四步:发布应用

文章配图 文章配图 文章配图 文章配图

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

第五步:配置 Feishu Channel

运行:

openclaw channels add

选择:

Feishu / Lark

然后输入:

  • App ID
  • App Secret

文章配图

具体过程可以参考官方文档或选项提示。

文章配图 文章配图

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

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

选择:

使用长连接接收事件

文章配图

然后添加事件:

im.message.receive_v1

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

文章配图 文章配图

继续配置回调

文章配图

添加回调

文章配图

第八步:发布应用版本

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

进入:

版本管理与发布

创建版本并发布。

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

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

文章配图

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

文章配图

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

openclaw pairing approve feishu NHMC7CRG

文章配图

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

文章配图


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 + 飞书这套链路其实是很顺的。

如果你也想在 Jetson 上搭一个可远程交互的本地 Agent,这套方案很值得尝试。

目录

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

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

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

更多推荐文章

查看全部
  • Open-Lovable 远程访问配置:结合 cpolar 实现网页克隆工具跨设备使用
  • IDEA 集成 AI 辅助工具推荐:高效不卡顿
  • Flutter 组件 tavily_dart 在鸿蒙平台的适配与 AI 搜索集成实战
  • GitHub Copilot 学生认证流程详解与 Pro 版激活指南
  • SSTI 模板注入漏洞实战:从基础到绕过技巧
  • 鸿蒙 WebView 混合开发:Web 组件内部跨域问题的客户端解决方案
  • Obsidian App 无缝迁移至 Obsidian.nvim:全功能保留指南
  • ComfyUI 实战:串联 Stable Diffusion 与超分模型实现高清生成
  • 基于 LeRobot 的手机 AR 机器人远程控制实践
  • IntelliJ IDEA 快速创建 Spring Boot Web 项目指南
  • Flutter for OpenHarmony 集成 dart_openai 实现 AI 对话功能
  • 基于华为云 DeepSeek 与 Dify 构建智能问数 AI Agent 实践
  • AI 时代初级开发者如何保持创意优势:从代码写手到情境大师
  • 开源智慧云智能教育平台:支持 Web、App 及小程序全端覆盖
  • 后仿真 SDF 反标常见 Warning 分析与处理
  • Qwen3-VL 基于 Llama-Factory 的 QLoRA 微调与部署全流程 (Open-EQA 示例)
  • 服务器端 VS Code Copilot 加载超时:排查与优化指南
  • 基于 Home Assistant 的海尔设备全屋智能集成方案
  • Seedance 2.0.3 新增 Serverless 适配器:飞书机器人低成本集成方案
  • LlamaFactory 多模态大模型微调实战指南

相关免费在线工具

  • RSA密钥对生成器

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

  • Mermaid 预览与可视化编辑

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

  • Keycode 信息

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

  • Escape 与 Native 编解码

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

  • JavaScript / HTML 格式化

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

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online