【论文通读】UFO:A UI-Focused Agent for Windows OS Interaction

UFO:A UI-Focused Agent for Windows OS Interaction

  • 前言
  • Abstract
  • Motivation
  • Methods
  • Experiment
  • Conclusion

前言

Windows客户端第一个JARVIS,利用GPT4 Vision识别截图信息辅助智能体自动化执行操作,作为微软大肆宣传的一篇工作,其前瞻性还是值得学习的,只不过在实现上博主认为还有很大的改进空间,不过也算是Windows端AI助手的基石工作了。

Paperhttps://arxiv.org/pdf/2402.07939.pdf
Codehttps://github.com/microsoft/UFO
FromarXiv 1 Mar 2024

Abstract

本文提出UFO,一种新颖的以UI为中心的智能体,它利用GPT-Vision的功能满足针对Windows操作系统上的应用程序定制用户的请求。UFO采用双智能体框架来观察和分析Windows下应用的图像化界面和控制信息。这使得智能体能够在各种应用程序内或者跨应用进行操作满足用户的请求。框架集成了一个控制模块,无需人工干预就可以实现自动化操作。UFO将艰巨且耗时的过程转变为仅通过自然语言命令就可以完成的任务。作者在9个流行的windows应用上测试UFO,涵盖了用户日常使用的各种场景。从定性和定量结果表明UFO在满足用户的请求方面的有效性。UFO是目前第一个为Windows操作系统制定的UI智能体。

Motivation

  1. Windows在操作系统所占市场份额大。
  2. Windows端应用丰富,操作复杂,涉及长程计划和多应用交互。
  3. 现有的智能体主要关注于智能手机。

UFO的优势:

  1. 聚焦UI,与Windows操纵系统无缝交互。
  2. 双Agent框架,各司其职。
  3. 无需人工干预,完全自动化,同时也运行用户交互。
  4. 高度可扩展性,可以针对任务和应用程序定制操作和组件。
  5. 根据它们在github上更新的内容来看,RAG似乎加入了最新的UFO中,这有助于进一步提升UFO的能力。

Methods

image.png
UFO结合两个Agent,它们决定选择哪些应用程序和组件来处理用户请求,其中:

  • AppAgent:选择一个正确的应用程序来满足用户的请求。当面临扩应用请求,还可以切换应用程序。
  • ActAgent:动作选择智能体。负责在所选程序上执行动作,直到任务完成。

这两个Agent利用GPT-Vision的多模态功能来理解应用程序UI并满足用户的请求。它们利用一个控制交互模块来确定它们的行动,从而对系统程序进行操作。
image.png
具体来说,UFO为AppAgent提供了完整的桌面截图和一系列可供参考的应用程序,AppAgent从其中选择合适的程序,并制定一个全面的计划来完成请求,然后将计划转交给ActAgent。
image.png
一旦确认了合适的应用程序,程序就会在桌面上显示,接着,ActAgent进行操作完成用户的请求。在每个动作执行之前,UFO会捕获当前应用程序的窗口截图,所有可控组件都会被标注。
ActAgent的任务是选择要操作的控件,基于观察、计划和记忆,通过控件交互模块选择特定控件执行特定操作。执行完毕后,UFO为未来的步骤构建本地计划,并进行到下一个行动选择步骤,这个递归过程会一直持续到用户成功完成任务为止。
在跨应用请求的场景,ActAgent会将任务委托给AppAgent,以便ActAgent完成当前应用程序上任务后切换到另一个应用程序,从而响应下一阶段的请求。
在UFO构建过程中,还应用了如下的一些方法:

  • 用户可以选择交互式引入新的请求,整个过程会迭代持续到用户所有请求完全完成。
  • 为了解决自动化标注会造成截图界面混乱,以及干扰UFO做决策,团队提出双层控制过滤机制,第一层过滤与操作相关度低的组件标注,第二层让UFO动态选择更简洁的控件列表。
  • 任务执行时,真实的状态和预期可能并不一致,因此UFO会在每个决策步骤中不断修改计划,根据需要偏离原始路线。
  • 由于操作系统的敏感性,可能会有一些不可逆的风险操作,为此, UFO会智能评估操作的敏感性,部署相应的防护措施。

Experiment

**数据:**研究团队在9个常用的Windows应用程序上对UFO进行了测试,包括Outlook、Photos、PPT、Word等,涵盖了Windows用户的高频使用场景,能够测试工作、交流、编码、阅读、网页浏览等目的。对于每个请求,团队设计了5个不同的请求,此外还有5个跨应用交互的请求,共50个请求。该数据集也被整理成名为WindowsBench的测试基准。
**评估指标:**从成功度、步骤、完成率和保障率这几个角度来评估UFO。
**baseline:**考虑到没有现成的Windows Agent,团队选择GPT-3.5和GPT-4作为基座模型,并根据它们的指示由人工操作来完成用户请求。
实验结果如下表所示:
image.png
UFO在WindowsBench上成功率达到了86%,远远超过了GPT-4。此外,在执行步骤、完成率和安全度上也是最高的。
最后,从场景角度对WindowsBench的评估结果如下:
image.png

Conclusion

一个在Windows场景的通用智能体,通过两个智能体交互的形式完成用户的指令。其特点是利用GPT-4 Vision的识别能力,模拟人类在Windows系统下操作的行为,这确实特别接近人类对通用AI助手的幻想——即钢铁侠的JARVIS。该工作还有一个亮点是允许用户可选择介入,这对环境实时变化的场景友好。当然,这个工作还是一些不足和值得思考的地方:

  1. 工具需要定制,不具有泛化能力,不过RAG的加入可以一定程度缓解这个问题。
  2. 只能在Windows平台上使用,过于依赖Python工具包pywinauto。
  3. 能不能有更底层的API获取到当前的GUI信息(比如文中提到的Win32 API)?截图方式有些太浅层了,肯定有更底层拿到GUI信息的方法。
  4. 方法依赖GPT4 Vision,如果能够拿到GUI底层信息,是不是就不需要GPT4 Vision也能做?或者内置一个专门的Windows的大模型,能够直接和底层信息交互的那种,这就更像真正的JARVIS了。
  5. UFO运行的效率未知,比如执行一个任务到底需要多长的时间,以及token的开销究竟是多少,毕竟时间成本和token开销成本都是需要考虑的。

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

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

相关文章

什么是齐纳二极管?齐纳二极管1SMB5944BT3G参数详解+应用方案

关于齐纳二极管基本知识: 齐纳二极管,又称稳压二极管。利用PN结的反向击穿状态,电流变化范围大,电压基本不变。制作了具有稳压功能的二极管。这种二极管是一个高电阻半导体器件,直到临界反向击穿电压。在这个临界击穿…

如何将Maven与TestNG集成

我们已经讨论了如何在maven中执行单元测试用例,但那些是JUnit测试用例,而不是TestNG。当maven使用“mvn test”命令进入测试阶段时,这些用例被执行。 本文将介绍如何将Maven与TestNG集成,并在maven进入测试阶段时执行TestNG测试。…

创新研报 | 2024+人工智能安全报告

人工智能(AI)是新一轮科技革命和产业变革的核心技术,被誉为下一个生产力前沿。具有巨大潜力的 AI 技术同时也带来两大主要挑战:一个是放大现有威胁,另一个是引入新型威胁。 奇安信预计,未来十年,人工智能技术的恶意使用将快速增长…

【数据结构】树tree

树的遍历 广度遍历Breadth-first traversal Breadth-first traversal is the traversal strategy used in the binary tree.Breadth first traversal, also known as level order traversal is the traversal strategy used in a binary tree. It involves visiting all the …

每日一题(leetcode2909):单份查找与群组查找

如果按照简单的方式,逐个查找中间元素(往两边扩散),那么复杂度会是n方。 这种方式没有对比较大小后的数据进行充分利用,所以复杂度较高。 我们考虑到既然要遍历,那么不妨干脆先把所有元素的左边最小值和右…

《HelloGitHub》第 96 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

ZYNQ学习之Ubuntu下Linux文件系统与用户权限

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Linux 文件系统 1.1 Linux 文件系统简介以及类型 操作系统的基本功能之一就是文件管…

JavaScript练手小技巧:仿米哈游官网人物跟随鼠标位移效果

最近&#xff0c;有同学找到我&#xff0c;说&#xff1a;老师&#xff0c;我想模仿米哈游官网。 我说&#xff1a;可以&#xff0c;很不错的。 她说&#xff1a;有些效果有点难&#xff0c;能不能帮我看下。 于是&#xff0c;我就简单大概粗糙的讲解了下大致的原理&#xf…

2024 ccfcsp认证打卡 2022 06 01 归一化处理

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 输入数字的个数int[] a new int[1010]; // 创建一个数组来存储输入的数字double sum 0; // 用于计算所有输入数字的总…

Let`s move - sui move开发实战-dao(3)

引言 经过之前的学习&#xff0c;准备进行实战开发一个简单的dao项目&#xff0c;实现一个去中心化自治组织&#xff0c;用于管理共享资金、社区任务、提案和投票等功能&#xff0c;本篇文章分享了提案模块、错误定义。 提案设计 关于提案模式的具体设计&#xff1a; dao m…

Android开发 OCR:通过Tesseract实现图片文字识别

下面是整个详解步骤过程 效果图一、OCR的含义二、什么是Tesseract三、前提准备1、添加依赖2、数据文件下载路径 四、实际代码案例Demo如下&#xff1a;Main.xmlMain.java 效果图 流程&#xff1a;获取assets中的图片显示到页面&#xff0c;提取照片内的文字 一、OCR的含义 o…

综合实验1

一、配置IP地址 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [AR1-GigabitEthernet0/0/0]int se4/0/0 [AR1-Serial4/0/0]ip add 15.1.1.1 24 [AR1-Serial4/0/0] [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip add 192.168.2.254 24 [AR2-Giga…

Android 12.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

1.前言 在12.0的系统rom定制化开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备 的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现 2.mtp模式下连接pc后显示的文件夹禁止删…

Docker 容器编排利器 Docker Compose

文章目录 一、Docker Compose 简介二、Docker Compose 安装2.1 Mac、Windows 平台默认支持2.2 Linux 安装(通过包管理)2.2.1 安装2.2.2 测试2.2.3 卸载 2.3 使用PIP 安装与卸载2.3.1 PIP安装2.3.2 PIP 卸载 三、基本使用3.1 术语3.2 部署Flask 应用 四、Compose 常用命令4.1 命…

机器学习——LightGBM算法

机器学习——LightGBM算法 摘要&#xff1a; LightGBM是一种高效的梯度提升框架&#xff0c;它在处理大规模数据时表现出色&#xff0c;并且具有较快的训练速度和较低的内存消耗。本文将介绍LightGBM算法的原理、特点以及与传统GBDT算法的区别&#xff0c;并使用Python对其进行…

什么样的人适合学习网络安全?怎么学?_

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题&#xff1a;什么样的人适合学习网络安全&#xff1f;我适不适合学习网络安全&#xff1f; 会产生这样的疑惑并不奇怪&#xff0c;毕竟网络安全这个专业在2017年才调整为国家一级学科&#xff0c;…

pandas在循环中多次写入数据到一个excel防止锁定的方法

啥都不说&#xff0c;都是泪&#xff0c;直接上代码: # 在循环中多次写入数据 for i in range(10):# 创建一个新的DataFramedf pd.DataFrame({A: [i],B: [i * 2]})# 每次写入后保存文件with pd.ExcelWriter(example.xlsx, engineopenpyxl, modea, if_sheet_existsoverlay) as…

用html写一个贪吃蛇游戏

<!DOCTYPE html> <html> <head><title>贪吃蛇</title><meta charset"UTF-8"><meta name"keywords" content"贪吃蛇"><meta name"Description" content"这是一个初学者用来学习的小…

亚远景科技-Hardware Engineering SPICE课程大纲

Hardware SPICE是intacs为电子硬件开发创建的PRM/PAM过程参考和评估模型&#xff0c;其符合ISO/IEC15504-2, Automotive SPICE 4.0, ISO 26262-1和5: 2018等标准。 无论您是想要深入了解硬件工程领域&#xff0c;还是希望成长为Provisional初级、Competent主任和Principal首席硬…

Linux(CentOS7)安装 MongoDB

目录 下载 上传 解压 创建mongodb.conf 创建数据文件夹和日志文件夹 启动服务 创建软链接 安装客户端 下载 上传 安装 下载 官方地址&#xff1a; Download MongoDB Community Server | MongoDBhttps://www.mongodb.com/try/download/community 上传 将下载好的 …