# 2402.07939_UFO: A UI-Focused Agent for Windows OS Interaction * [https://arxiv.org/abs/2402.07939](https://arxiv.org/abs/2402.07939) * GitHub: [https://github.com/microsoft/UFO](https://github.com/microsoft/UFO) * 组织: Microsoft * 引用: 94(2025-06-27) ## Abstract * UFO 是微软提出的一个智能助手,专为 Windows 系统上的应用操作而设计,结合了 GPT-Vision 的视觉能力。 * 它通过两个智能体观察和分析应用界面和控制信息,从而可以自动执行用户的操作请求,包括跨应用操作。 * 用户只需要用自然语言下指令,UFO 就能自动完成复杂任务,无需人工干预。 * 测试结果表明,它在多个常见 Windows 应用中表现优秀,是首个专注于 Windows 应用任务完成的 UI 智能体。 ## 1.Introduction * 大语言模型(LLM)的发展,尤其是多模态视觉模型(如 GPT-Vision),让 AI 能像人一样进行推理、计划、协作,甚至处理图像信息。这些能力正在推动通用人工智能(AGI)的实现。 * 其中一个重要应用是:让模型能理解自然语言,并直接操作图形界面(GUI)完成任务,比如点击按钮、切换应用。这种模型被称为“大动作模型”(LAM)。 * Windows 操作系统因其广泛使用和任务复杂性,是 LAM 的理想平台。但目前大多数类似系统都只支持手机或网页,缺乏专为 Windows 设计的智能体。 * 为此,作者提出了一个新系统 **UFO**: * 它是一个视觉驱动的智能体,基于 GPT-Vision; * 能看懂 Windows 的界面截图,并模拟人类操作应用; * 支持多个应用之间的切换,完成更复杂的任务; * 用户可自定义操作流程,实现任务自动化。 * 测试表明,UFO 能完成 50 个涉及 9 个常用 Windows 应用的任务,是首个面向 Windows 通用任务的 AI 智能体。 ## 2.Related Work * 这段内容分两部分,分别介绍了与 UFO 系统相关的研究工作:**LLM Agents(大模型智能体)** 和 **基于 LLM 的 GUI 智能系统**。 ### 2.1 LLM Agents * **核心思想**:让大语言模型(LLM)像人一样,有记忆、会观察、能规划、会行动。 * **代表项目**: * **AutoGPT**:会思考、推理、批评,把任务分步骤完成。 * **TaskWeaver**:能把用户需求转成小任务,并用 Python 执行。 * **LangChain Agent**:能调用各种工具来完成任务。 * **进阶方向:多智能体系统**(multi-agent): * 多个智能体分工协作(或竞争)完成更复杂的任务。 * 如 AutoGen、MetaGPT、AutoAgents 都是多智能体框架,让每个智能体各司其职,组成“AI 团队”。 ### 2.2 LLM-based GUI Intelligence * **核心思想**:用 LLM + 多模态能力(图像+文本),让模型看得懂 App 的界面,能自己“操作”手机或电脑。 * **代表系统**: * **GPT-4V** 可以通过截图理解手机 App 的界面,自动完成任务。 * **AppAgent、MobileAgent**:模拟用户操作手机,可以点击、输入等。 * **CogAgent**:专门为理解和操作图形界面训练的视觉语言模型。 * **UFO 的创新点**: * 是一个**多模态 LLM 智能体框架**,专门为 **Windows 操作系统**设计。 * 能跨应用操作,实现复杂任务的自动化处理。 ## 3.The Design of UFO ### 3.1 UFO in a Nutshell * 定义:UFO 是一个面向 Windows 操作系统的多模态智能体(Agent),可以理解用户的自然语言请求,然后通过观察应用界面的截图,自动操作界面控件来完成任务。它能跨多个应用程序完成复杂任务。 * **整体架构** 由两个核心组件组成: 1. **HostAgent**:负责分析用户请求,选择合适的应用程序,并制定一个整体执行计划。如果需要跨应用,它也负责切换应用。 2. **AppAgent**:在被选中的应用中执行具体的操作步骤,逐步完成用户请求。 * **执行流程** 1. 用户发出请求。 2. HostAgent 查看全桌面截图和当前活动应用,选出合适应用并生成全局计划。 3. AppAgent 打开该应用,基于界面截图和控件信息逐步执行操作。 4. 如果任务完成,UFO 结束;否则继续执行或切换应用,直到完成所有任务。 ### 3.2 HostAgent * **HostAgent 的输入输出** * 输入:用户请求、桌面截图、应用列表、历史记忆、示例。 * 输出:观察结果、思考逻辑、选中的应用、全局计划、状态(继续或完成)、评论。 ### 3.3 AppAgent * **AppAgent 的输入输出** * 输入:用户请求、应用截图(含控件标注)、控件信息、历史记忆、示例。 * 输出:观察分析、思考逻辑、选中的控件、具体操作、状态(继续、完成、等待、切换等)、局部计划、评论。 * **关键特点** * 支持多模态(图像+文本)理解。 * 支持任务规划、跨应用任务执行。 * 具有记忆能力,可以参考之前的操作结果。 * 能实时互动,应对用户新增请求。 ### 3.4 Control Interaction * UFO 通过 `pywinauto` 和 Windows 的 UI Automation API 实现对 Windows 应用控件的识别和操作: * **pywinauto**:用于识别应用中的控件位置、类型和名称,并执行操作,如点击、输入、获取文本等。 * **支持的控件类型**:限定为 10 种常见控件,如按钮(Button)、输入框(Edit)、菜单项(MenuItem)等。 * **支持的操作**: * `Click`:点击控件(支持左/右键、单/双击) * `SetText`:输入文本 * `GetText`:提取控件文本 * `Scroll`:滚动内容 * `Annotate`:重新截图并标注控件 * `Summary`:对当前界面内容生成文字描述 ### 3.5 Special Design Consideration * 为更好地适配 Windows 系统,UFO 做了五个重要增强设计: #### 3.5.1 Interactive Mode 支持任务完成后用户进一步发起新请求、修改原任务,或手动辅助(如输入密码),提高灵活性和用户参与感。 #### 3.5.2 Action Customization 用户可扩展操作指令,如添加快捷键、插件操作等,通过注册方式向 UFO 说明操作目的和参数,即可调用。 #### 3.5.3 Control Filtering * 在一个应用的界面中,Windows UI Automation 通常会识别出上百个可操作的控件,但: * 如果全部标注,会让截图变得非常杂乱,遮挡关键内容; * 其中很多控件对完成用户任务其实没用; * 这会影响 UFO 做出最优决策的能力。 * **为了解决这个问题,UFO 采用了两级控件筛选机制:** 1. **硬筛选(Hard Filter)**:只保留那些常见且与任务高度相关的控件类型(如按钮、输入框等)。 2. **软筛选(Soft Filter)**:在控件过多、界面太乱时,UFO 会自动判断是否需要精简,并重新筛选出一组更相关的控件,再生成新的截图,仅标注这部分控件。 #### 3.5.4 Plan Reflection UFO 每执行一步都会根据实际界面重新评估是否需要调整计划,确保操作适应界面变化,例如应对控件未出现的情况。 #### 3.5.5 Safeguard 对高风险操作(如删除文件)会先请求用户确认,智能判断操作敏感性,防止误操作,提高系统安全性。 ## 4.Experiment * 实验目的: * 评估 UFO 系统能否像人一样高效、安全地操作 Windows 上的各种应用程序,完成用户请求。 ### 4.1 Benchmark & Baselines & Metrics * 创建了一个 **WindowsBench 基准集**,包含 50 个真实用户请求,覆盖 9 个常见应用(如 Outlook、Word、Edge、微信等),还有跨应用任务。 * 与两个基准模型(GPT-3.5 和 GPT-4)进行对比,这两个模型只能给出操作步骤,由人类来执行。 * 评估指标包括: * **成功率(Success)**:任务是否完成。 * **操作步数(Step)**:完成任务用了多少步,越少越高效。 * **完成率(Completion Rate)**:每一步是否做对。 * **安全率(Safeguard Rate)**:对敏感操作是否询问用户确认。 ### 4.2 Performance Evaluation ![](https://img.zhaoweiguo.com/uPic/2025/06/wu3A65.jpg) Table 3: Performance comparison achieved by UFO on WindowsBench. ![](https://img.zhaoweiguo.com/uPic/2025/06/uzYZHP.jpg) Table 4: The detailed performance breakdown across applications achieved by UFO on WindowsBench. * 各应用表现 * UFO 在大多数应用中表现优异,如 Outlook、Word、微信均为 100% 成功率。 * Adobe Acrobat 表现稍弱,因其 UI 控件不被自动化系统完全支持。 * 跨应用任务仍保持高成功率(80%)和安全性(100%)。 ### 4.3 Case Study * 案例1:删除 PPT 中的所有备注 * UFO 利用 PowerPoint 的隐藏功能一步删除所有备注,自动识别并请求用户确认,效率远超人工。 * 案例2:多应用协同发邮件 * UFO 从 Word 提取会议记录、从照片中分析图片内容,最后在 Outlook 自动生成并发送邮件,整个过程无需人工干预,展示出复杂任务处理能力。 ### ✅ 总结: UFO 是目前在 Windows 上表现最好的智能操作系统代理,不仅能正确执行任务,还兼具高效率和高安全性,远超传统的语言模型方案。 ## 5.Limitations & Lessons Learned * 这段话主要讲了当前 UFO 系统的两个局限,以及未来的改进方向: 1. **UI 控件支持有限**: * UFO 目前只支持 pywinauto 和 Windows UI Automation 这两种方式,不能操作不符合这些标准的程序。 * ➤ 未来计划支持更多底层接口(比如 Win32 API)或使用图像识别技术(如 CogAgent 中的方法)来扩展能力。 2. **应对陌生应用能力弱**: * UFO 在面对不熟悉或冷门的应用时,操作效率低,难以快速找到正确操作。 * ➤ 未来打算结合搜索引擎上的文字和图片指南,帮助 UFO 更准确地制定操作计划,提高通用性。 * 简而言之:**现在支持的程序有限,遇到陌生应用会变慢;未来打算用更多技术和搜索引擎知识来增强适应性。** ## 6.Conclusion * UFO 是一个专为 Windows 系统设计的智能 UI 自动化代理,可以通过自然语言理解用户请求,并自动操作各种应用程序。它使用 GPT-Vision 来分析应用界面截图和控件信息,从而选择合适的应用和控件完成任务。通过一个控制模块,它能自动执行操作,几乎无需人工干预。 * UFO 有两个子代理:HostAgent 和 AppAgent,可以在不同应用间切换,处理复杂跨应用任务。同时,它支持自定义操作和安全保护机制,保证灵活性和安全性。在 9 个常见 Windows 应用中测试 50 个任务,结果显示它具有很强的通用性和适应性。UFO 是首个专注于 Windows UI 自动化的智能代理系统。