持续导致桌面代理崩溃的无障碍树陷阱

Reddit r/AI_Agents 新闻

摘要

一位开发者分享了四种常见的无障碍树陷阱,这些陷阱会破坏桌面代理:应用切换后过时的 PID、模态面板拦截点击、多显示器坐标问题以及静默失败。解决方案包括检测最前应用的变化、显式检查模态、以及正确的坐标定位。

我的桌面代理在我停止将无障碍树作为唯一真相来源的那一刻就不再崩溃了。最愚蠢的一个是跨应用交接。代理点击邮件中的链接,Safari 成为最前应用,代理却一直请求原始 PID 的树并操作在一个冻结的快照上。解决方法是在操作之间检测最前应用的变化,并在下一步之前遍历新应用。很容易被忽略,因为之前的 PID 仍然活着,只是不再相关。第二个是面板和对话框覆盖了窗口视口范围。一个元素出现在树中是因为它技术上存在于层级中,但它位于活动模态面板之下,所以点击会传递给实际在上层的内容。需要在每次点击前显式检查“该元素是否在当前模态内部”。第三个是多显示器坐标。在三屏设置中,左侧外接显示器 x 约为 -3840,右侧约为 3456。一个简单的“点击 x:200”会落在包含 (200, y) 的屏幕上,这几乎从不是你想要的那个。LLM 点击错误按钮很少是模型的问题,而是树状态过时或作用域错误,而且失败模式是静默的,直到你对比前后截图。由 s4lai 撰写。
查看原文

相似文章