惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Security Affairs
PCI Perspectives
PCI Perspectives
I
Intezer
V2EX - 技术
V2EX - 技术
S
Securelist
O
OpenAI News
S
Secure Thoughts
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
P
Proofpoint News Feed
月光博客
月光博客
博客园 - 叶小钗
Hacker News: Ask HN
Hacker News: Ask HN
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Google DeepMind News
Google DeepMind News
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Schneier on Security
Schneier on Security
N
News | PayPal Newsroom
S
Schneier on Security
T
Threatpost
G
Google Developers Blog
P
Palo Alto Networks Blog
P
Privacy & Cybersecurity Law Blog
Microsoft Azure Blog
Microsoft Azure Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cyber Attacks, Cyber Crime and Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
DataBreaches.Net
Cyberwarzone
Cyberwarzone
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Webroot Blog
Webroot Blog
K
Kaspersky official blog
Security Latest
Security Latest
www.infosecurity-magazine.com
www.infosecurity-magazine.com

博客园 - 五蕴非空

AI工具实践日记(二):在 OpenClaw 中调用 OpenCode 进行开发任务 .net core XML 解析帮助类 常用工具类 .net Core 同一接口不同实现的依赖注入 - 五蕴非空 大批量数据操作的性能优化方案 .net core 3.1 配置文件立即更新 为.net Core 3.0 WebApi 创建Linux守护进程 asp.net core 3.0 JObject The collection type 'Newtonsoft.Json.Linq.JObject' is not supported .net Core2.2 WebApi通过OAuth2.0实现微信登录 Asp.net导出Excel文件 Ext.Net 使用总结之GridPanel中的选中行 Ext.Net 使用总结之查询条件中的起始日期 Ext.Net 使用总结之GridPanel的删除事件 使用 NuGet 管理项目库 JavaScript 获取客户端计算机硬件及系统信息 程序员技术练级攻略 ThoughtWorks(中国)程序员读书雷达 Sql 分割 键值对字符串 得到某值对应的名称 Ext.net 中日期格式的计算
AI工具实践日记(一):在树莓派上搭建OpenClaw,一个后端开发者的真实踩坑记录
五蕴非空 · 2026-02-12 · via 博客园 - 五蕴非空

真实记录我在树莓派上探索OpenClaw的过程——不美化、不炫技,只有真实的踩坑和惊喜。


引言

作为一名后端开发者,我的技术栈从C#开始,逐渐学会了VUE,变成了全栈开发。后来也学习了Python,也用Java开发企业级应用。但是最近这几年,随着AI的发展,从ChatGPT到Kimi,从在VsCode中对话,到在Cursor中编程,从学会使用Claude Code开始,我已经变成了AI全栈开发者。最近OpenClaw也很火,而我也很羡慕钢铁侠中的贾维斯,于是我开始探索一个不同的方向:把AI助手部署在自己的树莓派上。

为什么是树莓派?

  1. 数据隐私:AI助手运行在自己的设备上,数据不出本地
  2. 硬件集成:树莓派支持GPIO、摄像头、蓝牙等硬件
  3. 7x24小时运行:低功耗,可以一直待命
  4. 多渠道集成:直接在钉钉、Discord等通讯工具中使用
  5. 自动化能力强:内置Cron调度器,各种定时任务

听起来很完美,对吧?

但实际在树莓派上安装和配置OpenClaw的过程中,我踩了不少坑。下面,我想记录真实的探索过程。


为什么选择在树莓派上部署OpenClaw?

我的树莓派配置

  • 型号:树莓派4B(4GB内存)
  • 系统:Linux 6.12.62+rpt-rpi-v8(ARM64架构)
  • Python版本:3.8+
  • Node.js版本:v24.13.0

选择OpenClaw的原因

  1. 本地化部署:完全在树莓派上运行,数据更安全
  2. 硬件友好:支持摄像头、蓝牙等硬件设备
  3. 多渠道集成:支持钉钉、Discord等,直接在聊天中使用
  4. 技能扩展:可以自己写Python/Shell脚本扩展功能
  5. 定时任务:内置Cron调度器,自动化更方便

在树莓派上安装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

第二步:安装OpenClaw CLI

官方文档说一行命令就能安装:

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插件

我想用钉钉作为主要通讯工具,所以安装了DingTalk插件:

openclaw plugins install dingtalk

坑6:插件配置复杂

安装后需要配置AppKey、AppSecret、企业ID等信息。我在钉钉开发者后台折腾了很久才搞清楚这些参数从哪里获取。

解决:

  1. 登录钉钉开放平台:https://open.dingtalk.com/
  2. 创建应用(机器人应用)
  3. 获取AppKey、AppSecret
  4. 配置企业ID
  5. ~/.openclaw/openclaw.json中填入这些信息

配置文件示例:

{
  "channels": {
    "dingtalk": {
      "enabled": true,
      "clientId": "你的AppKey",
      "clientSecret": "你的AppSecret",
      "robotCode": "你的机器人编码",
      "corpId": "你的企业ID",
      "dmPolicy": "open",
      "groupPolicy": "open",
      "messageType": "card"
    }
  }
}

第五步:启动Gateway服务

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  // 降低子任务并发数
    }
  }
}

在树莓派上的实用场景

场景1:蓝牙TTS语音播放

我想让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说:

请播放语音:"现在是下午三点,记得休息一下"

它就会通过蓝牙音箱播放出来。

树莓派上的特别之处:

  • 蓝牙配置需要手动操作,不像PC那样图形界面方便
  • 脉冲音频(PulseAudio)的配置需要熟悉
  • 但一旦配置好,可以7x24小时待命,随时播报

场景2:摄像头拍照和控制

我想让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说:

请拍一张照片,并发送到钉钉

几秒后,我就能在钉钉聊天中看到刚刚拍的照片。

树莓派上的特别之处:

  • USB摄像头热插拔方便
  • 可以和监控服务motion配合使用
  • 树莓派体积小,可以放在任何需要监控的地方

场景3:邮件发送功能

我想让OpenClaw帮我发邮件。于是开发了一个email-sender技能。

坑12:SMTP配置陷阱

配置126邮箱的SMTP服务时,我一开始用的是邮箱密码,结果一直报认证错误。

查了半天文档才发现,126邮箱需要用"客户端授权码",而不是邮箱密码。

解决:

  1. 登录126邮箱网页版
  2. 进入设置 → POP3/SMTP/IMAP
  3. 开启SMTP服务
  4. 获取授权码
  5. 在配置文件中使用授权码

配置文件(/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邮件发送功能测试"

几秒后,邮件就发送成功了。

树莓派上的特别之处:

  • 24小时在线,随时可以发送邮件
  • 可以配合定时任务,自动发送日报、周报
  • 邮件内容可以基于传感器数据(温度、湿度等)

场景4:定时任务和自动化

这是OpenClaw最强大的功能之一。内置的Cron调度器让我可以设置各种自动化任务。

坑13:Cron表达式理解错误

一开始我不太理解Cron表达式的格式,导致任务执行时间和预期不符。

比如,我想设置"每天早上8点执行",我写成了:

"expr": "0 8 * * *"

结果发现是在UTC时间8点执行,不是北京时间8点。

解决:
在配置文件中明确指定时区:

{
  "schedule": {
    "kind": "cron",
    "expr": "0 8 * * *",
    "tz": "Asia/Shanghai"  // 明确指定时区
  }
}

现在,我可以设置各种自动化任务:

  • 每天8点:发送早间简报到钉钉
  • 每小时整点:播报时间
  • 每天凌晨2点:执行数据备份
  • 工作日上午9点:发送工作提醒

早间简报示例:

{
  "id": "morning-report",
  "name": "早间简报",
  "schedule": {
    "kind": "cron",
    "expr": "0 8 * * *",
    "tz": "Asia/Shanghai"
  },
  "payload": {
    "kind": "agentTurn",
    "message": "请生成今天的早间简报,包括:\n1. 昨夜完成的工作\n2. 系统状态\n3. 今日建议\n\n发送到钉钉"
  }
}

树莓派上的特别之处:

  • 低功耗,24小时运行也不心疼电费
  • 系统稳定,长时间运行不重启
  • 可以和各种硬件定时器配合

树莓派性能优化经验

挑战1:内存占用高

OpenClaw运行在树莓派上,内存占用是个问题。

解决方案:

  1. 降低并发数

    "agents": {
      "defaults": {
        "maxConcurrent": 2,
        "subagents": {
          "maxConcurrent": 4
        }
      }
    }
    
  2. 启用会话压缩

    "agents": {
      "defaults": {
        "compaction": {
          "mode": "safeguard",
          "maxTokens": 200000
        }
      }
    }
    
  3. 定期清理旧会话

    openclaw sessions cleanup --older-than 1d
    

挑战2:磁盘空间不足

OpenClaw会话日志会占用大量磁盘空间。

解决方案:

# 设置日志轮转
sudo vim /etc/logrotate.d/openclaw

/home/pi/.openclaw/agents/main/sessions/*.jsonl {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
}

挑战3:树莓派散热

OpenClaw持续运行会让树莓派发热,影响性能。

解决方案:

# 安装散热监控
sudo apt install lm-sensors

# 查看温度
sensors

# 安装散热风扇
# 树莓派4B强烈建议安装主动散热

# 配置CPU频率调节
echo 'performance' | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

深入体验:主动式AI助手的力量

OpenClaw最让我惊喜的,是它的"主动性"。

传统的AI助手

传统的AI助手,是"被动式"的:

  • 你问什么,它答什么
  • 你不问,它什么都不会做
  • 像一个随时待命的仆人

OpenClaw的主动性

OpenClaw的设计理念是"主动式AI助手":

  • 它会主动检查系统状态
  • 它会主动发送早间简报
  • 它会主动执行定时任务
  • 像一个积极的队友

实际案例:早间简报

我设置了一个每日早间简报,每天早上8点自动发送到钉钉。内容包括:

  • 📝 内容创作进展
  • 🚀 工具优化和创新
  • 📚 学习进度
  • 🔍 行业动态
  • 💡 今日建议

每天早上醒来,打开钉钉,就能看到AI助手已经帮我整理好了所有重要信息。这种感觉,真的像有一个"私人助理"在默默为我工作。

树莓派上的优势:

  • 7x24小时在线,从不错过任何任务
  • 低功耗,一个月电费不到10元
  • 体积小,可以放在任何地方

我的思考:树莓派+AI助手的可能性

以前的想法:AI在云端

以前我觉得AI必须在云端运行,因为:

  • 云端算力强
  • 云端模型大
  • 云端更新快

现在的想法:AI也可以在边缘

在树莓派上运行OpenClaw后,我的想法改变了:

AI不是只能在云端,也可以在边缘设备上运行。

优势:

  1. 数据隐私:所有数据在本地,更安全
  2. 网络独立:不依赖网络,离线也能用(部分功能)
  3. 硬件集成:可以直接控制摄像头、蓝牙、GPIO等
  4. 7x24小时:低功耗,可以一直待命
  5. 成本可控:一次性购买,没有订阅费用

应用场景

基于树莓派+OpenClaw,可以做很多事情:

  1. 智能家居控制中心:控制灯光、温度、安防
  2. 家庭监控:摄像头拍照、异常检测
  3. 语音助手:通过蓝牙音箱播报信息
  4. 自动化任务:定时发送邮件、提醒、备份
  5. 远程监控:通过钉钉随时查看状态
  6. 学习记录:记录学习进度、生成日报周报

写在最后

这篇文章,记录了我在树莓派上安装和配置OpenClaw的真实过程。

真实体验总结:

  1. 安装不轻松:踩了不少坑,但都解决了
  2. 学习曲线陡:需要时间熟悉,但值得
  3. 功能很强大:超出了我的预期
  4. 主动性很强:像一个真正的"队友"
  5. 性能需要优化:树莓派性能有限,需要调整配置
  6. 硬件集成很有趣:摄像头、蓝牙等,探索空间很大

给想尝试的朋友的建议:

如果你也想在树莓派上玩AI助手,我的建议是:

  1. 选择合适的设备:树莓派4B(4GB或8GB内存)
  2. 耐心安装:会遇到各种问题,慢慢解决
  3. 关注性能:注意内存、CPU、磁盘使用情况
  4. 发挥硬件优势:摄像头、蓝牙、GPIO都试试
  5. 记录经验:把踩坑经验记录下来,既帮助自己,也能帮助别人

下一步计划:

  1. 继续探索OpenClaw的高级功能
  2. 开发更多自定义技能
  3. 尝试树莓派+AI的各种组合场景
  4. 记录完整的智能家居项目
  5. 分享更多树莓派+AI的实践经验

参考链接


本文是真实的探索记录,没有美化,没有技术炫技。只是一个后端开发者在树莓派上探索AI助手的踩坑经历。


发布日期: 2026-02-07
作者: 任琪
标签: #AI工具 #OpenClaw #树莓派 #后端开发 #实践经验 #本地化部署 #智能家居