论文地址:https://arxiv.org/pdf/2402.07939
关于UFO的测试步骤以及录制的demo,参考我的repo:
https://github.com/xinyuwei-david/david-share.git下的LLM/MS-UFO
欢迎关注repo并点亮星星
一、UFO框架
Windows UI-Focused Agent通过从Word文档中提取信息、观察Photos中的图像以及总结Windows操作系统上的PowerPoint演示文稿内容来完成用户请求。然后,UFO利用这些信息自动撰写并发送电子邮件。
UFO是一种创新的以用户界面为中心的代理,旨在利用GPT-Vision的能力满足Windows操作系统上应用程序的用户请求。UFO采用双代理框架,细致地观察和分析Windows应用程序的图形用户界面(GUI)和控制信息。这使得代理能够无缝地在单个应用程序内以及跨应用程序导航和操作,以满足用户请求,即使这些请求涉及多个应用程序。该框架包含一个控制交互模块,能够在没有人工干预的情况下实现动作落地,并实现完全自动化执行。因此,UFO将繁琐且耗时的过程转变为仅通过自然语言命令即可完成的简单任务。
微软在9个流行的Windows应用程序中对UFO进行了测试,涵盖了反映用户日常使用的各种场景。结果显示,无论是定量指标还是实际案例研究,都突显了UFO在满足用户请求方面的卓越效果。据我们所知,UFO是第一个专门为在Windows操作系统环境中完成任务而设计的用户界面代理。
大型语言模型的出现展示了在解决类似于人类推理、规划和协作的复杂问题方面的革命性潜力。这一发展使人类更接近实现通用人工智能(AGI),在日常生活中提供各种任务的帮助,并展示出以前被认为具有挑战性的强大和全面的能力。向更复杂的多模态视觉LLMs的进步,引入了视觉维度,扩展了其能力,涵盖了大量视觉任务,并扩大了其解决需要视觉能力的挑战的范围
视觉大型语言模型(VLM)的应用不断涌现并蓬勃发展。其中一个显著的应用是使用VLM与软件应用程序的用户界面(UI)或图形用户界面(GUI)进行交互,满足以自然语言表达的用户请求,并将其落地到物理设备上。虽然GUI主要是为人类用户设计的,以便查看和交互,但应用程序UI中的元素和控件为VLM提供了一个关键桥梁,特别是通过感知其视觉信息并以类似于人类的方式将其动作落地。这促进了从大型语言模型(LLMs)到大型动作模型(Large Action Models:LAM)的演变,使其决策能够体现在物理动作中,并产生实际的现实世界影响。
在这种背景下,Windows操作系统(OS)作为LAMs的代表平台脱颖而出,因其在日常计算机系统使用中的高市场份额、基于其构建的多功能应用程序和GUI(Ramler等,2018)以及需要长期规划和跨各种应用程序交互的任务复杂性(Stallings,2005)。拥有一个能够理解自然语言中的用户请求,并自主与基于Windows的应用程序UI进行交互的通用智能代理的前景非常吸引人。尽管显然需要开发专门为Windows OS设计的VLM代理来满足用户请求,但这一方向仍然基本未被探索,因为大多数现有代理主要集中在智能手机(Yang等,2023b)或Web应用程序(Zheng等,2024)上。这一探索的空白为开发专门针对Windows的代理提供了广阔的未开发机会。
UFO是一种专门设计用于与Windows OS无缝交互的UI-Focused代理,利用了VLM GPT-Vision的尖端能力(Yang等,2023c)。UFO采用双代理框架,每个代理通过分析截图并从GUI中提取信息来做出明智的决策,选择应用程序。随后,它导航并在其控件上执行操作,模拟人类用户以满足自然语言中的请求。系统包含一个控制交互组件,该组件在将GPT-Vision的动作转化为应用程序上的实际执行中起着关键作用。此功能确保了完全自动化,无需人工干预,从而确立了其作为全面LAM框架的地位。
鉴于用户请求通常在日常工作中跨越多个应用程序,UFO包含一个应用程序切换机制,允许其在需要时切换到不同的应用程序。这一扩展能力使UFO能够处理其他代理通常忽视的更复杂的任务。此外,UFO具有高度的可扩展性,允许用户为特定任务和应用程序设计和定制动作和控件,增强了其多功能性。总之,UFO简化了用户在日常计算机活动中的各种任务,将冗长和繁琐的过程转变为仅通过文本命令即可完成的简单任务。这使得UFO成为Windows OS的一个有价值、用户友好且自动化的副驾驶,有效地降低了整体使用复杂性。我们在图1中高层次地展示了这一概念,其中UFO通过整合从Word文档中提取的文本、从图像中观察到的信息以及从PowerPoint演示文稿中总结的内容来撰写并发送电子邮件。
为了评估其有效性,我们对UFO框架进行了多样化的测试,涉及9个广泛使用的Windows应用程序中的50个任务。这些任务经过精心选择,涵盖了反映用户日常计算需求的各种场景。评估包括定量指标和深入的案例研究,突显了我们设计的稳健性和适应性,特别是在跨越多个应用程序的扩展和复杂请求的背景下。据我们所知,UFO是第一个专门为Windows OS环境中的通用应用程序设计的开创性代理。
二. LLM代理
LLM代理的出现显著扩展了LLM的能力,使其能够进行规划、观察、记忆和响应动作。这种增强使LLM能够通过模拟类似人类的决策过程来承担更复杂的任务。值得注意的是,AutoGPT(Significant Gravitas)作为该领域的开创性代理,促进了与用户的互动,并将LLM的动作分解为独立的组件,如思考、推理和批评,从而有效地满足用户请求。此外,TaskWeaver是一个值得注意的以代码为中心的代理框架,旨在分解用户请求并将其转化为可通过Python代码执行的可管理子任务。LangChain Agent作为LangChain框架的扩展,赋予LLM智能选择一系列动作的能力,这些动作可能涉及使用定制工具。将LLM集成到这些代理中不仅增强了其决策能力,还标志着向实现AGI迈出了重要一步。
此外,多代理LLM的引入代表了一种更强大且可扩展的框架。这种架构促进了根据各自优势将任务分配给个体代理,促进代理之间的协作或竞争,以有效完成复杂任务。AutoGen(Wu等,2023b)通过设计每个代理高度可定制和可对话,体现了这种方法。这种设计理念使每个代理能够利用其特定优势,从而在多代理系统中对整体任务完成做出最佳贡献。MetaGPT是另一个值得注意的多代理框架。在该框架中,个体GPT被分配不同的角色,共同形成一个能够处理复杂任务的协作软件实体。此外,另一个名为AutoAgents(Chen等,2023a)的多代理框架生成并协调多个专门代理,形成一个针对复杂任务的AI团队。这些多代理框架标志着LLM代理开发中的一个新兴分支,提供了更高的可扩展性来应对复杂任务。
基于LLM的GUI智能
利用多模态LLM系统在应用程序中导航和控制GUI已成为一个突出的新兴研究领域。Yan等使用GPT-4V通过向LLM输入GUI截图来导航移动应用程序,在各种数据集和人类设计的导航任务中展示了最先进的性能。同样,AppAgent利用GPT-4V作为智能手机用户,使其能够基于智能手机快照在移动应用程序上采取行动,从而自主地在物理手机上满足用户请求。MobileAgent集成了OCR工具,以增强在类似移动代理中使用的GPT-V,旨在完成移动电话上的任务。这种集成显著提升了MobileAgent的完成率,使其达到与人类表现相当的水平。另一方面,CogAgent采用了一种不同的方法,通过训练一个专门用于GUI理解和导航的视觉语言模型,为各种GUI智能任务提供了更为定制的解决方案。
与现有框架不同,我们提出的UFO作为一个多模态LLM代理框架,专门设计用于在Windows操作系统中满足用户请求和操作应用程序UI。该框架超越了不同应用程序的限制,使得在Windows环境中能够无缝完成更复杂的任务。
三、 UFO的设计
UFO具备理解用户以自然语言表达的请求的能力,并将其分解为一系列逐步的子任务。然后,它观察应用程序的UI截图并操作其控制元素以完成整体目标。这一独特功能使UFO能够无缝地跨多个应用程序导航,有效地完成复杂任务并超越不同应用程序的界限。
UFO作为一个双代理框架运行,包括(i)一个HostAgent,负责选择一个应用程序来满足用户请求。当请求跨多个应用程序时,该代理还可以切换到不同的应用程序,并在前一个应用程序中部分完成任务。此外,(ii)一个AppAgent被纳入,负责在选定的应用程序上迭代执行操作,直到在特定应用程序内成功完成任务。两个代理都利用GPT-Vision的多模态能力来理解应用程序UI并满足用户的请求。它们使用一个控制交互模块来落实其动作,从而对系统产生实际影响。
在接收到用户请求后,HostAgent对需求进行分析。它努力从当前活动的应用程序中选择一个合适的应用程序来满足请求。UFO为HostAgent提供了完整的桌面截图和可用应用程序列表,以便HostAgent的决策过程。随后,HostAgent选择一个合适的应用程序并制定一个全面的全局计划来完成请求。这个计划然后传递给AppAgent。
一旦确定了合适的应用程序,它就会在桌面上被聚焦。然后,AppAgent开始执行操作以满足用户请求。在每个动作选择步骤之前,UFO会捕捉当前应用程序UI窗口的截图,并注释所有可用的控件。此外,UFO记录每个控件的信息供AppAgent观察。
AppAgent负责选择一个控件进行操作,然后通过控制交互模块选择在选定控件上执行的具体动作。这个决策基于AppAgent的观察、其先前的计划和其操作记忆。执行后,UFO为未来步骤构建一个本地计划,并继续下一个动作选择步骤。这个递归过程一直持续到在选定应用程序内成功完成用户请求为止。这就完成了用户请求的一个阶段。
在用户请求跨多个应用程序的情况下,AppAgent将在当前应用程序完成任务后,将任务委托给HostAgent以切换到不同的应用程序,从而启动请求的第二阶段。这个迭代过程一直持续到完全完成用户请求的所有方面。用户可以交互地引入新请求,促使UFO通过重复上述过程来处理新请求。在成功完成所有用户请求后,UFO结束其操作。在随后的章节中,我们将深入探讨UFO框架中每个组件的详细信息。
HostAgent
HostAgent负责选择一个活动应用程序来满足用户请求,或在必要时切换到新应用程序。此外,HostAgent构建一个全面的全局计划来协调整个任务。HostAgent接受以下信息作为输入:
用户请求:提交给UFO的原始用户查询。
桌面截图:当前桌面的截图,其中多个屏幕连接成一张图像。
应用程序信息:可用活动应用程序的详细信息列表,包括其名称和类型。
记忆:包括先前的思考、评论、动作和执行结果。
示例:用于应用程序选择的文本示例,作为任务的演示。
提供的信息,包括桌面截图、应用程序信息和记忆,共同为HostAgent提供了一个全面的数据集,以便决策。桌面截图和应用程序信息使HostAgent能够理解当前状态并限制其应用程序选择范围。另一方面,记忆作为过去请求完成的历史记录,帮助HostAgent基于先前的经验做出明智的决策。这种多方面的输入框架增强了HostAgent选择最合适的应用程序来满足用户请求的能力。
在收集所有相关信息后,HostAgent使用GPT-V生成以下输出:观察:当前桌面窗口截图的详细描述。
思考:完成给定任务所需的逻辑下一步,遵循链式思维(CoT)范式。
选定应用程序:选定应用程序的标签和名称。
状态:任务状态,标记为“继续”或“完成”。
全局计划:完成用户请求的后续行动计划,通常是全局和粗粒度的计划。
评论:提供的附加评论或信息,包括简要的进度总结和需要强调的要点。
提示HostAgent提供其观察和思考有双重目的。首先,它鼓励HostAgent仔细分析当前状态,提供其逻辑和决策过程的详细解释。这不仅增强了其决策的逻辑一致性),还提高了UFO的整体可解释性。其次,HostAgent确定任务的状态,如果认为任务已完成,则输出“完成”。HostAgent还可以为用户留下评论,报告进度、突出潜在问题或回答任何用户查询。一旦HostAgent确定了选定的应用程序,UFO将继续在该应用程序内采取具体行动以满足用户请求,由AppAgent负责执行这些行动。
3.3 AppAgent
AppAgent作为HostAgent的下游实体,负责在选定的应用程序上执行具体操作以满足用户请求。其输入和输出与HostAgent相比也有所不同,如图4所示。AppAgent接受以下输入:
用户请求:提交给UFO的原始用户查询,与HostAgent相同。
截图:截图包括三部分:(i)先前的截图;(ii)干净的截图;(iii)注释的截图。
控件信息:选定应用程序中启用操作的控件名称和类型列表。
记忆:先前的思考、评论、动作和执行结果,类似于HostAgent。
示例:用于动作选择的文本示例,作为演示。
与HostAgent不同,UFO为AppAgent提供了三种类型的截图以帮助其决策过程。先前的截图中突出显示了上一步选择的控件(即),有助于理解上一步操作的执行情况并分析动作的影响。干净的截图允许在没有注释障碍的情况下理解应用程序的状态,而注释的截图使用Set-of-Mark为每个控件标注一个编号(例如,36),有助于更好地理解UI元素的功能和位置。不同类型的控件用不同颜色标注以示区分。
此外,输入到AppAgent的记忆有两个关键目的。首先,它作为代理的提醒,使AppAgent能够分析过去的动作并减少重复无效动作的可能性。其次,它建立了跨应用程序通信的关键通道。执行结果,如从文档中提取的文本或图像描述,存储在记忆模块中。AppAgent可以选择性地将这些信息纳入需要的动作中,例如撰写包含不同来源文本的电子邮件。这种增强显著扩展了UFO的能力。
鉴于这些全面的输入,AppAgent仔细分析所有信息并输出以下内容:观察:当前应用程序窗口截图的详细描述,以及上一步动作是否生效的分析。
思考:当前动作决策背后的逻辑思维和推理过程。
选定控件:选定操作的控件标签和名称。
功能:应用于控件的具体功能及其参数。
状态:任务状态,标记为“继续”如果需要进一步操作,“完成”如果任务已完成,“待定”如果当前动作需要用户确认,“截图”如果代理认为需要进一步截图以注释更小的控件集,以及“应用程序选择”当任务在当前应用程序上完成并需要切换到不同的应用程序时。
本地计划:为完全满足用户请求的未来动作制定的更精确和细粒度的计划。
评论:附加评论或信息,包括简要的进度总结、突出要点或计划的变化,类似于HostAgent提供的内容。
虽然其某些输出字段可能与HostAgent相似,但UFO根据任务的输出状态确定下一步。如果任务未完成,它将功能应用于选定的控件,在执行后触发应用程序的下一个状态。AppAgent反复重复这一观察和反应的过程,直到完全完成用户请求或需要切换到不同的应用程序。
控制交互
为了在应用程序控件上执行和落实AppAgent选择的动作,UFO首先检测并将动作转化为可执行操作。Python包pywinauto提供了检查UI控件和执行操作的有用工具。它提供了一系列函数和类,用于自动化Windows GUI,允许程序化地与Windows应用程序进行交互和控制。这种能力对于自动化测试、脚本编写和重复任务的自动化特别有用。作为后端,我们选择了Windows UI Automation AP,因为它在UI检查和通过代码进行交互方面提供了强大的支持。UFO利用pywinauto检查应用程序的所有可操作控件,检索其精确位置和边界框,以便使用SoM进行注释。图5展示了一个带有pywinauto提供的控件信息的PowerPoint GUI注释示例。不同颜色代表不同的控件类型。此外,pywinauto为每个控件提供丰富的上下文,包括其名称、类型和标题,这些都是控件和动作选择的关键信息。
UFO专注于以下10种高相关性的受限控件类型,这些类型是通过我们的分析确定的。这些类型包括按钮、编辑、选项卡项、文档、列表项、菜单项、树项、组合框、超链接、滚动条。我们在表1中详细描述了这些控件类型。这些集合涵盖了应用程序中的大多数相关控件,并且可以根据需要进行扩展。
对于应用于控件的具体功能,我们选择了pywinauto支持的常见和广泛使用的鼠标操作,并开发了定制动作。这些动作包括:
点击:用鼠标点击控件项,可以选择左键或右键点击,单击或双击。
设置文本:将文本输入到可编辑控件中,模拟键盘行为。
注释:捕捉当前应用程序窗口的截图并在GUI上注释控件项。
总结:基于干净截图总结当前应用程序窗口的观察结果。
获取文本:检索控件的文本信息。
滚动:垂直或水平滚动控件项以使隐藏内容可见。
点击、设置文本、获取文本和滚动是pywinauto最初支持的常见功能,涵盖了GUI上的大多数日常操作。注释和总结是为满足UFO特殊请求而定制的操作。前者允许使用更简洁的控件列表重新注释GUI(详细信息见第3.5.3节),后者使UFO能够以文本形式描述其视觉观察结果以满足用户请求。在每一步,AppAgent将从这个可用列表中选择一个动作在应用程序的选定UI控件上执行。通过控制交互模块,UFO演变成一个能够对系统产生实际影响的LAM。
四、 特殊设计考虑
UFO结合了一系列专门为Windows操作系统量身定制的设计元素。这些增强功能旨在促进与UI控件的更有效、自动化和安全的交互,从而提高其解决用户请求的能力。关键功能包括交互模式、动作定制、控件过滤、计划反思和安全保障,每个功能将在后续小节中详细阐述。
交互模式
UFO为用户提供了进行交互和迭代交互的能力,而不是坚持一次性完成任务。在任务完成后,用户可以灵活地请求UFO增强先前的任务,提出一个全新的任务让UFO执行,或在UFO可能缺乏熟练度的任务中进行操作以协助UFO,例如提供密码输入。这种用户友好的方法不仅使UFO与市场上现有的UI代理区别开来,还允许其吸收用户反馈,促进更长和更复杂任务的完成。
动作定制
UFO目前支持对控件或UI进行操作。然而,必须注意,这个列表并不详尽,可以在Windows UI自动化的限制之外高度扩展和定制。这种可扩展性对于根据特定用户需求定制框架至关重要,允许集成诸如键盘快捷键、宏命令、插件等功能。一个说明性示例是利用summary(),它利用UFO的多模态能力根据需要观察和描述截图。
为了实现这种定制级别,用户可以注册他们的定制操作。这涉及指定目的、参数、返回值,并在必要时提供示例以供演示。然后,这些信息被纳入UFO的提示中供参考。一旦注册过程完成,定制操作就可以由UFO执行。这种内在的灵活性使UFO成为一个高度可扩展的框架,能够在Windows系统中满足更复杂和用户特定的请求。
控件过滤
在应用程序的GUI中,Windows UI自动化可以检测到数百个控件项,每个控件都可以进行操作。然而,注释所有这些控件可能会使应用程序UI截图变得混乱,阻碍单个项的视图,并生成一个庞大的列表,这可能会对UFO的最佳选择决策构成挑战。值得注意的是,其中一些控件可能对满足用户请求无用或无关。因此,实施过滤机制以排除某些控件并简化UFO的决策过程变得至关重要。
为了解决这个挑战,UFO采用了双层控件过滤方法,包括硬过滤和软过滤。在硬过滤层面,候选控件基于特定的高相关性和流行的控件类型进行约束,如第3.4节所述。此外,我们还引入了一个软过滤机制,使UFO能够动态确定是否重新选择一个更简洁的指定控件列表。当UFO感知到控件数量过多,可能会使当前截图变得混乱并阻碍所需控件的可见性时,这种自适应过滤方法会被触发。在这种情况下,UFO智能地返回一个感兴趣的控件候选列表。随后,它捕捉一个仅注释这些控件的新截图,促进更集中的有效过滤过程。这个功能增强了框架的自动化能力,使UFO能够做出智能决策以实现最佳性能。
计划反思
虽然应用程序选择代理和动作选择代理都负责启动计划以满足用户请求,但应用程序UI的实际状态可能并不总是与预期条件一致。例如,如果UFO最初计划在下一步点击“新邮件”按钮,但该按钮在当前UI中不可见,UFO可能需要首先导航到“主页”,然后找到“新邮件”按钮。因此,计划和动作都应相应地进行调整。
为了解决UI的这种动态特性,我们提示UFO在每个决策步骤中不断修订其计划,允许其在需要时偏离原来的路线。这种自适应方法增强了UFO对基于其观察的应用程序状态变化的响应能力。各种LLM框架和代理架构中已经证实了这种反思机制的有效性(Qiao等,2023;Ding等,2023;Shinn等,2023)。此外,计划反思的集成显著提高了UFO在导航和与各种应用程序UI交互时的性能。
安全保障
最后,我们认识到系统中某些操作的敏感性,例如文件删除等操作可能导致不可逆的更改。鉴于这些潜在风险,UFO引入了一个安全保障机制,在执行此类操作之前寻求用户确认。安全保障功能不仅限于表2中列出的操作,因为UFO会智能地评估每个操作的敏感性。通过部署这一安全保障,UFO确立了自己作为一个显著更安全和可信赖的代理,降低了系统受损或用户文件和隐私受到威胁的风险。
五、 实验
在本节中,我们全面评估了UFO在Windows操作系统上完成用户请求的性能。评估通过定量分析和案例研究相结合,涵盖了各种任务。
基准、基线和指标
为了全面评估在各种Windows应用程序中的性能,我们开发了一个名为WindowsBench的基准。该基准包含50个用户请求,涵盖了9个在日常任务中常用的流行Windows应用程序。选定的应用程序包括Outlook、Photos、PowerPoint、Word、Adobe Acrobat、File Explorer、Visual Studio Code、微信和Edge浏览器。这些应用程序用于不同的目的,如工作、通信、编码、阅读和网页浏览,确保了评估的多样性和全面性。对于每个应用程序,我们设计了5个不同的请求,另外5个请求涉及跨多个应用程序的交互。这种设置总共包含50个请求,每个应用程序至少有一个请求与后续请求相关联,提供了对UFO交互模式的全面评估。我们在附录A节的表5、6和7中详细列出了WindowsBench中使用的请求。涉及后续交互的请求在每个类别中按数字顺序组织。
鉴于现有Windows代理的缺乏,我们选择了GPT-3.5和GPT-4作为基线模型。由于这些模型缺乏直接与应用程序交互的能力,我们指示它们提供逐步的操作说明来完成用户请求。然后由人类代理执行这些操作。当需要视觉能力时,我们允许基线模型暂停,因为它们无法独立执行这些任务。
评估指标
在评估指标方面,我们从三个角度评估UFO对每个请求的表现:成功率、步骤数、完成率和安全保障率。成功率衡量代理是否成功完成请求。步骤数指代理完成任务所需的操作次数,作为效率的指标。完成率是正确步骤数与总步骤数的比率。最后,安全保障率衡量UFO在涉及敏感操作时请求用户确认的频率。
鉴于GPT-V可能会每次生成不同的输出,我们对每个请求进行了三次测试,并选择完成率最高的一次。这种方法对其他基线模型也是一致的。
性能评估
首先,我们在WindowsBench数据集上对各种框架进行了全面的定量比较,如表3所示。值得注意的是,我们的UFO在基准测试中达到了令人印象深刻的86%成功率,超过了表现最好的基线模型(GPT-4)两倍以上。这个结果突显了UFO在成功执行Windows操作系统任务方面的复杂性,使其成为一个高效的代理。此外,UFO表现出最高的完成率,表明其能够采取显著更准确的操作。我们还观察到,UFO以最少的步骤完成任务,展示了其作为框架的效率,而GPT-3.5和GPT-4则倾向于提供更多的步骤,但对任务的有效性较低。从安全角度来看,UFO达到了85.7%的最高安全保障率,证明其能够准确分类敏感请求,确认其作为一个安全代理的地位,积极寻求用户确认这些请求。
基线模型相对于UFO的较差表现可以归因于两个主要因素。首先,两个基线模型都缺乏直接与真实应用环境交互的能力,依赖于人类代理执行操作。这一限制导致无法适应环境中的变化和反思,导致准确性下降。其次,基线模型仅接受文本输入,忽略了GUI交互中视觉能力的重要性。这一弱点阻碍了它们在完成Windows用户请求方面的有效性,其中视觉信息通常至关重要。值得注意的是,GPT-4的表现优于GPT-3.5,突显了其在这些任务中的更大潜力。总之,考虑到上述所有结果,我们表明UFO在所有四个评估指标上表现出色,远远超过其他基线模型,确立了其作为与Windows操作系统交互的多功能和强大框架的地位。
我们在表4中展示了UFO在不同应用程序中的详细表现(GPT-3.5和GPT-4的详细分解见附录B节)。安全保障率列中的“-”符号表示与该应用程序相关的所有请求都不敏感。值得注意的是,UFO在所有应用程序中表现出色,展示了其在与各种软件交互和操作中的多功能性和有效性。然而,在Adobe Acrobat的情况下有一个例外,UFO的成功率为60%,完成率为78.7%。这可以归因于Adobe Acrobat中的许多控件类型不受Windows UI自动化支持,给UFO在该应用程序中的操作带来了挑战。重要的是,当任务涉及跨多个应用程序的请求时,UFO保持了高水平的性能。尽管需要更多的步骤(平均9.8步)来完成此类请求,UFO达到了80%的成功率、83%的完成率和100%的安全保障率。这突显了UFO在跨不同应用程序完成长期和复杂任务方面的复杂性,巩固了其作为Windows交互全能代理的地位。
六、案例研究
为了展示UFO的卓越能力,我们提供了两个案例研究,说明UFO如何高效地完成用户请求,特别是涉及PowerPoint和跨多个应用程序的任务。
删除PowerPoint演示文稿中的所有备注
在图6中,我们要求UFO执行以下请求:“帮我快速删除ufo测试幻灯片中的所有备注。”。当用户希望获得没有任何附带备注的幻灯片的干净版本时,这是一个常见的场景。传统方法涉及逐页手动删除备注,对于较长的幻灯片来说,这是一个繁琐且耗时的过程。
然而,UFO高效地识别出一个快捷方式,简化了整个过程。分析其初始计划,UFO提出使用“删除所有演示文稿备注”功能,这是一个由于其隐藏位置而常被PowerPoint用户忽视的功能。自动化过程从UFO导航到“文件”选项卡开始,提供对后台视图的访问。随后,它顺利过渡到“信息”菜单,可能找到所需功能。为了检查文档中的备注,它点击“检查问题”按钮并选择“检查文档”。检查后,隐藏的宝石“删除所有演示文稿备注”在菜单底部显现。UFO识别出这一点,向下滚动,找到该功能并启动点击。鉴于删除备注的敏感性,UFO实施其安全保障功能,寻求用户确认。确认后,所有备注一键消失。这个演示展示了UFO如何使用户能够更聪明地工作,而不是更辛苦地工作,确立了其作为智能助手的地位。该案例的视频演示可以在以下链接找到:https://github.com/microsoft/UFO/assets/11352048/cf60c643-04f7-4180-9a55-5fb240627834。
使用从多个应用程序收集的信息撰写电子邮件
我们提出了一个更复杂的请求,如图7所示:“我叫Zac。请阅读会议记录以确定所有行动项,并包括LLM-training.png中的LLM培训工作流程的详细描述,撰写一封包含这些内容的新电子邮件。将完整的电子邮件发送给我们的领导Hidan,要求他进行审查。”。这个请求对UFO在多个应用程序之间快速导航和交互的能力提出了重大要求。
作为回应,UFO为任务制定了一个动态计划,巧妙地在Word、Photos和Outlook之间导航,以实现总体目标。首先,它在Word中激活所需的文档文件,利用GetText API从主窗口提取文本,然后将其记录到记忆中。随后,UFO切换到Photos中的LLM培训图像文件,观察并生成详细描述以供将来撰写电子邮件。
收集到所有必要信息后,UFO打开Outlook应用程序,访问“新邮件”按钮以启动编辑块。代理然后重复截图捕捉、注释和动作过程,自主输入电子邮件收件人,起草主题,并撰写电子邮件正文,包括所有所需信息。在发送之前,由于操作的敏感性,安全保障功能提示用户确认。确认后,电子邮件被发送。我们在附录C节展示了UFO撰写的电子邮件。
结果是UFO精心撰写并发送的电子邮件,巧妙地捕捉了会议记录和LLM管道图像的详细信息。这展示了UFO在完成需要长期规划和记忆的复杂任务方面的卓越能力,即使这些任务跨越多个应用程序。该案例的视频演示可以在以下链接找到:https://github.com/microsoft/UFO/assets/11352048/aa41ad47-fae7-4334-8e0b-ba71c4fc32e0。
六、 总结
我们承认当前UFO框架存在若干限制。首先,可用的UI控件和操作目前受pywinauto和Windows UI自动化支持的限制。偏离此标准和后端的应用程序和控件目前不受UFO支持。为了扩大UFO的能力,我们计划通过支持替代后端(如Win32 API)或结合专用GUI模型进行视觉检测(如CogAgent所示,Hong等,2023b)来扩展其范围。这一增强将使UFO能够跨更广泛的应用程序操作并处理更复杂的操作。
其次,我们认识到UFO在探索不熟悉的应用程序UI时面临的挑战,这些UI可能是小众或不常见的。在这种情况下,UFO可能需要大量时间来导航和识别正确的操作。为了解决这个问题,我们建议利用在线搜索引擎的知识作为UFO的外部知识库。分析搜索结果中的文本和图像指南将使UFO能够提炼出更精确和详细的计划,以完成在不熟悉应用程序上的请求,增强其适应性和通用性。