我家的投影仪遥控器,经常找不到。
找到之后,也是开机、打开腾讯视频找到播放记录,继续看上次没看完的综艺或者电视剧。
想看电影的时候也纠结。饭都吃到一半了,电影还没选好。
后来我就想,我电脑就在客厅,能不能直接把我的投影仪直接到 Codex,然后我直接通过语音来控制它?
于是,我我让 Codex 研究了 1 小时,实现了下面这个效果:
最终实现的效果是:
我的 MacBook 放在我客厅的桌子上,我在沙发上说:“小C,请你打开我的投影仪,然后打开腾讯视频找到我之前看的综艺,帮我点开”。
然后就看着投影仪自己打开,Agent 去操纵完成了这个任务。后面想关投影仪,直接喊一声:“小 C,关掉我的投影仪。”
这个文章分享一下整个流程,包括:
① 用 Codex 控制家的投影仪,支持开关机和复刻遥控器上的操作
② 支持让 Codex 看到目前投影仪的实时画面,实现 我给一个指令 -> Agent 读取投影仪画面 -> 决策下一步点击 -> 执行操作 -> 再读取投影仪画面 -> 评估是否完成我的诉求。
③ 同时搞了一个语音助手,能时刻监听我。我说 小C 唤醒它,把我的话实时转成文本,同步给 Codex 去执行。
01
先把遥控器接到电脑上
一开始,我给 Codex 的任务很简单:看看能不能用我的 Mac 控制投影仪。
具体就是弄清楚投影仪通过 Wi-Fi 接收什么指令,再让电脑用同样的方式控制它。
其实这一步并不需要最近很火的热 REA 逆向工具,现在模型能力很强了。
直接口喷说你的诉求就行了。
先让电脑和投影仪连上同一个 Wi-Fi,然后告诉 Codex 你投影仪的型号、IP 地址。
让它自己研究怎么控制。
大概等了 5 分钟,Codex 真就控制投影仪选中框真的往右挪了一格。
后面的关机、方向键、确认、返回、主页和音量,也就可以逐个接起来。
到了开机这里,确实有点麻烦。折腾了好几轮。
后面是 Codex 让我用 iPhone 上的官方极米 App 开机,同时把手机放在 Mac 附近。Codex 配合本机程序采样它发出的蓝牙信号,再尝试由 Mac 发送。
终于有一轮,我没碰手机,也没碰遥控器,只让 Mac 发了一次广播,投影仪自己亮了。
随后,Codex 把这些操作做成了一个 Mac 小应用,常驻右上角菜单栏。
打开之后,就是方向键、确认、返回、音量和开关机这些常用按钮。
也让它沉淀成一个 Skill,方便 Agent 调用。
到这一步,我已经有了一个电脑上的遥控器。
02
让 Codex 看见投影仪画面
如果每一步都要我告诉它向左、向右、确认,那打开腾讯视频、找播放记录,还是得由我来判断。
所以第二个目标,就是让 Codex 看见投影仪当前的画面。
后面发现,电脑通过同一个局域网,就能拿到投影仪当前画面的截图。
当我在 Codex 的 Agent Loop 中看到我投影仪界面的截图时。
我还是被震撼到了。。。 就感觉太神奇了,还真能走通。。。。
这样,Codex 就可以看一眼屏幕,决定下一步按什么,操作后再看一眼。
遇到首页、弹窗或者不同的选中位置,也可以根据实际画面调整。
我把 Vibe Coding 的这个 Mac 上的极米 Z7X 投影仪控制 App 和对应 Skill 开源了。
感兴趣的自取。
开源地址:https://github.com/Wechat-ggGitHub/xgimi-agent03
喊名字唤起的 Codex 干活
这时候我就想,能不能直接通过语音操纵 Codex 。
然后 Codex 再用我这个投影仪操纵 Skill 来去控制我的投影仪呢?
还真行,我做了一个 Mac App,叫小 C。
我希望它平时在后台等着,喊一声 小 C,它就响一下表示听到了。
接着我说出指令,说完稍微停顿,它就把语音转成文字,发给 Codex。
这里我特意要求了一点:每次都要发到同一个专用会话。
这样,后面的指令就能接着前面的上下文继续聊。
比如刚刚操作过投影仪,下一次再让它返回或者关机,不用每次重新交代背景。
这条链路做出来之后,我又让 Codex 加上自动朗读。
任务完成后,Codex 在会话里回复,小 C 再把回复朗读出来。
这样我不盯着电脑,也能听到结果。
我已经通过这个语音入口发过投影仪关机指令。
唤醒、把文字发到 Codex 固定会话,以及 Codex 干完活自动朗读播报,也都支持了。
这个语音 App 我也整理开源了,项目叫 Voice Control Agent,应用里还是叫小 C。
顺便说一下,平时等待唤醒是在 Mac 本机完成的,唤醒后的指令音频才会交给语音识别服务。
语音识别需要配置自己的服务账号。
使用在线声音朗读时,回复文字也会发给对应的语音服务。
开源地址:https://github.com/Wechat-ggGitHub/voice-control-agent04
接入Agent,智能家具真的变“智能”了
家里的设备,可以慢慢交给一个 Agent
这次只接了一台投影仪,但它让我对后面的家庭设备有了更多想法。
如果灯、空调、窗帘这些设备的控制方式,也能逐个被接通,Agent 就可以根据我的需求,协调它们一起工作。
比如吃完饭想看电影,跟它说一声。
它去打开投影仪,调整灯光,再找到想看的内容。
或者出门的时候,告诉它把家里该关的设备检查一下。
哪些已经关了,哪些还需要处理,它再告诉我。
但从这次实际做出来的东西看,我觉得半年内,就会有越来越多这种能用起来的家庭 Agent 出现。
电脑或者家里的某个常驻设备作为一个大脑,我每天跟它说话,它去理解需求,再调用相应的工具操作设备。
搞这个玩意的时候,我还想到另一个场景:家里的老人看电视。
现在有些电视界面,我自己进去都要找一会儿。
找应用、找节目、找播放记录,中间还夹着各种推荐和会员入口。
对不熟悉这些界面的人来说,想看个电视剧,操作成本实在有点高。
如果 Agent 能看懂当前画面,又能操作设备,老人就可以说:接着放昨天那个电视剧。或者:我想看以前看过的那个老电影。
信息不够,Agent 就问一句,再去帮他找。
我觉得这个场景挺不错的。期望后面都能落地普世化吧。
05
点击下方卡片,关注逛逛 GitHub
这个公众号历史发布过很多有趣的开源项目,如果你懒得翻文章一个个找,你直接关注微信公众号:逛逛 GitHub ,后台对话聊天就行了: