去年 AutoGLM 开源时我很兴奋,但实测发现它非常依赖 ADB 。对于没有公网 IP 、只能靠内网穿透的我来说,ADB over TCP 在穿透环境下的延迟和丢包让人头大。最初我只是想把通信层改成 UDP ,提升一下稳定性,结果最后“想多了”,干脆按自己的思路从底层重写了一套。 于是我闭关两个月 Vibe Coding 了一个 Agent 。我认为没必要让 VLM (大模型)截图看屏幕,不仅慢,而且 Token 费烧得心疼。所以我的思路是:
- 先建图:用 BFS 爬一遍 App 的主要路径,把 UI 节点存下来。每一个 UI 节点构建一个全局唯一的 locator 用于检索,而页面不做页面指纹,只记录页面的内容和功能的语义描述
- 确定性路由:如果任务路径是已知的,就直接走 Locator 定位点击,全程零大模型调用。
- VLM 执行:只有到了目标页面(比如进入了具体的商品详情页),再召唤 VLM 来做决策。
我把它叫作 Route-Then-Act ,本质上就是把页面跳转和任务执行分开了。
还有一些笨拙的尝试:
- 通信协议:手搓了一个基于 UDP 的二进制协议,把 UI 树数据做了 96% 的压缩,主要是为了在弱网下能跑通。
- 底层注入:为了脱离 ADB ,折腾了 Shizuku 和 app_process 注入。
- 数据表现:在淘宝和 B 站的几个任务上测了下,模型调用次数降了 74%,成功率比纯视觉方案高一点。
我的代码仓库: https://github.com/wuwei-crg/LXB-Framework 如果能给大家提供一点思路我就满足了,谢谢大家