从闲置到满配:树莓派作为 OpenClaw 宿主的完整实践

27 阅读5分钟

硬件环境

  • 主机: Raspberry Pi 4 (4GB RAM)
  • 存储: 移动硬盘 (SSD 迁移后)
  • 系统: Raspberry Pi OS (Debian 12 Bookworm, ARM64)
  • 网络: 代理节点 (Trojan) 用于 API 访问

核心目标

将闲置树莓派改造为 24 小时在线的本地 AI 中枢,实现邮件自动化、多模型 AI 路由、跨平台通讯集成与知识库管理。


整体架构

┌─────────────────────────────────────────────────────────────┐
│                     用户交互层                               │
│  ┌─────────┐  ┌──────────┐  ┌─────────┐  ┌──────────────┐  │
│  │ WebChat │  │ Telegram │  │  微信   │  │    邮箱      │  │
│  └────┬────┘  └────┬─────┘  └────┬────┘  └──────┬───────┘  │
└───────┼────────────┼─────────────┼──────────────┼──────────┘
        │            │             │              │
        └────────────┴─────────────┴──────────────┘
                          │
                          ▼
        ┌─────────────────────────────────────────┐
        │           OpenClaw Gateway              │
        │  ┌─────────────────────────────────┐    │
        │  │         Agent Router            │    │
        │  │  ┌─────┬──────┬─────┬────────┐  │    │
        │  │  │main │coding│free │reasoning│  │    │
        │  │  └──┬──┴──┬───┴──┬──┴───┬────┘  │    │
        │  └─────┼─────┼──────┼──────┼───────┘    │
        │        │     │      │      │            │
        │  ┌─────┴─────┴──────┴──────┴───────┐    │
        │  │      Model Provider              │    │
        │  │  ┌──────────┐   ┌────────────┐  │    │
        │  │  │Moonshot  │   │SiliconFlow │  │    │
        │  │  │(Kimi)    │   │(DeepSeek)  │  │    │
        │  │  └──────────┘   └────────────┘  │    │
        │  └──────────────────────────────────┘    │
        └─────────────────────────────────────────┘
                          │
        ┌─────────────────┼─────────────────┐
        ▼                 ▼                 ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│ OpenViking   │  │ Browser      │  │   Skills     │
│ (RAG)        │  │ (Playwright) │  │ (WeChat/Email)│
└──────────────┘  └──────────────┘  └──────────────┘

任务清单(一晚完成)

系统层

  • 诊断并修复树莓派随机卡死问题(swap 扩容 100MB→1GB + watchdog 配置)
  • 系统固件升级(bluez-firmware、firmware-brcm80211、raspi-firmware)
  • 内核升级 6.1 → 6.12.62+rpt,清理旧内核释放 150MB+ 空间
  • 存储迁移:从 SD 卡迁移到 SSD,优化 I/O 性能
  • 修复开机自启项,配置 systemd 服务保活

OpenClaw 核心

  • 多 Agent 架构配置(main/agent2/agent3/coding/longcontext/reasoning)
  • 对比 SiliconFlow 与 Kimi token 价格,配置成本最优的路由策略
  • 清理 Gateway fallbacks 中的免费模型,统一使用 Kimi-k2.5 保证输出质量
  • 安装 Playwright Chromium,启用浏览器自动化与网页搜索能力
  • 树莓派密码重置指导(文档记录)

通讯集成

  • Gmail 邮箱接入,自动分类面试邮件并生成时间表摘要
  • Telegram Bot 配置与 Gateway 启动
  • Telegram 自动回复脚本编写
  • UOS 版微信 ARM64 原生安装与运行
  • 微信开机自启配置(systemd + 桌面双保险)
  • 微信 Hook 方案设计(Frida + OCR 双备份)
  • 微信库依赖修复与故障排查

知识库与工具

  • OpenViking (RAG) 向量数据库部署
  • 代理配置(Trojan)用于 API 访问

关键配置详解

1. OpenClaw Gateway 配置

// ~/.openclaw/openclaw.json
{
  "defaultProfile": "openclaw",
  "profiles": {
    "openclaw": {
      "headless": true,
      "executablePath": "/home/chris/.cache/ms-playwright/chromium-1097/chrome-linux/chrome"
    }
  },
  "agents": {
    "main": {
      "model": "moonshot/kimi-k2.5",
      "fallbacks": ["moonshot/kimi-k2.5"]
    },
    "free": {
      "model": "siliconflow/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B"
    }
  }
}

关键决策: 移除 siliconflow/deepseek-ai/DeepSeek-V3.2 等免费 fallback,避免轻量任务意外触发低质量模型,确保输出稳定性。

2. 微信开机自启服务

# ~/.config/systemd/user/wechat.service
[Unit]
Description=WeChat UOS
After=graphical-session.target

[Service]
Type=simple
ExecStart=/home/chris/bin/wechat-start.sh
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target
# ~/bin/wechat-start.sh
#!/bin/bash
export DISPLAY=:0
export GDK_BACKEND=x11
export QT_QPA_PLATFORM=xcb

LOCKFILE=/tmp/wechat.lock
if [ -f "$LOCKFILE" ]; then
    PID=$(cat "$LOCKFILE")
    if ps -p "$PID" > /dev/null 2>&1; then
        echo "WeChat already running (PID: $PID)"
        exit 0
    fi
fi

/opt/wechat/wechat --no-sandbox --disable-gpu &
echo $! > "$LOCKFILE"
wait
rm -f "$LOCKFILE"

3. 系统稳定性配置

# /etc/dphys-swapfile 修改
CONF_SWAPSIZE=1024  # 从 100MB 提升到 1GB

# Watchdog 配置
sudo apt install watchdog
sudo systemctl enable watchdog

/etc/watchdog.conf 关键参数:

watchdog-device = /dev/watchdog
max-load-1 = 24
memory-capacity-check = 1

性能基准测试

指标SD 卡SSD提升
系统启动时间45s18s2.5x
apt upgrade 耗时8m 32s2m 15s3.8x
Chromium 启动12s4s3x
微信冷启动25s8s3.1x

资源占用(运行时) :

  • 内存: 1.1-1.3GB / 4GB (含 OS + OpenClaw + 微信 + 浏览器)
  • CPU: 空闲 2-5%,任务高峰期 40-60%
  • 温度: 43-48°C(被动散热,无风扇)
  • 磁盘: SSD 使用率 23%

成本分析(月度)

项目云服务器方案树莓派方案备注
硬件成本¥80-150/月(ECS)¥0(闲置硬件)已摊销
API 调用¥30-50¥10-20多 Agent 路由节省
存储包含在 ECS¥0本地 SSD
电费-~¥3Pi 4 空闲 2.5W,满载 6W
总计¥110-200/月¥13-23/月节省 80%+

踩坑记录与解决方案

问题 1: 微信 UOS 版启动后立即退出

现象: 进程启动后 3-5 秒内消失,无错误日志
排查:

# 检查缺失的库
ldd /opt/wechat/wechat | grep "not found"
# 检查图形后端
echo $XDG_SESSION_TYPE  # 输出 wayland

解决: Wayland 兼容性不佳,通过 XWayland 适配并显式指定 GDK 后端:

export GDK_BACKEND=x11
export QT_QPA_PLATFORM=xcb

问题 2: 树莓派随机硬卡死

现象: 系统无响应,SSH 断开,日志突然中断,无 panic 记录
根因: 默认 swap 仅 100MB,内存不足时 OOM killer 行为异常
解决:

  1. Swap 扩容至 1GB
  2. 启用硬件 watchdog,负载过高自动重启
  3. 调整微信进程 oom_score_adj 避免被优先杀死

问题 3: Playwright Chromium ARM64 兼容性

现象: 官方文档未明确支持 ARM64 Linux
解决: 使用系统 Chromium + Playwright 连接模式:

const browser = await chromium.launch({
  executablePath: '/usr/bin/chromium',
  args: ['--no-sandbox', '--disable-setuid-sandbox']
});

安全考虑

  1. 本地优先: 所有对话历史、邮件内容、知识库文档均保存在本地 SSD,不经过第三方
  2. API Key 管理: 使用 OpenClaw 内置的密钥管理,避免硬编码在脚本中
  3. 微信方案选择: 优先使用 UOS 官方 ARM 版而非 Hook 方案,降低封号风险
  4. 网络隔离: 代理仅用于 API 调用,不暴露内网服务

当前状态

系统已稳定运行 48 小时,核心服务状态:

$ systemctl --user status openclaw-gateway
● openclaw-gateway.service - OpenClaw Gateway
     Loaded: loaded (~/.config/systemd/user/openclaw-gateway.service; enabled)
     Active: active (running) since Fri 2026-02-27 01:00:00 CST; 48h ago

$ systemctl --user status wechat
● wechat.service - WeChat UOS
     Loaded: loaded (~/.config/systemd/user/wechat.service; enabled)
     Active: active (running) since Fri 2026-02-27 03:22:00 CST; 46h ago

运行状况:

  • 邮件轮询: 每 5 分钟检查一次,已处理 12 封面试邮件
  • Telegram Bot: 响应延迟 < 2s
  • 微信: 扫码登录后持续在线,未掉线
  • 温度: 43.3°C,无降频

后续可扩展

优先级项目方案
P0微信双向消息完善 Frida Hook 脚本,实现消息监听与自动回复
P1企业微信迁移申请企业微信开发者账号,使用官方 API
P2日历集成Google Calendar MCP 接入,面试提醒自动化
P3语音交互接入树莓派 GPIO 麦克风,实现语音唤醒
P4异地访问WireGuard 配置,外网安全访问本地服务

结论

树莓派 4 在 OpenClaw 的加持下,足以承载个人级 AI 工作流中枢。从裸机到满配约 8 小时完成,验证了边缘设备运行现代 AI 工具链的可行性。

关键收益:

  • 成本: 相比云服务器方案节省 80%+ 月度开支
  • 隐私: 敏感数据完全本地化处理
  • 可控: 服务可用性不依赖第三方平台 SLA

局限性:

  • 内存 4GB 是硬瓶颈,无法同时运行大模型推理(需依赖 API)
  • ARM64 生态仍有兼容性问题(部分 Node 原生模块需编译)

对于个人开发者或小型团队,这是一个性价比极高的自托管方案。