UFO:革新Windows操作系统交互的UI聚焦代理

人工智能咨询培训老师叶梓 转载标明出处

人机交互的便捷性和效率直接影响着我们的工作和生活质量。尽管现代操作系统如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的功能。

论文链接:https://arxiv.org/abs/2402.07939

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/870057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

javaEE-04-Filter

文章目录 FilterFilter 的生命周期FilterConfig类FilterChain过滤器链Filter 的拦截路径 Filter Filter 过滤器它是 JavaWeb 的三大组件之一,它是 JavaEE 的规范。也就是接口,它的作用是:拦截请求,过滤响应。 Filter的工作流程图解: 以管…

HarmonyOS NEXT零基础入门到实战-第四部分

自定义组件: 概念: 由框架直接提供的称为 系统组件, 由开发者定义的称为 自定义组件。 源代码: Component struct MyCom { build() { Column() { Text(我是一个自定义组件) } } } Component struct MyHeader { build() { Row(…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十五章 Pinctrl和GPIO子系统实验

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

神经网络拟合任何函数的数学原理

神经网络拟合任何函数的数学原理 神经网络拟合能力的数学表达 神经网络之所以理论上可以拟合任何函数,其核心在于其多层的结构和非线性的激活函数。通过增加层数和神经元数量,神经网络可以逼近复杂的函数关系。这一过程可以通过万能近似定理&#xff08…

Vue中的diff算法

文章目录 diff算法是什么比较方式源码分析patchpatchVnodeupdateChildren小结Vue3中diff算法优化diff算法是什么 diff算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: 比较只会在同层级进行,不会跨层级比较在dff比较的过程中,循环从两边向中间比较(首位交叉…

24年第三届钉钉杯大学生大数据挑战赛浅析

需要完整资料,请关注WX:“小何数模”! 本次钉钉杯大数据挑战赛的赛题已正式出炉,无论是赛题难度还是认可度,该比赛都是仅次于数模国赛的独一档,可以用于国赛前的练手训练。考虑到大家解题实属不易&#xf…

LiRouter V3.0无人机自主精细化巡检 LiStation V3.0输电线路巡检数障处理分系统 软件下载License使用

PeacePower LiRouter 输电线路无人机自主巡检航线规划系统(本文档中简称 “LiRouter”),是基于高精度三维点云数据,在少量人工干预下为输电线路无人 机自主精细化巡检自动生成并输出航线的专业软件工具。 凭借在输电线路无人机智能…

04-数据库MySQL

一、项目要求 二、项目过程介绍 1、新建数据库 2、新建表 3、处理表 1.修改student 表中年龄(sage)字段属性,数据类型由int 改变为smallint 2.为Course表中Cno 课程号字段设置索引,并查看索引 3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引&#xf…

Vue使用FullCalendar实现日历/周历/月历

Vue使用FullCalendar实现日历/周历/月历 需求背景:项目上遇到新需求,要求实现工单以日/周/月历形式展示。而且要求不同工单根据状态显示不同颜色,一个工单内部,需要以不同颜色显示三个阶段。 效果图 日历 周历 月历 安装插件…

【分布式锁】Redission实现分布式锁

接着上一节,我们遇到了超卖的问题,并通过Redis实现分布式锁,进行了解决。本节 我将换一种方式实现分布式锁。 前提: nginx、redis、nacos 模块1: provider-and-consumer 端口 8023 模块2 rabbitmq-consumer 端口 8021 …

推荐几款支持AI剪辑并可使用个人视频素材的软件!

最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量 其实现在大部分的AI视频剪辑工具都可以实现一键成片,这里给你分享6款可以使用自己的素材实现AI剪辑的工具及其操作方法! 一、剪映 剪映…

微信小程序之计算器

在日常生活中,计算器是人们广泛使用的工具,可以帮助我们快速且方便地计算金额、成本、利润等。下面将会讲解如何开发一个“计算器”微信小程序。 一、开发思路 1、界面和功能 “计算器”微信小程序的页面效果如图所示 在计算器中可以进行整数和小数的…

光猫设置桥接 路由器pppoe拨号 设置正常访问光猫 (openwrt)

网络信息展示 光猫桥接很简单吧,就不说了。先来列出修改前的网络接口和网络信息。 光猫192.168.1.1,openwrt 10.0.0.0/8 初始配置 需要记录的信息:WAN的网络设备(eth1),光猫的IP(192.168.1.1&am…

Qt中在pro中实现一些宏定义

在pro文件中利用 DEFINES 定义一些宏定义供工程整体使用。(和在cpp/h文件文件中定义使用有点类似)可以利用pro的中的宏定义实现一些全局的判断 pro中实现 #自定义一个变量 DEFINES "PI\"3.1415926\"" #自定义宏 DEFINES "T…

模拟电子技术-实验四 二极管电路仿真

实验四 二极管电路仿真 一.实验类型 验证性实验 二.实验目的 1、验证二极管的单向导电性 2、验证二极管的稳压特性。 三.实验原理 二极管的单向导电性: 四、实验内容 1、二极管参数测试仿真实验 1)仪表仿真…

【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践】

目录 前言一、智能体1-1、Agent概述1-2、Agent与ChatGPT的区别 二、多智能体框架MetaGPT2-1、安装&配置2-2、使用已有的Agent(ProductManager)2-3、多智能体系统介绍2-4、多智能体案例分析2-4-1、构建智能体团队2-4-2、动作/行为 定义2-4-3、角色/智…

力扣141环形链表问题|快慢指针算法详细推理,判断链表是否有环|龟兔赛跑算法

做题链接 目录 前言: 一、算法推导: 1.假设有环并且一定会相遇,那么一定是在环内相遇,且是快指针追上慢指针。 2.有环就一定会相遇吗?快指针是每次跳两步,有没有可能把慢指针跳过去? 3.那一定…

算法第十五天:leetcode19.删除链表的倒数第N个节点

一、删除链表的倒数第N个节点的题目描述与链接 19.删除链表的倒数第N个节点的链接如下表所示,您可直接复制下面网址进入力扣学习,在观看下面的内容之前您一定要先做一遍哦,以便让我印象更深刻!!!https://leetcode.cn/p…

学习记录——day16 操作受限的线性表 链式栈

操作受限的线性表 1、在之前的内容,无论是顺序表还是链表,都是详细处理的线性表,既可以在端点处进行操作也 可以在中间位置操作 2、现实生活中,有很多并不需要在中间进行操作的序列,只在端点处进行操…

安宝特方案|解放双手,解决死角,AR带来质量监督新体验

AR质量监督 解放双手,解决死角 在当今制造业快速发展的背景下,质量监督成为确保产品高质量和完善的管理制度的关键环节。然而,传统的质量监督方式存在诸多挑战,如人工操作带来的效率低下、查岗不及时、摄像头死角等问题。 为了解…