日报 20260409:跨设备自动化:家庭 AI 工作台的首个小目标
前段时间折腾家庭服务器改造,将 Mac mini、Windows 迷你主机、硬盘柜三者有机结合,构成了初级的家庭数据中心:
- Mac mini 是家庭中枢,目前负责影音服务、远程开发服务,平常在家时也用来直接办公;
- Windows 迷你主机连接了硬盘柜,提供资源下载和文件存储服务,本机硬盘和外置硬盘会被 Mac mini 自动挂载。
同时,Mac mini 和 Windows 迷你主机上分别安装了 WorkBuddy 与 QClaw 作为电脑小管家做些批处理、自动化任务,可被我用微信远程下达指令控制。
虽说 Mac mini 自动挂载外部设备硬盘这件事,让 Windows 迷你主机与硬盘盒整体看起来像是 Mac mini 的「外置硬盘」。
但俩电脑间无法自动化地互相操作,即便都装了🦞也不行(从我目前所知来看),这使得家庭数据中心在一体化上失去了美感,也阻碍了脱离人类控制而让 AI 接管的理想。
我现在有个需求迫切需要被满足——当 Windows 迷你主机上有资源下载完成时,自动通过 Mac mini 上的服务发送通知到我手机。
既然暂时没有适合我的解决方案,那就只能靠自己创造了;也顺便借此机会,开始研发想弄很久了的「家庭 AI 工作台」!
实现方案
由于我是用 qBittorrent 下载资源,它本身提供了下载完成时的自定义操作触发点,那我的需求实现起来就会很简单——
开发 Webhook
第一步是开发个 HTTP API 用来接收下载完成的资源信息。
我简单描述了下需求,用 Trae 的 SOLO 模式发送出去进行 vibe coding,因为用的是免费模型,时不时会出现排队情况:
否则,代码会更快完成。
主体功能很快就实现了,但发现参数支持得不全,完整的参数应该包括:
发了参数表格给 Trae 后,它自己补充代码把全部参数都支持了。
配置 qBittorrent
第二步是将执行代码设置到 qBittorrent 中。
在那之前,我先让 AI 生成在 Windows 迷你主机中测试 HTTP API 能否正常调通的一条 curl 命令,经测试功能正常。
但当将参数替换成 qBittorrent 指定占位符并设置为下载完成的自定义操作后,正式执行时所接受到的数据不对,那些参数信息没有正常传进来。
把直接通过 curl 调用改为用 .bat 脚本包装一层调用也不行;问了豆包后得知,可能是因为 Windows 中文件路径转译问题导致的。
我在 .bat 脚本中关于路径的代码全部删除后再测试,就能接收到数据了——果然是路径转译问题。
这时我想起来,前两天让🦞写批量修改文件名的技能时也出现这种问题,除此之外还有中文字符兼容性问题,无论是命令提示符还是 PowerShell 都处理不好,最终它选择了用 Python 处理。
这给我提了个醒,那我也改用 Python 实现——还真就搞定了!
至此,两台电脑间相互「协作」的自动化之墙已经打通,日后根据需要进行更多能力扩展。
发送飞书通知
第三步是接收到数据后通过某个途径向我手机发送通知。
一开始想的是,让🦞用已配置的微信通道发消息给我,但 WorkBuddy 和 QClaw 都很难实现;尤其是 WorkBuddy,没有看到任何被动触发的扩展点。
最终还是选择用飞书机器人,而且还是群机器人,配置起来比带有机器人能力的应用简单方便得多,相关功能也是一句话需求就被 Trae 给实现出来了。
这只是临时方案,之后肯定要将接收通知与下达指令的通道进行整合,尽可能统一起来。
结语
在 AI 时代,开发软件应当优先考虑「无头(headless)模式」,也就是 HTTP API 或纯 CLI。
具体到我自己的这个场景,考虑到以后的扩展,采取一个服务端搭配多个客户端的架构,客户端可以是 GUI 或 CLI,因而服务端的技术选型就用相对轻量、简洁的 Koa。
因为客户端的事暂时不急,就不用头疼花时间用户体验问题,服务端的功能按需渐进式开发就好。
我的这「家庭 AI 工作台」有很大想象空间。