人工智能咨询培训老师叶梓 转载标明出处
人机交互的便捷性和效率直接影响着我们的工作和生活质量。尽管现代操作系统如Windows提供了丰富的图形用户界面(GUI),使得用户能够通过视觉和简单的点击操作来控制计算机,但随着应用程序功能的日益复杂化,用户在执行跨应用任务时仍面临着挑战。从繁琐的数据输入到复杂的多步骤流程,用户经常需要在不同的应用程序之间切换,这不仅耗时耗力,也容易出错。
尤其当用户需要根据自然语言请求来执行任务时,现有的技术往往无法直接理解并转化为具体的操作。例如,将电子邮件草拟、会议笔记整理、图像编辑等任务自动化,需要一个能够理解自然语言并跨应用程序操作的智能代理。随着大型语言模型(LLMs)和人工智能技术的发展,人们越来越期待能够实现更加智能化、自动化的交互体验。
微软公司的研究团队提出的UFO(User Interface-Focused Agent)正是为了解决这一问题而设计的。UFO是一个创新的UI聚焦代理,专门为Windows操作系统环境量身打造。它利用了最新的GPT-Vision技术,通过自然语言处理和图形用户界面分析,能够理解并执行复杂的用户请求。UFO的设计不仅提高了任务执行的效率,还通过自动化减少了人为错误,使用户能够更加专注于创造性和战略性的工作。
UFO的概念图
它通过从 Word 文档中提取信息、观察照片中的图形以及从 PowerPoint 演示文稿中总结内容来完成用户请求,然后利用这些信息自动撰写并发送电子邮件
UFO介绍
UFO采用双代理架构,其设计初衷是作为一个中间层,理解用户的自然语言请求,并将其转化为对Windows操作系统上应用程序的具体操作。
UFO架构图
Figure 2中UFO的架构以双代理框架为核心,包括一个HostAgent和一个AppAgent。HostAgent的职责是分析用户请求,并从当前活跃的应用程序中选择一个最合适的应用程序来执行任务。如果一个请求需要跨越多个应用程序,HostAgent也能够在完成前一个应用程序中的任务后,切换到不同的应用程序。
HostAgent在接收到用户请求时,会进行需求分析。它利用完整的桌面截图和可用应用程序列表来辅助决策过程。这些信息帮助HostAgent理解当前桌面环境和应用程序的状态,从而选择最合适的应用程序来响应用户的需求。选定应用程序后,HostAgent会制定一个全面的全局计划,这个计划随后会传递给AppAgent。
AppAgent负责在选定的应用程序上迭代执行动作,直至任务在特定应用程序内成功完成。在每次动作选择之前,UFO会捕获当前应用程序用户界面窗口的屏幕截图,并标注所有可用的控件。UFO还会记录每个控件的信息,供AppAgent观察和决策。AppAgent的任务是选择一个控件进行操作,并通过控制交互模块执行特定动作。这个决策过程基于AppAgent的观察、先前计划和操作记忆。
执行动作后,UFO会构建未来步骤的本地计划,并继续进行下一步动作选择。这个过程会递归地继续,直到用户请求在选定的应用程序中成功完成。如果用户请求涉及多个应用程序,AppAgent将在完成当前应用程序的任务后,将任务委托回HostAgent,以便切换到不同的应用程序,从而启动请求的第二阶段。这个迭代过程会持续,直到用户请求的所有方面都完全完成。
用户还可以交互式地引入新请求,促使UFO通过重复上述过程来处理新请求。一旦所有用户请求都成功完成,UFO就会结束其操作。在随后的小节中,论文深入探讨了UFO框架内每个组件的复杂细节,包括HostAgent和AppAgent的具体工作机制和它们如何协同工作来满足用户的需求。
在UFO代理的设计中,HostAgent扮演着至关重要的角色,它负责选择一个活跃的应用程序来执行用户请求,必要时还能切换到新的应用程序。HostAgent通过分析用户提交的原始查询、当前桌面的屏幕截图、可用应用程序的详细信息以及包含先前操作和执行结果的记忆模块,来构建一个全面的全局计划。这些信息的综合为HostAgent提供了决策的数据支持。
HostAgent利用GPT-V生成包括观察、思考、选定应用程序、状态、全局计划和评论在内的输出。观察是对当前桌面窗口屏幕截图的详细描述,而思考则是基于逻辑的下一步行动。选定的应用程序是完成任务所选择的标签和名称。状态可以是"继续"或"完成",而全局计划则是一个宏观的行动方案。评论可能包括进度摘要和需要突出的重点。
HostAgent在决策过程中不仅增强了UFO的逻辑一致性,还提高了其整体可解释性。它能够根据任务的完成情况决定状态,并在必要时向用户报告进度或提出问题。一旦确定了应用程序,HostAgent就会指导AppAgent在该应用程序内执行具体动作,以满足用户请求。这种设计使得UFO能够智能地处理复杂的任务,提高用户与计算机系统的交互效率。
HostAgent 的示例
AppAgent为在HostAgent之后的下游实体,它的任务是在选定的应用程序上执行特定动作以满足用户请求。AppAgent的输入和输出与HostAgent相比有所不同。AppAgent的输入包括:
- 用户请求:与HostAgent接收的原始用户查询相同。
- 屏幕截图:包括三部分:(i) 上一次的屏幕截图;(ii) 未标注的干净截图;以及 (iii) 标注了控件的屏幕截图。
- 控件信息:列出了选定应用程序中启用操作的控件名称和类型。
- 内存:包含先前的想法、评论、动作和执行结果,与HostAgent相同。
- 示例:作为动作选择的文本示例,作为任务演示。
AppAgent使用这三种类型的屏幕截图来辅助决策过程。上一次的屏幕截图中,最后一个选择的控件会以红色矩形突出显示,这有助于理解上一步的操作执行和行动的影响。干净的屏幕截图允许在没有标注阻碍的情况下理解应用程序的状态,而标注的屏幕截图通过使用标记集合(Set-of-Mark, SoM)对每个控件进行编号(例如36),便于更好地理解UI元素的功能和位置。不同类型的控件用不同的颜色进行区分。
输入到AppAgent的内存有两个关键目的。首先,它作为代理的提醒,使AppAgent能够分析过去的行动,并减少重复无效行动的可能性。其次,它建立了跨应用程序通信的重要渠道。执行结果,如从文档中提取的文本或图像描述,存储在内存模块中。AppAgent可以有选择地结合这些信息进行需要的行动,例如使用来自不同来源的文本撰写电子邮件。这种增强显著扩展了UFO的能力。
综合这些信息后,AppAgent会细致分析并输出以下内容:
观察:对当前应用程序窗口屏幕截图的详细描述,以及对上一个行动是否生效的分析。
思考:当前行动决策背后的逻辑思考和理由。
选定控件:被选择操作的控件标签和名称。
功能:应用于控件的具体功能及其参数。
状态:任务状态,可能需要"继续"进一步的行动、"完成"任务、"待定"需要用户确认、"屏幕截图"代理认为需要进一步的屏幕截图来标注更小的控件集,或"应用选择"当前应用程序上的任务已完成,需要切换到不同的应用程序。
本地计划:一个更精确和细粒度的计划,用于完全满足用户请求。
评论:包括简要进度摘要、突出点或计划变更的额外评论或信息,类似于HostAgent所提供的。
尽管AppAgent的一些输出字段可能与HostAgent有相似之处,但UFO会根据任务的状态输出来确定下一步。如果任务未完成,它会将功能应用于选定的控件,触发应用程序的下一个状态执行。AppAgent会反复这个过程,观察并响应选定的应用程序,直到用户请求完全完成或需要切换到不同的应用程序。
AppAgent 的示例
UFO的控制交互模块是其核心功能之一,它负责将ActAgent选定的操作转化为应用程序中的实际控制动作。这一模块利用了Python的pywinauto库,该库提供了丰富的工具来检查用户界面控件并执行操作。通过Windows UI Automation API,UFO能够与应用程序的用户界面进行深入交互,从而实现自动化测试、脚本编写和重复任务的自动化。UFO特别关注10种受限控件类型,如按钮、编辑框、标签项、文档、列表项、菜单项、树项、组合框、超链接和滚动条。这些控件类型覆盖了大多数应用程序中常见的交互元素。
为了执行这些控件的操作,UFO不仅使用了pywinauto支持的常见鼠标操作,如点击、设置文本、获取文本和滚动,还开发了自定义操作,例如注释和总结。注释功能允许UFO重新注释GUI,以更简洁的方式突出显示控件,而总结功能则使UFO能够基于清晰的屏幕截图总结其视觉观察结果。这些功能的结合使得UFO能够根据ActAgent的决策,智能地与应用程序的用户界面进行交互。
使用 pywinauto 工具在 PowerPoint GUI 上进行控件注释的示例图。不同的颜色代表不同类型的控件 UFO 支持的控件类型的详细描述
这些控件类型包括按钮、编辑框、标签项、文档、列表项、菜单项、树项、组合框、超链接和滚动条
UFO还有一些特别的设计,旨在提升其在Windows操作系统中的交互效率和用户体验。这些设计考虑包括交互模式、动作定制、控件过滤、计划反思和安全保护机制。
交互模式允许UFO与用户进行更自然的交流。与传统的一次性任务完成不同,UFO支持迭代和交互式的任务处理。这意味着在完成一个任务后,用户可以请求UFO对之前的任务进行改进,提出新的任务,或者在UFO可能不太擅长的领域提供帮助,比如输入密码。这种灵活性不仅使UFO区别于市场上其他UI代理,还使其能够吸收用户反馈,完成更复杂和长期的任务。
动作定制是UFO的另一个关键特性。虽然UFO已经能够执行一系列预定义的操作,但其设计允许用户根据特定需求注册和定制新操作。用户可以指定操作的目的、参数、返回值,并提供示例,这些信息将被纳入UFO的执行提示中。一旦注册完成,这些定制操作就可以被UFO执行,极大地扩展了其功能和应用范围。
控件过滤机制是UFO为了优化用户界面控件的选择过程而设计的一种智能过滤方法。在应用程序的GUI中,可能会检测到数百个控件,但并非所有控件都对完成特定任务有用。UFO通过硬过滤和软过滤两级方法来减少干扰,确保只有最相关的控件被选中。这种过滤机制不仅提高了UFO的决策效率,还避免了在用户界面上产生过多的视觉混乱。
计划反思机制使UFO能够根据应用程序UI的实际状态动态调整其计划。例如,如果UFO计划点击一个按钮,但该按钮在当前UI中不可见,UFO将需要先导航到主页面,然后再找到并点击该按钮。这种自适应方法增强了UFO对环境变化的响应能力,提高了其在不同应用UI中导航和交互的性能。
安全保护机制是UFO设计中的一个重要方面。UFO能够智能评估每个操作的敏感性,并在执行可能影响系统配置或用户隐私的操作之前请求用户确认。这种机制不仅提高了UFO的安全性,还增强了用户对UFO操作的信任度。
UFO 考虑的敏感动作的不完整列表。这些动作包括发送消息或电子邮件、删除或修改文件和文件夹、关闭窗口或应用程序、访问摄像头或麦克风、安装或卸载软件、浏览器历史记录或密码检索
通过这些特别设计考虑,UFO不仅能够更有效地与Windows操作系统中的应用程序交互,还能够提供更安全、更可定制的用户体验。
实验
究者们精心构建了WindowsBench基准测试平台,用以全面评估UFO代理在Windows操作系统中处理用户请求的性能。该基准测试集成了50项任务,覆盖了9种用户常用的应用程序,如邮件客户端、图片浏览器、演示软件等,这些任务设计得非常贴近用户的日常使用模式。为了评估UFO的性能,研究者们不仅设置了GPT-3.5和GPT-4作为对比基线,还定义了包括成功率、步骤完成率和安全保护率在内的多个评估指标。
在 WindowsBench 上对 UFO 进行的性能比较 WindowsBench 上 UFO 实现的应用程序性能分解
在性能评估方面,UFO的表现远远超出了基线模型。其在成功率上的优势表明,UFO在执行用户请求方面更为可靠。UFO的高步骤完成率也反映了其在执行任务时的高效率,即UFO能够在更少的步骤内完成更多的正确操作。UFO在安全保护率上的优异表现,证明了其在处理敏感操作时能够谨慎地请求用户确认,从而确保了操作的安全性和用户数据的保护。
研究者们通过具体的案例展示了UFO代理在实际应用中的表现和能力。这些案例研究不仅验证了UFO在单一应用程序中的操作能力,还展示了它在处理跨应用程序任务时的灵活性和效率。他们首先提出了一个涉及PowerPoint演示文稿的任务,要求UFO帮助用户快速删除幻灯片中的所有备注。通常,这项工作需要用户逐页手动删除备注,非常耗时。然而,UFO通过分析并利用PowerPoint的"移除所有演示文稿备注"功能,以一种更高效的方式简化了整个过程。UFO首先导航至"文件"选项卡,进入后台视图,然后依次点击"信息"、"检查问题"、"检查文档",最终找到并点击"移除所有演示文稿备注"按钮。在执行这一敏感操作前,UFO还会启动安全保护机制,请求用户确认,确保操作的安全性。
UFO 如何高效地完成用户请求的详细示例,特别是涉及 PowerPoint 的任务
研究者们还设计了一个更复杂的案例,要求UFO从Word文档中读取会议记录,识别所有行动项,并结合一张图片文件中的LLM(大型语言模型)培训工作流程的详细描述,撰写一封电子邮件,并发送给我们的领导者Hidan以征求他的审查意见。这个任务考验了UFO在不同应用程序间导航和交互的能力。UFO首先在Word中打开会议记录文档,提取行动项,然后转到图片查看器中观察并生成LLM培训工作流程的描述。随后,UFO在Outlook中创建了一封新邮件,自动填写了收件人、主题,并撰写了邮件正文,包括所有必要的信息。在发送邮件之前,UFO同样会触发安全保护机制,确保用户对这一敏感操作有所了解并同意执行。
UFO 如何完成涉及多个应用程序的复杂请求的详细示例
UFO 被要求读取会议记录,识别所有行动项目,并结合 LLM 培训工作流程的详细描述来撰写一封电子邮件,并发送给我们的领导 Hidan 以请求他的审查
UFO作为首个专为Windows操作系统环境设计的UI代理,通过其创新的双代理框架和控制交互模块,不仅提高了用户与计算机交互的效率,而且为未来的人机交互提供了新的可能性。尽管UFO展现出卓越的性能,但也有其局限性,包括对pywinauto和Windows UI Automation支持的依赖,以及在面对不熟悉的应用程序UI时可能遇到的挑战。未来的工作将探索支持替代后端和集成专用GUI模型,以扩展UFO的功能。