把旧手机改成 AI 节点:家庭 Agent 中枢构想
为什么用旧手机
家里退役的 Android 手机(4GB+ 内存,Android 10+)闲置着也是闲置——装个 Operit,挂在家里电源上,就能变成一个常驻的家庭 AI Agent 节点:
- 手机不需要是主力机,闲置功耗低
- 原生 Android 权限深度(UI 自动化、通知监听、Tasker 联动)
- Ubuntu chroot 本地计算,不依赖云端
- HTTP API + Web Chat 暴露出去,任意设备都能调用
核心思路
旧手机 + Operit(常驻前台服务)
↓
HTTP API(开启)+ Web Chat(开启)
↓
接入方:
├── 桌面浏览器(Web Chat 对话 + 远程终端)
├── 其他手机 / 平板(HTTP API 调用)
├── QQ Bot / 微信通知(HTTP API 触发)
├── Home Assistant(HTTP API 联动智能家居)
├── Windows 电脑(Operit 反过来远程)
└── Tasker(旧手机上监听通知触发工作流)
搭建步骤
第一步:设备准备
- 手机:Android 10+,4GB+ 内存,能保持 USB 供电(接在充电器或 USB Hub 上)
- WiFi:固定 IP(路由器里给手机的 MAC 地址分配固定 IP)
- 电池优化:设为「不限制」Operit + 系统设置里关闭休眠(「永不息屏」或「插电时不息屏」)
第二步:Operit 基础配置
- [x] 安装 Operit + 授予无障碍权限
- [x] 至少配置一个本地模型(或云端模型 + 自动回退)
- [x] 开启 Ubuntu 终端 + 基础 apt 包
第三步:开启远程通路
- [x] HTTP API 开启 → 记下 API 地址和 Token
- [x] Web Chat 开启 → 记下访问地址和配对码
- [x] Hook Runner 配置 → 危险操作拦截(防止远程误触)
第四步:接入外部系统
# 测试 HTTP API 通不通
curl -H "Authorization: Bearer $TOKEN" http://<手机IP>:8081/api/v1/status
# 发一条对话请求
curl -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "说一句你好"}' \
http://<手机IP>:8081/api/v1/chat
通了之后接入 QQ Bot、Home Assistant、桌面脚本等外部系统。
典型家庭场景
场景一:每日 AI 简报
- Tasker 监听时间 → 触发工作流
- Operit 深度检索新闻 → 整理大纲 → TTS 朗读
- HTTP API 推送大纲到桌面 Notion + 发通知
场景二:智能家居联动
- Home Assistant 检测到人到家 → HTTP API 触发 Operit
- Operit TTS 说「欢迎回家,今天气温 28 度,记得开空调」
- Operit 通过 Tasker 控制空调(如果没有 Home Assistant 集成)
场景三:家庭服务器
- Ubuntu chroot 里跑轻量 HTTP 服务
- 家人在外通过 Web Chat 访问家庭文件
- Git 仓库 / 备份存储的备用节点
场景四:内容流水线节点
- 旧手机常驻跑工作流
- 深度检索 → 整理 → 绘图 → 归档
- 结果同步到桌面网盘
耗电与散热
- 闲置功耗:Operit 前台服务 + HTTP API 开启,空闲时功耗约 3–5W(骁龙 8 系手机)
- 持续推理:本地 7B 模型满负载运行约 15–20W,手机会发热明显
- 长期运行:插电 + 散热片(或直接裸机放通风处),注意不要积灰
- 电池健康:插电长期运行可能影响电池寿命,建议把旧手机电池降到 50% 左右后取下电池再插电(部分手机支持无电池运行)
安全加固
旧手机变成 AI 节点后,相当于家里多了一个 24 小时开机的智能设备——安全不能省:
| 加固项 | 做法 |
|---|---|
| 路由器隔离 | 给旧手机单独的 WiFi SSID 或 VLAN,和主力设备隔离 |
| API Token 定期换 | Hook Runner 里加请求频率限制,防止暴力破解 |
| 危险操作拦截 | Hook Runner 拦截 pkg-install / rm / 敏感路径访问 |
| 定期检查 | 每天/每周检查 Operit 日志,看有没有异常调用 |
| 远程关闭 | 准备一个一键关闭 HTTP API 的脚本,紧急时远程关停 |