
























真实记录我在树莓派上探索OpenClaw的过程——不美化、不炫技,只有真实的踩坑和惊喜。
作为一名后端开发者,我的技术栈从C#开始,逐渐学会了VUE,变成了全栈开发。后来也学习了Python,也用Java开发企业级应用。但是最近这几年,随着AI的发展,从ChatGPT到Kimi,从在VsCode中对话,到在Cursor中编程,从学会使用Claude Code开始,我已经变成了AI全栈开发者。最近OpenClaw也很火,而我也很羡慕钢铁侠中的贾维斯,于是我开始探索一个不同的方向:把AI助手部署在自己的树莓派上。
为什么是树莓派?
听起来很完美,对吧?
但实际在树莓派上安装和配置OpenClaw的过程中,我踩了不少坑。下面,我想记录真实的探索过程。
树莓派的系统环境和普通的x86服务器不太一样,这点在安装时给了我不少惊喜。
坑1:Python版本不兼容
树莓派默认安装的是Python 3.7,但OpenClaw需要Python 3.8+。
# 检查Python版本
python3 --version
# Python 3.7.3
# 安装Python 3.8+
sudo apt update
sudo apt install python3.8 python3.8-venv python3-pip
坑2:ARM64架构的Node.js安装
OpenClaw需要Node.js,但树莓派是ARM64架构,普通的x86版本不能用。
解决:
# 下载ARM64版本的Node.js
wget https://nodejs.org/dist/v24.13.0/node-v24.13.0-linux-arm64.tar.xz
# 解压
tar -xf node-v24.13.0-linux-arm64.tar.xz
# 移动到系统目录
sudo mv node-v24.13.0-linux-arm64 /usr/local/node
# 配置环境变量
echo 'export PATH=/usr/local/node/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 验证安装
node --version
# v24.13.0
官方文档说一行命令就能安装:
npm install -g @openclaw/cli
但在树莓派上,遇到了几个问题。
坑3:npm权限问题
第一次安装时报错:EACCES: permission denied
解决:
# 配置npm全局目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
npm install -g @openclaw/cli
坑4:npm安装速度慢
树莓派的性能有限,npm安装速度很慢,甚至会超时。
解决:
# 使用国内镜像
npm config set registry https://registry.npmmirror.com
openclaw init
这步比较顺利,但有个小细节:
坑5:时区配置错误
一开始我没注意时区设置,结果定时任务总是比我预期的时间晚8小时(UTC vs 北京时间)。
解决:
# 检查系统时区
timedatectl status
# 显示:Time zone: UTC
# 设置时区为Asia/Shanghai
sudo timedatectl set-timezone Asia/Shanghai
# 验证
timedatectl status
# 显示:Time zone: Asia/Shanghai (CST, +0800)
我想用钉钉作为主要通讯工具,所以安装了DingTalk插件:
openclaw plugins install dingtalk
坑6:插件配置复杂
安装后需要配置AppKey、AppSecret、企业ID等信息。我在钉钉开发者后台折腾了很久才搞清楚这些参数从哪里获取。
解决:
~/.openclaw/openclaw.json中填入这些信息配置文件示例:
{
"channels": {
"dingtalk": {
"enabled": true,
"clientId": "你的AppKey",
"clientSecret": "你的AppSecret",
"robotCode": "你的机器人编码",
"corpId": "你的企业ID",
"dmPolicy": "open",
"groupPolicy": "open",
"messageType": "card"
}
}
}
openclaw gateway start
坑7:端口冲突
第一次启动时报错:Error: listen EADDRINUSE: address already in use :::18789
检查发现是其他服务占用了端口。
解决:
# 检查端口占用
lsof -i :18789
# 停止占用端口的进程
sudo kill <进程ID>
# 或者修改配置文件中的端口
坑8:树莓派性能限制
启动Gateway后,树莓派的内存占用很高,系统变得卡顿。
解决:
# 在~/.openclaw/openclaw.json中调整并发参数
"agents": {
"defaults": {
"maxConcurrent": 2, // 降低并发数
"subagents": {
"maxConcurrent": 4 // 降低子任务并发数
}
}
}
我想让OpenClaw通过蓝牙音箱播放语音。这在树莓派上实现起来很有意思。
坑9:蓝牙音箱配对
树莓派的蓝牙配置和普通电脑不太一样。
# 安装蓝牙工具
sudo apt install bluez bluez-tools pulseaudio pulseaudio-module-bluetooth
# 启动蓝牙服务
sudo systemctl start bluetooth
# 配置蓝牙
sudo bluetoothctl
# 进入交互模式
[bluetooth]# power on
[bluetooth]# agent on
[bluetooth]# scan on
# 找到设备后
[bluetooth]# pair <设备MAC地址>
[bluetooth]# connect <设备MAC地址>
[bluetooth]# trust <设备MAC地址>
[bluetooth]# exit
问题:配对成功了,但音频输出不到蓝牙音箱。
解决:
# 检查音频输出设备
pactl list sinks short
# 设置默认输出为蓝牙设备
pactl set-default-sink <蓝牙设备名称>
# 测试音频播放
paplay /usr/share/sounds/alsa/Front_Center.wav
现在,我可以对OpenClaw说:
请播放语音:"现在是下午三点,记得休息一下"
它就会通过蓝牙音箱播放出来。
树莓派上的特别之处:
我想让OpenClaw帮我拍照并发送到钉钉。树莓派上接USB摄像头很方便。
坑10:摄像头被占用
树莓派上有个监控服务 motion,它占用了摄像头设备 /dev/video0。
第一次拍照时报错:Could not open video device /dev/video0
解决:
# 停止motion服务
sudo pkill motion
sudo systemctl stop motion
# 检查摄像头
ls /dev/video*
# /dev/video0 /dev/video1
# 拍照
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -frames:v 1 /tmp/photo.jpg -y
# 拍照后重启motion(如果需要)
sudo systemctl start motion
坑11:摄像头分辨率限制
树莓派支持的摄像头格式和分辨率有限。
# 查看摄像头支持的格式
v4l2-ctl --list-formats
# 查看支持的分辨率
v4l2-ctl --list-formats-ext
# 我的icspring camera最高只支持640x480,YUYV格式
拍摄命令需要指定正确的格式:
ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -pix_fmt yuyv422 -frames:v 1 /tmp/photo.jpg -y
现在,我可以对OpenClaw说:
请拍一张照片,并发送到钉钉
几秒后,我就能在钉钉聊天中看到刚刚拍的照片。
树莓派上的特别之处:
我想让OpenClaw帮我发邮件。于是开发了一个email-sender技能。
坑12:SMTP配置陷阱
配置126邮箱的SMTP服务时,我一开始用的是邮箱密码,结果一直报认证错误。
查了半天文档才发现,126邮箱需要用"客户端授权码",而不是邮箱密码。
解决:
配置文件(/home/pi/.openclaw/workspace/config/email.conf):
[SMTP]
host = smtp.126.com
port = 465
username = ren8179@126.com
password = QHyjTYHm8w3QVpi6 # 客户端授权码,不是邮箱密码
Python发送脚本:
import smtplib
from email.mime.text import MIMEText
import configparser
def send_email(to, subject, content):
config = configparser.ConfigParser()
config.read('/home/pi/.openclaw/workspace/config/email.conf')
smtp_host = config['SMTP']['host']
smtp_port = config['SMTP']['port']
username = config['SMTP']['username']
password = config['SMTP']['password']
msg = MIMEText(content)
msg['From'] = username
msg['To'] = to
msg['Subject'] = subject
with smtplib.SMTP_SSL(smtp_host, smtp_port) as server:
server.login(username, password)
server.send_message(msg)
现在,我可以对OpenClaw说:
请发送邮件到ren8179@126.com,主题是"测试",内容是"OpenClaw邮件发送功能测试"
几秒后,邮件就发送成功了。
树莓派上的特别之处:
这是OpenClaw最强大的功能之一。内置的Cron调度器让我可以设置各种自动化任务。
坑13:Cron表达式理解错误
一开始我不太理解Cron表达式的格式,导致任务执行时间和预期不符。
比如,我想设置"每天早上8点执行",我写成了:
"expr": "0 8 * * *"
结果发现是在UTC时间8点执行,不是北京时间8点。
解决:
在配置文件中明确指定时区:
{
"schedule": {
"kind": "cron",
"expr": "0 8 * * *",
"tz": "Asia/Shanghai" // 明确指定时区
}
}
现在,我可以设置各种自动化任务:
早间简报示例:
{
"id": "morning-report",
"name": "早间简报",
"schedule": {
"kind": "cron",
"expr": "0 8 * * *",
"tz": "Asia/Shanghai"
},
"payload": {
"kind": "agentTurn",
"message": "请生成今天的早间简报,包括:\n1. 昨夜完成的工作\n2. 系统状态\n3. 今日建议\n\n发送到钉钉"
}
}
树莓派上的特别之处:
OpenClaw运行在树莓派上,内存占用是个问题。
解决方案:
降低并发数:
"agents": {
"defaults": {
"maxConcurrent": 2,
"subagents": {
"maxConcurrent": 4
}
}
}
启用会话压缩:
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard",
"maxTokens": 200000
}
}
}
定期清理旧会话:
openclaw sessions cleanup --older-than 1d
OpenClaw会话日志会占用大量磁盘空间。
解决方案:
# 设置日志轮转
sudo vim /etc/logrotate.d/openclaw
/home/pi/.openclaw/agents/main/sessions/*.jsonl {
daily
rotate 7
compress
delaycompress
missingok
notifempty
}
OpenClaw持续运行会让树莓派发热,影响性能。
解决方案:
# 安装散热监控
sudo apt install lm-sensors
# 查看温度
sensors
# 安装散热风扇
# 树莓派4B强烈建议安装主动散热
# 配置CPU频率调节
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
OpenClaw最让我惊喜的,是它的"主动性"。
传统的AI助手,是"被动式"的:
OpenClaw的设计理念是"主动式AI助手":
我设置了一个每日早间简报,每天早上8点自动发送到钉钉。内容包括:
每天早上醒来,打开钉钉,就能看到AI助手已经帮我整理好了所有重要信息。这种感觉,真的像有一个"私人助理"在默默为我工作。
树莓派上的优势:
以前我觉得AI必须在云端运行,因为:
在树莓派上运行OpenClaw后,我的想法改变了:
AI不是只能在云端,也可以在边缘设备上运行。
优势:
基于树莓派+OpenClaw,可以做很多事情:
这篇文章,记录了我在树莓派上安装和配置OpenClaw的真实过程。
真实体验总结:
给想尝试的朋友的建议:
如果你也想在树莓派上玩AI助手,我的建议是:
下一步计划:
本文是真实的探索记录,没有美化,没有技术炫技。只是一个后端开发者在树莓派上探索AI助手的踩坑经历。
发布日期: 2026-02-07
作者: 任琪
标签: #AI工具 #OpenClaw #树莓派 #后端开发 #实践经验 #本地化部署 #智能家居
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。