UFO:A UI-Focused Agent for Windows OS Interaction
- 前言
- Abstract
- Motivation
- Methods
- Experiment
- Conclusion
前言
Windows客户端第一个JARVIS,利用GPT4 Vision识别截图信息辅助智能体自动化执行操作,作为微软大肆宣传的一篇工作,其前瞻性还是值得学习的,只不过在实现上博主认为还有很大的改进空间,不过也算是Windows端AI助手的基石工作了。
Paper | https://arxiv.org/pdf/2402.07939.pdf |
---|---|
Code | https://github.com/microsoft/UFO |
From | arXiv 1 Mar 2024 |
Abstract
本文提出UFO,一种新颖的以UI为中心的智能体,它利用GPT-Vision的功能满足针对Windows操作系统上的应用程序定制用户的请求。UFO采用双智能体框架来观察和分析Windows下应用的图像化界面和控制信息。这使得智能体能够在各种应用程序内或者跨应用进行操作满足用户的请求。框架集成了一个控制模块,无需人工干预就可以实现自动化操作。UFO将艰巨且耗时的过程转变为仅通过自然语言命令就可以完成的任务。作者在9个流行的windows应用上测试UFO,涵盖了用户日常使用的各种场景。从定性和定量结果表明UFO在满足用户的请求方面的有效性。UFO是目前第一个为Windows操作系统制定的UI智能体。
Motivation
- Windows在操作系统所占市场份额大。
- Windows端应用丰富,操作复杂,涉及长程计划和多应用交互。
- 现有的智能体主要关注于智能手机。
UFO的优势:
- 聚焦UI,与Windows操纵系统无缝交互。
- 双Agent框架,各司其职。
- 无需人工干预,完全自动化,同时也运行用户交互。
- 高度可扩展性,可以针对任务和应用程序定制操作和组件。
- 根据它们在github上更新的内容来看,RAG似乎加入了最新的UFO中,这有助于进一步提升UFO的能力。
Methods
UFO结合两个Agent,它们决定选择哪些应用程序和组件来处理用户请求,其中:
- AppAgent:选择一个正确的应用程序来满足用户的请求。当面临扩应用请求,还可以切换应用程序。
- ActAgent:动作选择智能体。负责在所选程序上执行动作,直到任务完成。
这两个Agent利用GPT-Vision的多模态功能来理解应用程序UI并满足用户的请求。它们利用一个控制交互模块来确定它们的行动,从而对系统程序进行操作。
具体来说,UFO为AppAgent提供了完整的桌面截图和一系列可供参考的应用程序,AppAgent从其中选择合适的程序,并制定一个全面的计划来完成请求,然后将计划转交给ActAgent。
一旦确认了合适的应用程序,程序就会在桌面上显示,接着,ActAgent进行操作完成用户的请求。在每个动作执行之前,UFO会捕获当前应用程序的窗口截图,所有可控组件都会被标注。
ActAgent的任务是选择要操作的控件,基于观察、计划和记忆,通过控件交互模块选择特定控件执行特定操作。执行完毕后,UFO为未来的步骤构建本地计划,并进行到下一个行动选择步骤,这个递归过程会一直持续到用户成功完成任务为止。
在跨应用请求的场景,ActAgent会将任务委托给AppAgent,以便ActAgent完成当前应用程序上任务后切换到另一个应用程序,从而响应下一阶段的请求。
在UFO构建过程中,还应用了如下的一些方法:
- 用户可以选择交互式引入新的请求,整个过程会迭代持续到用户所有请求完全完成。
- 为了解决自动化标注会造成截图界面混乱,以及干扰UFO做决策,团队提出双层控制过滤机制,第一层过滤与操作相关度低的组件标注,第二层让UFO动态选择更简洁的控件列表。
- 任务执行时,真实的状态和预期可能并不一致,因此UFO会在每个决策步骤中不断修改计划,根据需要偏离原始路线。
- 由于操作系统的敏感性,可能会有一些不可逆的风险操作,为此, UFO会智能评估操作的敏感性,部署相应的防护措施。
Experiment
**数据:**研究团队在9个常用的Windows应用程序上对UFO进行了测试,包括Outlook、Photos、PPT、Word等,涵盖了Windows用户的高频使用场景,能够测试工作、交流、编码、阅读、网页浏览等目的。对于每个请求,团队设计了5个不同的请求,此外还有5个跨应用交互的请求,共50个请求。该数据集也被整理成名为WindowsBench的测试基准。
**评估指标:**从成功度、步骤、完成率和保障率这几个角度来评估UFO。
**baseline:**考虑到没有现成的Windows Agent,团队选择GPT-3.5和GPT-4作为基座模型,并根据它们的指示由人工操作来完成用户请求。
实验结果如下表所示:
UFO在WindowsBench上成功率达到了86%,远远超过了GPT-4。此外,在执行步骤、完成率和安全度上也是最高的。
最后,从场景角度对WindowsBench的评估结果如下:
Conclusion
一个在Windows场景的通用智能体,通过两个智能体交互的形式完成用户的指令。其特点是利用GPT-4 Vision的识别能力,模拟人类在Windows系统下操作的行为,这确实特别接近人类对通用AI助手的幻想——即钢铁侠的JARVIS。该工作还有一个亮点是允许用户可选择介入,这对环境实时变化的场景友好。当然,这个工作还是一些不足和值得思考的地方:
- 工具需要定制,不具有泛化能力,不过RAG的加入可以一定程度缓解这个问题。
- 只能在Windows平台上使用,过于依赖Python工具包pywinauto。
- 能不能有更底层的API获取到当前的GUI信息(比如文中提到的Win32 API)?截图方式有些太浅层了,肯定有更底层拿到GUI信息的方法。
- 方法依赖GPT4 Vision,如果能够拿到GUI底层信息,是不是就不需要GPT4 Vision也能做?或者内置一个专门的Windows的大模型,能够直接和底层信息交互的那种,这就更像真正的JARVIS了。
- UFO运行的效率未知,比如执行一个任务到底需要多长的时间,以及token的开销究竟是多少,毕竟时间成本和token开销成本都是需要考虑的。