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.rhkb.cn/news/381780.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP第一次综合实验

一、实验拓扑 二、实验要求 1、R6为ISP,接口IP地址均为公有地址,该设备只能配置地址之后不能冉对其进行任何配置 2、R1-R5为局域网,私有Ip地址192.168.1.0/24,请合理分配 3、R1、82、R4,各有两个环回IP地址;R5,R6各…

Linux、Windows和macOS上使用Telnet

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS上使用Telnet时,不同的系统有不同的工具和设置方法。以下是在这些系统上使用Telnet的简要说明: Linux 在Linux上,Telnet通常是通过telnet命令来使用的。首先,你需要确保你的系…

Ubuntu 24.04 LTS Noble安装 FileZilla Server

FileZilla Server 是一款使用图形用户界面快速创建 FTP 服务器的软件。它有助于测试需要 FTP 服务器功能的各种项目。虽然早期的 FileZilla FTP 服务器仅适用于 Windows 和 macOS,但现在我们也可以在 Linux(例如 Ubuntu 24.04)上安装 FileZil…

解决Visual studio内报错信息:MSB8036:找不到 Windows SDK 版本问题

问题描述: 找不到WindowsSDK版本,请安装所需版本的Windows SDK,或者在项目属性页中通过右键单击解决方案并选择“重定解决方案目标”来更改SDK版本。 首先,如果你尝试了以下两种方法: (1)重新…

43 华三AC登录Web页面

一 无线上WEB页面 1 创建vlan 56 [AC-KongZhi]vlan 56 2 退出 [AC-KongZhi-vlan56]quit 3 进入vlan三层口 配置IP地址 [AC-KongZhi]interface Vlan-interface 56 [AC-KongZhi-Vlan-interface56]ip address 192.168.56.55 24 4 在AC控制器与Host主机的接口上能通关vlan 5…

【人工智能】使用Python的dlib库实现人脸识别技术

🔥 个人主页:空白诗 文章目录 一、引言二、传统人脸识别技术1. 基于几何特征的方法2. 基于模板匹配的方法3. 基于统计学习的方法 三、深度学习在脸识别中的应用1. 卷积神经网络(CNN)2. FaceNet和ArcFace 四、使用Python和dlib库实…

56 网络层

本节重点 理解网络层的作用,深入理解IP协议的基本原理 对整个TCP/IP协议有系统的理解 对TCP/IP协议体系下的其他重要协议和技术有一定的了解 目录 前置认识ip协议基本概念协议头格式网段划分特殊的ip地址ip地址的数量限制私有ip和公有ip路由路由表生成算法 在复杂…

【专题】百度萝卜快跑体验:Robotaxi发展现状与展望报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p37054 百度“萝卜快跑”近期因事故与抵制引发关注,武汉部署超300辆全无人驾驶车。体验显示其安全但策略保守,行驶效率低于人类司机,价格亲民。阅读原文,获取专题报告合集全文&#xf…

力扣高频SQL 50题(基础版)第六题

文章目录 1378. 使用唯一标识码替换员工ID题目说明思路分析实现过程结果截图总结 1378. 使用唯一标识码替换员工ID 题目说明 Employees 表: ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ------…

PWM再理解(1)

前言 昨天过于劳累,十点睡觉,本来想梳理一下PWM,今天补上。 PWM内涵 PWM全称:Pulse Width Modulation,也就是脉宽调制的意思,字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行…

python+pyqt开发海康相机数据采集系统

pythonpyqt开发海康相机数据采集系统 pythonpyqt开发海康相机数据采集系统 1 开发软件功能: 支持搜索相机:Gige相机设备和USB相机设备支持两种触发模式:软件触发和编码器触发支持数据采集过程中图像实时保存支持参数调节和实时预览&#xff…

ssh到huawei交换机

import re from netmiko import ConnectHandlerips [ 10.32.5.130, 10.32.5.131, 10.32.5.132, 10.32.5.133, 10.32.5.134, 10.32.5.135, ]for ip in ips:hw_fw {device_type: huawei,host: ip, username: 493031,password: 密码,port: 22 }net_connect ConnectHandler(*…

threejs零基础搭建3D可视化汽车展厅

前置知识(最下面有完整代码) 每个代码都有注释,零基础也能看懂 中文官方文档教程 创建项目 创建空文件夹 执行如下命令初始化package.json文件 npm init -y安装threejs包 yarn add three安装tween.js动画库,用于做动画 tweenjs文档 yarn add @tweenjs/tween.js安装gui调…

电子印章生成器在线制作免费工具

电子印章生成器在线制作免费工具 电子印章生成器是一种在线工具,用户可以通过它快速生成各种类型的电子印章。输入文字即可制作电子印章,并且支持下载透明无背景的PNG格式图。可以自定义印章的文字、颜色、老化、边线等参数,并选择本地字体或…

第2章-数学建模

目录 一、数据类型 【函数】: (1)find()、rfind()、index()、rindex()、count() (2)split()、rsplit() (3)join() (4)strip()、rstrip()、lstrip() (5&…

怎样使用 Juicer tools 的 dump 命令将.hic文件转换为交互矩阵matrix计数文件 (Windows)

创作日志: 万恶的生信…一个scHiC数据集没有提供处理好的计数文件,需要从.hic转换。Github一个个好长的文档看了好久才定位到 juicer tools 的dump命令,使用起来比想象中简单。 一、下载Juicer tools 注意:使用Juicer tools的前提…

vxe-table——实现切换页码时排序状态的回显问题(ant-design+elementUi中table排序不同时回显的bug)——js技能提升

之前写的后台管理系统,都是用的antdelement,table组件中的【排序】问题是有一定的缺陷的。 想要实现的效果: antv——table组件一次只支持一个参数的排序 如下图: 就算是可以自行将排序字段拼接到列表接口的入参中&#xff0c…

Qt实战:专栏内容介绍及目录

1、专栏介绍 Qt相比Visual Studio (VS) 的优势主要体现在跨平台能力、‌丰富的功能、‌高性能、‌现代UI设计、‌社区支持和企业支持等方面。‌ 跨平台能力:‌Qt 允许应用程序在多个操作系统上编译和运行,‌无需为每个平台编写特定的代码,‌…

设计模式第二天|设计模式创建型:工厂模式、抽象工厂模式、单例模式、建造者模式

文章目录 设计模式的分类工厂模式简单工厂定义核心俗话说优点缺点具体实现 工厂模式(Spring IOC控制反转)定义核心**组成****俗话说****实现思路****具体实现****使用场景** 抽象工厂模式**前提概念****定义****缺点****具体实现** 单例模式**定义****俗…

Django学习第一天(如何创建和运行app)

前置知识: URL组成部分详解: 一个url由以下几部分组成: scheme://host:port/path/?query-stringxxx#anchor scheme:代表的是访问的协议,一般为http或者ftp等 host:主机名,域名,…