一个不下线的 AI 作业台。
苹果电脑、手机、一台中兴 W103D 盒子、一块 ESP32-S3、一支小米蓝牙遥控器, 和一台兼职充电宝的 ZTE U15 4G 路由。没有公网 IP,没有机房,没有值夜班的人; 它们自己醒来、自己联网、自己把 AI 作业跑完。这页把这张图、每台设备的分工、 四条工作流、它值在哪里,以及它哪里会坏,一次说清楚。
先看一张图
一个 4G 上行、一张本地 Wi-Fi、四条工作流。实线是数据,虚线是供电或可选, BLE 是蓝牙低功耗;路由器同时是 AP、上行和电池。
为什么不是再买一台云服务器
云服务器解决的是「有人替我开机」。这套东西解决的是另一个问题:当作业是持续的、数据是敏感的、网络是没有公网 IP 的、预算是有限的,机器应该放在我身边。 苹果电脑负责重活,W103D 负责常驻,手机负责看和批,ESP32 负责替手,4G 路由负责把这一切接出去——每台设备只做自己擅长的那一段。
它不追求高可用,也不是一个机房。它追求的是一件更小的事:第二天早上,作业还在跑,日志还在写,我能从手机上看一眼。 为了这一点,架构上只保留三样东西:一张本地网、一个明确的语音入口、几条可重跑的工作流。其余都是可替换的。
还有一个现实原因:家里/工作室的宽带没有公网 IP,4G 也是 CGNAT。所有对外连接都必须是出站的——HTTPS、WSS、反向隧道或 VPN。 这条约束反过来决定了图的样子:不是「外面连进来」,而是「里面连出去」。
六台设备,各管一段
| 设备 | 角色 | 常驻什么 | 怎么连 |
|---|---|---|---|
| 苹果电脑 | 重活与调度 | 任务队列、模型调用、代码/文件产出、定时器 | Wi-Fi、市电 |
| iPhone | 移动终端 | PWA、通知、审阅、BLE 外设 | Wi-Fi / 4G、BLE |
| 中兴 W103D | 常驻智能体 + 电台服务 | agent、语音座位、MRRC Modern、本地控制 | Wi-Fi、USB / CAT(可选) |
| ESP32-S3 | 手机自动化的手 | BLE HID 桥、保持在线、重复操作 | BLE、USB 供电 |
| 小米遥控器 2 | 语音 / 按键入口 | PTT、调频、ATVV 麦克风 | BLE 5.0 · HOGP + ATVV |
| ZTE U15 | 网络 + 供电 | 4G 上行、Wi-Fi AP、电池/充电宝 | 4G、Wi-Fi、USB |
其中小米遥控器是唯一一个「人直接对着机器说话」的入口:语音键按住 = PTT + 开麦,松开 = 停。 它走 BLE 5.0 的 HOGP 按键和 Google ATVV 语音(16 kHz IMA ADPCM),W103D 上的守护进程把音频解出来, 经本地 PCM socket 送进智能体或电台的发射链路。按键和语音都只在这张本地网里,不经过云端。
四条流,覆盖「跑、说、动、运维」
1. AI 作业:可重跑,而不是聊天窗口
Mac 和 W103D 都常驻一个作业循环:取任务、读上下文、调用模型、写产出、发通知。关键不是「能跑一次」,而是可重跑—— 每个作业有幂等键、超时、重试和日志;失败不丢任务,成功不重复扣费。手机只负责看结果和批准下一步, 不在手机上跑长任务,也不把会话当成状态。
2. 语音智能体:按住说话,松开干活
小米遥控器的语音键在 W103D 上同时做两件事:key 电台/智能体,以及把麦克风音频送进本地链路。 于是「对着盒子说一句」成为一个正式入口:不需要打开网页、不需要手机解锁。适合的场景是短指令、确认、 现场调频和「手上是脏的」时候。长文本仍然回到键盘,语音只负责把意图递进去。
3. 手机自动化:ESP32 当一只可控的手
ESP32-S3 通过 BLE HID 连到 iPhone,把「只有手机 App 才能做的事」变成可编排的动作:保持某些 App 在线、 处理重复点击、在通知出现时做固定响应。它不是破解,也不是绕过平台——它是把手机当成一个外设, 用标准 HID 做有限、可审计的自动化。边界很清楚:不碰账号安全、不批量刷、不做平台禁止的事。
4. 远程接入与运维:只出站
4G 路由器提供上行,但没有公网 IP。对外只保留出站通道:HTTPS/WSS、反向隧道、VPN。 MRRC Modern 的网页、Cloud Hub 的入口、作业看板都走这条路;SSH 只开密钥、只绑本地/隧道。 这样做的代价是必须先有出站连接,好处是家里不需要任何端口映射,换运营商也不用改图。
U15 的两个身份:路由,和充电宝
这台 ZTE U15 同时是Wi-Fi AP、4G 上行和电池。 它的电池有两个用途:给路由器自己当 UPS(短时断电不断网),以及给手机当充电宝。 这是整套东西里最划算的一笔——一个设备解决了「网」和「电」两个单点,代价是它自己也成了单点。
常在线不是「插着电」四个字。它意味着:路由器的电池要能撑过短暂的停电;Mac 和 W103D 要有看门狗; 4G 要有流量上限和降级策略;所有服务要能在重启后自己回来。图的左下角写「ALWAYS ON」, 真正的实现是在每个守护进程的 Restart 策略和每一条健康检查里。
一张小账
| 维度 | 这套东西 | 代价 / 边界 |
|---|---|---|
| 成本 | 没有云服务器租金;设备都是已有的;一条 4G 线 | 4G 流量和电池老化是持续成本 |
| 延迟 | 设备之间走本地 Wi-Fi;只有模型调用出网 | 4G 上行延迟和拥塞不可控 |
| 隐私 | 数据、录音、日志留在本地;只把必要的请求发出去 | 模型 API 仍然看到请求内容 |
| 韧性 | 路由器电池 + 4G,短时断电/断宽带仍在线 | 单路由、单盒子、单 4G,没有真正的高可用 |
| 可搬运 | 一包设备,换一个地方插电就能跑 | 依赖 4G 信号;室内角落可能很差 |
| 可观测 | 本地日志、portal 看板、手机通知 | 没有专业监控;要靠自己写健康检查 |
| 可扩展 | ESP32、遥控器、传感器都是标准 BLE/Wi-Fi 积木 | 每加一块,就多一个要维护的固件 |
如果只用一句话概括价值:它把「AI 作业」从一次会话,变成了一件有地址、有电、有日志、可以明天继续的事。 不是更大的模型,也不是更多的卡;是把已有的设备放到正确的位置上。
它会在哪里坏
| 风险 | 表现 | 缓解 |
|---|---|---|
| 单 4G 上行 | 信号差、拥塞、运营商维护 → 全网离线 | 备用 SIM / 第二台上行;关键作业本地排队,恢复后重跑 |
| 流量上限 | 模型/同步/视频把套餐跑穿,限速或断网 | 出站白名单、压缩、离线优先;给 4G 设预算和告警 |
| 电池老化 / 发热 | UPS 时间变短;夏天降频或关机 | 通风、避免满电长期高温;把「电池只当短时 UPS」写进预期 |
| 安全面 | LAN 暴露、密钥、隧道 token、远程麦克风 | 只出站、不开公网端口;密钥登录;分段/VLAN;最小权限 |
| BLE 睡眠 | 遥控器/手机空闲断连,按键才回来 | 守护进程重连;语音/按键前先唤醒;不要让「在线」等于「正在连接」 |
| 固件与许可 | 厂商私有语音协议、驱动、OTA 变砖 | 只走标准协议(HOGP/ATVV);保留回滚;不把关键路径绑在私有云 |
| 单点盒子 | W103D 挂了,语音座位和电台服务一起没 | 备一台同型号;关键状态落盘;恢复脚本可重放 |
这些不是「以后再说」的注脚。它们决定了这套东西的定位:它是一张工作台,不是一个数据中心。 工作台可以停一下,但不能在没人知道的时候停;所以看门狗、日志和通知,和架构图本身一样重要。
让它更小,而不是更大
下一步不是加机器,是把已有的东西做得更可靠:一张健康看板(4G 信号、电池、队列深度、最后一次成功作业), 一个统一的告警出口(手机通知 + 邮件),一套能重放的恢复脚本,以及在 Mac 和 W103D 之间做真正的任务接管。 如果条件允许,再加一块小太阳能和第二台上行;但那是加分项,不是前提。
这套东西最有趣的地方,不是它用了多少新技术,而是它把标准协议用到了边缘:BLE HID、ATVV、 HTTP/WSS、USB/CAT。标准协议的好处是每台设备都可以被替换,坏处是每一段都要自己写清楚。 这张图就是那个「写清楚」的结果。
一张每天早上自己醒来的桌子
它不是一个机房,是一张桌子:一台 4G 路由、四台常在线设备、一支遥控器、一块 ESP32。 设备的清单会变,图的形状不会——一个入口、一张本地网、几条明确的流,和一套能解释自己为什么在跑的作业。 如果哪天你也在没有公网 IP 的房间里,想让 AI 作业过夜,这张图可以直接拿去改。
相关阅读:W103D 遥控器指南(按键 + 语音麦克风) · 凿壁借光:NAT 后面的电台如何拥有互联网入口 · MRRC Cloud Hub 文档。