24年2月微软论文“UFO: A UI-Focused Agent for Windows OS Interaction”。
UFO,这是一种以UI为中心的智体,利用GPT Vision的功能来满足针对Windows操作系统上的APP定制的用户请求。UFO采用双智体框架来仔细观察和分析Windows App的GUI和控制信息。这使智体能够在单个应用程序内以及跨应用程序无缝导航和操作,满足用户请求,即使跨多个应用程序也是如此。该框架包含一个控制交互模块,便于在无需人工干预的情况下进行动作接地,并实现完全自动化的执行。因此,UFO将艰巨而耗时的过程转化为仅通过自然语言命令即可实现的简单任务。在9个流行的Windows应用程序中进行了UFO测试,包括反映用户日常使用的各种场景。这些结果来自定量指标和真实案例研究,强调了UFO在满足用户请求方面的卓越有效性。UFO的开源代码可在 https://github.com/microsoft/UFO 下载。
如图是Windows智体UFO的高级概念说明。它从Word文档中提取信息、观察照片中的人物以及总结Windows操作系统上PowerPoint演示文稿中的内容来完成用户请求。然后,UFO利用这些信息编写一封电子邮件并发送,所有这些都是自动完成的。
相关工作
1 LLM智体
LLM智体的出现显著扩展了LLM 的能力(Wang2023)(Xi2023)(Talebirad&Nadiri2023),使他们能够参与规划、观察、记忆和反应行动。这种增强使LLM能够通过模拟类似人类的决策过程来承担更复杂的任务。值得注意的是,AutoGPT的Significant Gravitas 是该领域的先驱,它促进了与用户的互动,并将LLM的行为分解为思想、推理和批评等离散组件,从而有效地解决了用户的请求。此外,TaskWeaver (Qiao2023)代表一个值得注意的以代码为中心的智体框架,旨在分解用户请求,并将其转换为可通过Python代码执行的可管理子任务。Agent Chase(2022)是LangChain框架的扩展。该扩展使LLM能够智能地选择一系列动作,这可能涉及到使用定制工具。LLM在这些智体中的集成不仅增强了它们的决策能力,而且标志着向最终实现AGI迈出了重要一步。
此外,多智体LLM的结合代表了一个更强大和可扩展的框架。该架构有助于根据各自的优势将任务分配给各个智体,促进智体之间的协作或竞争,有效地完成复杂任务。AutoGen (Wu2023b)将每个智体设计为高度可定制和可交谈的,实例了这种方法。这种设计理念使每个智体都能够利用其特定的优势,从而为多智体系统内的整体任务完成做出最佳贡献。MetaGPT (Hong2023a)构成了另一个著名的多智体框架。在这个框架内,不同的角色被分配给各个GPT,共同形成了一个善于处理复杂任务的协作软件实体。此外,另一个名为AutoAgents的多智体框架(Chen2023a)生成并协调多个专门的智体,形成一个专门针对复杂任务的人工智能团队。这些多智体框架标志着LLM智体开发的一个新兴分支,为处理复杂任务提供了更高的可扩展性。
2 基于LLM的GUI智能
利用多模态LLM系统(Durante2024)在应用中导航和控制GUI已成为一个突出且新兴的研究领域。(Yan2023)采用GPT-4V (Yang2023b)向LLM输入GUI的屏幕截图来导航移动应用程序,展示了各种数据集和人工设计的导航任务的最先进性能。同样,AppAgent (Yang2023a)利用GPT-4V作为智能手机用户,使他们能够基于智能手机快照对移动应用程序采取行动,从而在物理手机上自主满足用户请求。MobileAgent (Wang2024)集成了OCR工具,增强为手机任务而设计的移动智体GPT-V。这种集成带来了显著的增强,使MobileAgent能够实现与人类性能相当的完成率。另一方面,CogAgent(Hong2023b)采用了一种独特的方法,训练专门用于GUI理解和导航的专用视觉语言模型,为各种GUI智能任务提供了更具针对性的解决方案。
UFO
UFO是一个以UI为中心的多模态智体,专为Windows操作系统交互而设计。UFO具有理解用户用自然语言表达的请求的能力,将其分解为一系列循序渐进的子任务。然后,它观察应用程序的UI屏幕截图,并对其控制元素进行操作,实现总体目标。这种独特的功能使UFO能够在多个应用程序之间无缝导航,有效地完成复杂的任务,并超越不同应用程序的边界。
如图展示了UFO的综合架构。UFO作为一个双智体框架运行,包括(i)应用程序选择智体(AppAgent),其任务是选择一个应用程序来满足用户请求。当请求跨越多个应用程序,并且任务在前一个应用程序中部分完成时,此智体也可以切换到不同的应用程序。此外,(ii)引入动作选择智体(ActAgent),负责在所选应用程序上迭代执行动作,直到在特定应用程序内成功完成任务。这两个智体都利用GPT Vision的多模态功能来理解应用程序UI并满足用户的请求。他们利用控制交互模块来巩固他们的行动,从而对系统产生切实的影响。
AppAgent负责选择活动应用程序以满足用户请求,或在必要时切换到新应用程序。此外,AppAgent构建了一个全面的全局规划来协调整个任务,其体系结构如图所示:AppAgent将以下信息作为输入:
用户请求:提交给不明飞行物的原始用户查询。
桌面屏幕截图:当前桌面的屏幕截图,其中有多个屏幕连接成单个图像。
应用程序信息:列出可用的活动应用程序详细信息,包括其名称和类型。
记忆:包括以前的想法、评论、行动和执行结果。
示例:应用程序选择的文本示例,用作任务的演示。
在收集所有相关信息后,AppAgent使用GPT-V生成以下输出:
观察:当前桌面窗口屏幕截图的详细描述。
思想:完成给定任务所需的合乎逻辑的下一步,遵循思维链(CoT)范式(wei2022)。
选定应用程序:选定应用程序的标签和名称。
状态:任务状态,表示为“继续”或“完成”。
全局规划:完成用户请求的后续行动规划,通常是全局和粗粒度的规划。
评论:需要提供的其他评论或信息,包括简要的进度总结和需要强调的要点。
ActAgent充当AppAgent之后的下游个体,负责对所选应用程序执行特定操作以满足用户请求。与AppAgent相比,它的输入和输出也有所不同,如图所示:ActAgent接受以下输入:
•用户请求:提交给UFO的原始用户查询,与AppAgent相同。
•屏幕截图:屏幕截图包括三个部分:(i)以前的屏幕截图;(ii)干净的屏幕截图;以及(iii)注释截图。
•控制信息:为所选应用程序中操作启用的控制名称和类型列表。
•记忆:以前的想法、评论、操作和执行结果,镜像AppAgent。
•示例:动作选择的文本示例,用作演示。
有了这些全面的输入,ActAgent会仔细分析所有信息,并输出以下内容:
•观察:当前应用程序窗口屏幕截图的详细描述,以及对上次操作是否已生效的分析。
•思维:当前行动决策背后的逻辑思维和基本原理过程。
•所选控件:操作所选控件的标签和名称。
•函数:应用于控件的特定函数及其自变量。
•状态:如果需要进一步的操作,则任务状态指示为“继续”,如果任务已完成,则指示为“完成”,如果当前操作需要用户确认,则显示为“待定”,如果智体认为需要进一步的屏幕截图来标注一组较小的控件,则显示“截屏”,以及当前应用程序完成任务并且需要切换到不同的应用程序,显示“应用程序选择”。
•局部规划:为完全满足用户请求的未来行动制定更精确、更细粒度的规划。
•评论:其他评论或信息,包括简短的进度摘要、突出显示的要点或规划中的更改,类似于AppAgent提供的内容。
UFO利用pywinauto来检查应用程序的所有可操作控件,检索它们的精确位置和边框以便于注释。PowerPoint GUI上带注释控件的示例如图所示,控件信息由pywinauto提供。不同的颜色各种各样的控件类型。此外,pywinauto为每个控件提供了丰富的上下文,包括其名称、类型和标题,这些都是控件和操作选择的关键信息。
UFO主要关注以下10种具有高度相关性的约束控制类型。其中包括按钮、编辑、选项卡项、文档、列表项、菜单项、树项、组合框、超链接、滚动条。在下表1中显示这些控件类型的详细描述。这些集合可以覆盖应用程序中的大多数相关控件,并且可以根据请求进行扩展。
对于应用于控件的特定功能,选择pywinauto支持的常见鼠标操作,以及开发的自定义操作。这些操作包括:
点击:用鼠标点击控制项,可选择左键或右键点击、单次或双击。
设置文本:将文本输入到可编辑控件中,模仿键盘行为。
注释:捕获当前应用程序窗口的屏幕截图,并在GUI上注释控制项。
总结:基于干净的屏幕截图总结当前应用程序窗口的观察结果。
GetText:检索控件的文本信息。
滚动:垂直或水平滚动控制项,使隐藏内容可见。
特殊设计考虑
UFO结合了一系列专门为Windows操作系统量身定制的专用设计元素。这些增强旨在促进与UI控件进行更有效、自动化和安全的交互,从而增强其处理用户请求的能力。关键功能包括交互模式、动作定制、控制滤波、规划反思和保障。
交互模式
UFO为用户提供了参与交互式和迭代交互的能力,而不是坚持一次性完成。任务完成后,用户可以灵活地请求UFO增强之前的任务,为UFO提出一个全新的任务,或者在UFO可能缺乏熟练度的任务中执行操作以帮助其完成任务,例如提供密码输入。这种用户友好的方法不仅将UFO与市场上其他现有的UI智体区分开来,还允许它吸收用户反馈,有助于完成更长、更复杂的任务。
动作定制
UFO目前有助于对控件或UI进行操作。无论如何,必须注意的是,可以在Windows UI Automation的限制之外进行高度扩展和自定义。这种可扩展性对于定制框架以满足特定用户需求至关重要,允许集成键盘快捷键、宏命令、插件等功能。一个说明性的例子是summary()的使用,它利用UFO的多模态功能根据需要观察和描述屏幕截图。
为了实现这一级别的定制,用户可以注册他们的定制操作。这包括指定目的、参数、返回值,如有必要,还包括提供示例以供演示。这些信息随后被纳入提示中,以供UFO参考。一旦注册过程完成,自定义操作就可以由UFO执行。这种固有的灵活性使UFO成为一个高度可扩展的框架,使其能够在Windows系统中满足更复杂的用户特定请求。
控制滤波
在应用程序的GUI中,Windows UI Automation可以检测数百个控制项,每个控制项都可用于操作。然而,注释所有这些控件可能会扰乱应用程序UI屏幕截图,阻碍单个项目的查看,并生成一个广泛的列表,这可能会给UFO做出最佳选择决策带来挑战。值得注意的是,其中一些控件可能不太可能对满足用户请求有用或相关。因此,滤波机制的实施对于排除某些控制和简化UFO的决策过程至关重要。
为了应对这一挑战,UFO采用了双级控制滤波方法,包括硬级滤波和软级滤波。在硬滤波,候选控件基于具有高相关性和流行性的特定控件类型进行约束。更重要的是,结合一个软滤波机制,使UFO能够动态地确定是否重新选择一个更简洁的指定控件列表。当UFO感知到过多的控件时,就会触发这种自适应滤波方法,这可能会扰乱当前屏幕截图并阻碍所需控件的可见性。在这种情况下,UFO会智能地返回一个细化的感兴趣的控制候选列表。随后,它捕获了一个仅用这些控件注释的新屏幕截图,从而促进了更集中和有效的滤波过程。该功能增强了框架的自动化能力,使UFO能够做出智能决策以获得最佳性能。
规划反思
虽然应用程序选择智体和动作选择智体都负责启动规划以满足用户请求,但应用程序UI的实际状态可能并不总是与预期条件一致。例如,如果UFO最初规划在下一步中单击“新建电子邮件”按钮,但该按钮在当前界面中不可见,UFO可能需要首先导航到“主页面”,然后定位“新电子邮件”按钮。因此,规划和行动都应相应调整。
为了解决UI的这种动态性质,提示UFO在每个决策步骤不断修改其规划,允许其根据需要偏离原始路线。这种自适应方法增强了UFO根据其观测结果对不断变化的应用状态的响应能力。这种反思机制的有效性已在各种LLM框架和智体架构中得到证实(Qiao2023)(Ding2023)(Shinn2023)。此外,规划反思的集成大大有助于增强UFO在导航和与各种应用UI交互方面的性能。
保护
最后,承认系统中某些操作的敏感性,例如文件删除等操作导致的不可逆更改。考虑到这些潜在风险,UFO结合了一种保护机制,在执行此类行动之前寻求用户的确认。保护功能不限于下表中列举的条目,因为UFO会智能地评估每个动作的敏感性。有了这种保护措施的部署,UFO将自己确立为一个非常安全和值得信赖的智体,降低了损害系统或危害用户文件和隐私的风险。