硬件环境
- 主机: Raspberry Pi 4 (4GB RAM)
- 存储: 移动硬盘 (SSD 迁移后)
- 系统: Raspberry Pi OS (Debian 12 Bookworm, ARM64)
- 网络: 代理节点 (Trojan) 用于 API 访问
核心目标
将闲置树莓派改造为 24 小时在线的本地 AI 中枢,实现邮件自动化、多模型 AI 路由、跨平台通讯集成与知识库管理。
整体架构
scss
┌─────────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ ┌──────────────┐ │
│ │ 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 配置
json
// ~/.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. 微信开机自启服务
ini
# ~/.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
bash
# ~/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. 系统稳定性配置
ini
# /etc/dphys-swapfile 修改
CONF_SWAPSIZE=1024 # 从 100MB 提升到 1GB
# Watchdog 配置
sudo apt install watchdog
sudo systemctl enable watchdog
/etc/watchdog.conf 关键参数:
ini
watchdog-device = /dev/watchdog
max-load-1 = 24
memory-capacity-check = 1
性能基准测试
| 指标 | SD 卡 | SSD | 提升 |
|---|---|---|---|
| 系统启动时间 | 45s | 18s | 2.5x |
apt upgrade 耗时 |
8m 32s | 2m 15s | 3.8x |
| Chromium 启动 | 12s | 4s | 3x |
| 微信冷启动 | 25s | 8s | 3.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 |
| 电费 | - | ~¥3 | Pi 4 空闲 2.5W,满载 6W |
| 总计 | ¥110-200/月 | ¥13-23/月 | 节省 80%+ |
踩坑记录与解决方案
问题 1: 微信 UOS 版启动后立即退出
现象 : 进程启动后 3-5 秒内消失,无错误日志
排查:
bash
# 检查缺失的库
ldd /opt/wechat/wechat | grep "not found"
# 检查图形后端
echo $XDG_SESSION_TYPE # 输出 wayland
解决: Wayland 兼容性不佳,通过 XWayland 适配并显式指定 GDK 后端:
ini
export GDK_BACKEND=x11
export QT_QPA_PLATFORM=xcb
问题 2: 树莓派随机硬卡死
现象 : 系统无响应,SSH 断开,日志突然中断,无 panic 记录
根因 : 默认 swap 仅 100MB,内存不足时 OOM killer 行为异常
解决:
- Swap 扩容至 1GB
- 启用硬件 watchdog,负载过高自动重启
- 调整微信进程 oom_score_adj 避免被优先杀死
问题 3: Playwright Chromium ARM64 兼容性
现象 : 官方文档未明确支持 ARM64 Linux
解决: 使用系统 Chromium + Playwright 连接模式:
php
const browser = await chromium.launch({
executablePath: '/usr/bin/chromium',
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
安全考虑
- 本地优先: 所有对话历史、邮件内容、知识库文档均保存在本地 SSD,不经过第三方
- API Key 管理: 使用 OpenClaw 内置的密钥管理,避免硬编码在脚本中
- 微信方案选择: 优先使用 UOS 官方 ARM 版而非 Hook 方案,降低封号风险
- 网络隔离: 代理仅用于 API 调用,不暴露内网服务
当前状态
系统已稳定运行 48 小时,核心服务状态:
lua
$ 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 原生模块需编译)
对于个人开发者或小型团队,这是一个性价比极高的自托管方案。