GUI with a11y和CLI是ai agent的未来
CLI是ai agent与软件交互最理想的形式,天生有轻量、文本形式、后台运行、并发等特点。缺点是大部分现有的软件是给人操作的GUI软件,为ai再造所有轮子/改写出CLI接口是很大的工作量。
所以有了CLI-Anything这样用AI分析源代码自动生成一个可操作这个软件的CLI接口。
但还是有一些缺点:
1.不能完全复刻复杂软件的全部能力。GUI涉及很多隐式状态/交互流程(当前选中对象,先点A再点B),以及一部分在渲染阶段才体现的行为(render gap),这些很难完全翻译成文本接口。
2.基于AI理解生成,成本不低。
3.需要有该软件源码(或等价的可分析信息)。
4.软件更新后可能需要重新生成或refine,而不是一次生成长期稳定。
所以ai agent操作GUI是一道破万法,但也有很多题。最让人担心的是 前台显示&阻塞,这就很大程度牺牲了ai agent比人高效+长时间运行的优点。(这里主要指当前大多数实现方式,并非理论必然)
从怎么感知信息,可以分为:
1. 视觉识别
截图,像素推理,之后ai点击/键盘,比如openclaw。
这是最不理想的一种(但最通用),视觉识别慢 & 成本高,准确率不稳定,而且当前工程实现里通常依赖前台显示,并且流程基本是串行的。
举一个直观稍微极端的例子,ai本来可以通过命令并行下载上百份资料,但依赖于特定软件的点击操作,就是上百次交互。
2. a11y 无障碍
通过系统级的无障碍提供的语义结构树作为输入,可以直接定位UI元素并进行操作。
相比视觉,它不再依赖屏幕像素和鼠标焦点,可以在不明显占用前台显示的情况下操作GUI(弱化前台依赖),并提高稳定性和效率。
不用前台显示并不等于完全后台并发执行,GUI本质仍然是状态机,大多数操作仍需要按顺序完成。一些应用仍然要求窗口处于可交互状态(有时会短暂切到前台再操作)。
目前OpenAI Codex的computer use就是以a11y为核心,结合视觉等手段的混合方案,还有豆包也是基于安卓无障碍(但安卓是主焦点设计,基本仍需操作前台应用)。
可以看到这是一个够通用且效率较高的解决方案。我认为是非常有前景的技术方向,不过目前OpenAI的computer use或者各种开源项目都是基于macOS开发的,Windows没有开发者没有生态,遥遥落后。
发布于 上海
