让 AI 操控桌面应用最痛苦的是它经常“一本正经地胡说八道”
最让我觉得实操性强的是它不再盲目相信操作系统的返回码。很多桌面软件(比如 macOS 的 Finder)非常离谱,操作成功了它报错,操作失败了它却返回成功。这个工具采用了一种“链式交互回退”机制,它会尝试一系列操作路径,并实时监测应用状态的真实变化。只有观察到界面确实发生了预期的改变,才判定为成功。
对于我们这种需要频繁操作 Slack、VS Code 或 Obsidian 的团队来说,它对 Chromium 应用的处理是真正的杀手锏。它不是通过缓慢的辅助功能树去爬数据,而是直接通过 CDP(Chrome DevTools Protocol)接口通信。这种效率提升非常明显,读取内容的时间直接从秒级降到了毫秒级。
具体的实现逻辑大致分这几步:
一、骨架快照与钻取
它不会一次性把整个极其复杂的辅助功能树全部塞给 AI,这样太费 Token 且容易干扰判断。它先给一个“骨架快照”,只包含父容器。AI 确定目标区域后,再通过 --find 或 --click 指令进行局部钻取。
二、严格的引用重识别
它给每个元素分配的 ref id 不是简单的指针,而是一组身份证据(包括角色、路径、文本哈希等)。每次操作前都会重新校验,如果 UI 变了直接报 STALE_REF,绝不靠猜。
三、CDP 快速通道
对于基于 Electron 的应用,可以通过特定命令启动 CDP 端口,让 Playwright 等框架直接接管。
agent-desktop launch "Obsidian" --cdp这种方案比传统的 RPA 稳得多,尤其是处理长链路任务时,不会因为一次小误判就导致后面全部崩盘。目前 macOS 版本已经可用,如果 Windows 版能尽快跟上,我们很多基于 Windows 的旧系统自动化流程可能终于能交给 AI 跑了。