当前位置: 首页 > news >正文

UFO:Windows操作系统的具象智能代理

        近年来,随着AI技术的发展,智能代理在各种应用中扮演着越来越重要的角色。微软推出的UFO(User-Focused Operator)正是这样一个出色的多代理框架,旨在通过无缝导航和操作,满足用户在Windows操作系统中跨多个应用程序的需求。今天,我将为大家介绍UFO的架构、功能亮点以及如何开始使用这个强大的工具。

https://github.com/microsoft/UFO

图片

框架概述

UFO作为一个多代理框架,主要包含以下几个组件:

  1. HostAgent 🤖:负责选择适合用户请求的应用程序。当请求跨越多个应用时,它还可以在完成部分任务后切换应用。

  2. AppAgent 👾:在选定的应用程序内迭代执行操作,直至任务成功完成。

  3. 应用自动化器 🎮:负责将HostAgent和AppAgent的行动翻译为与应用程序的交互,包括UI控件、原生API或AI工具的使用。

这两个代理利用GPT-Vision的多模态能力来理解应用界面并完成用户的请求。更详细的技术内容可以参考官方的技术报告和文档。

图片

最新动态

官方一直致力于不断改进和优化UFO,以提供更高效的用户体验。以下是最近的一些更新和重要新闻:

  • 2024-09-08:发布v1.1.0版本!此版本允许UFO点击应用程序的任意区域,并将其延迟减少至原来的三分之一。

  • 2024-07-06:发布v1.0.0版本!详细文档已上线,欢迎大家贡献和反馈。

  • 2024-06-28:官方激动地宣布,UFO的官方介绍视频已在YouTube上线!

  • 2024-05-21:官方在GitHub上达到了5000颗星!✨

详细的更新日志请参考官方的技术文档,每一次更新都包含许多新功能和改进,从HostAgent重构到支持Google Gemini推理引擎,再到支持自定义用户代理等,让UFO变得更强大和易用。

媒体报道

UFO发布以来,受到了广泛的媒体关注。以下是部分媒体报道的标题和评价:

  • Microsoft的UFO带来了更智能的Windows体验

  • UFO & GPT-4-V:让GPT接管一切

  • AI PC - 计算机的未来?微软的UFO

  • 下一代智能版Windows要来了?微软推出首个Windows Agent,命名为UFO!

这些报道展示了UFO如何革新技术前沿以及其对多平台的影响。

功能亮点

UFO具有许多突出的功能:

  1. Windows首个智能代理:UFO是首个能够将自然语言用户请求翻译为在Windows操作系统上可执行操作的智能代理框架。

  2. 专家代理:通过从多种异构源(包括离线帮助文档、在线搜索引擎和人类示范)进行检索增强生成(RAG),使UFO成为应用程序的“专家”。

  3. 丰富的技能集:UFO具备多种技能,支持全面的自动化操作,包括鼠标、键盘、原生API和“Copilot”。

  4. 交互模式:UFO能够在一个会话内处理用户的多个子请求,实现复杂任务的无缝完成。

  5. 代理定制化:用户可以通过提供附加信息,自定义自己的代理。代理在需要时会主动查询用户详细信息,以便更好地调整其行为。

  6. 可扩展的AppAgent创建:UFO提供扩展性,允许用户和应用开发者以简单且可扩展的方式创建自己的AppAgent。

如何开始

步骤1:安装

UFO需要Python 3.10或更高版本,并运行在Windows 10及以上的操作系统上。您可以通过以下命令进行安装:

# 创建conda环境(可选)# conda create -n ufo python=3.10# conda activate ufo
# 克隆仓库git clone https://github.com/microsoft/UFO.gitcd UFO# 安装依赖pip install -r requirements.txt# 如果您想使用Qwen作为LLM,请取消注释相关库。

步骤2:配置LLM

在运行UFO之前,您需要为HostAgent和AppAgent分别提供LLM配置。您可以通过复制ufo/config/config.yaml.template并编辑相应的配置,创建您自己的ufo/config/config.yaml文件:

OpenAI:  VISUAL_MODE: True,  # 是否使用视觉模式  API_TYPE: "openai",  # API类型  API_BASE: "https://api.openai.com/v1/chat/completions",  # OpenAI API端点  API_KEY: "sk-",  # OpenAI API密钥  API_VERSION: "2024-02-15-preview",  # 默认版本  API_MODEL: "gpt-4-vision-preview",  # 唯一的OpenAI模型
Azure OpenAI (AOAI):  VISUAL_MODE: True,  # 是否使用视觉模式  API_TYPE: "aoai",  # API类型  API_BASE: "YOUR_ENDPOINT",  # AOAI API地址  API_KEY: "YOUR_KEY",  # AOAI API密钥  API_VERSION: "2024-02-15-preview",  # 默认版本  API_MODEL: "gpt-4-vision-preview",  # 唯一的OpenAI模型  API_DEPLOYMENT_ID: "YOUR_AOAI_DEPLOYMENT",  # AOAI API部署ID

您还可以为每个代理配置非视觉模型(如GPT-4),通过设置VISUAL_MODE: False和适当的API_MODEL。另外,您可以在BACKUP_AGENT字段中设置备用语言模型引擎,以防主引擎在推理过程中失败。

步骤3:RAG的附加设置(可选)

如果您想增强UFO的外部知识调取功能,可以在ufo/config/config.yaml文件中配置外部数据库用于检索增强生成(RAG):

  • 离线帮助文档:使UFO能够从离线帮助文档中检索信息。

  • 在线Bing搜索引擎:利用最新的在线搜索结果增强UFO的能力。

  • 自我经验:将任务完成轨迹保存到UFO的内存中,以供将来参考。

  • 用户演示:通过用户演示提升UFO的能力。

步骤4:启动UFO

<|diff_marker|> ADD A1000 在Windows命令行(CLI)中执行以下命令以启动UFO:​​​​​​​

# 假设您在克隆的UFO文件夹中python -m ufo --task <your_task_name>

这将启动UFO进程,您可以通过命令行界面与之交互。如果一切正常,您将看到以下提示:

欢迎使用UFO🛸,Windows操作系统交互的UI专注代理。 _   _  _____   ___| | | ||  ___| / _ \| | | || |_   | | | || |_| ||  _|  | |_| | \___/ |_|     \___/请输入要完成的请求🛸:

步骤5:执行日志

您可以在以下文件夹中找到截屏和请求&响应日志:

./ufo/logs/<your_task_name>/

这些日志可用于调试、重播或分析代理输出。

获取帮助

若需帮助,请首先查阅官方的文档。若仍有疑问,您可以在GitHub Issue上提问或通过邮件联系ufo-agent@microsoft.com。

评价

请参考官方技术报告附录A中的WindowsBench部分。以下是一些有助于完成请求的提示:

  • 在UFO执行请求之前,请确保目标应用程序处于活动状态(可以最小化但不能关闭)。

  • 请注意,GPT-V的输出可能因相同请求而异。如果未成功完成请求,请尝试重新尝试。

引用

如果您在研究中使用了UFO,请引用官方 的论文:​​​​​​​

@article{ufo,  title={{UFO: A UI-Focused Agent for Windows OS Interaction}},  author={Zhang, Chaoyun and Li, Liqun and He, Shilin and Zhang, Xu and Qiao, Bo and  Qin, Si and Ma, Minghua and Kang, Yu and Lin, Qingwei and Rajmohan, Saravan and Zhang, Dongmei and  Zhang, Qi},  journal={arXiv preprint arXiv:2402.07939},  year={2024}}

相关项目

您也可以关注TaskWeaver,一个以编码优先的LLM代理框架,用于无缝规划和执行数据分析任务。

相关文章:

UFO:Windows操作系统的具象智能代理

近年来&#xff0c;随着AI技术的发展&#xff0c;智能代理在各种应用中扮演着越来越重要的角色。微软推出的UFO&#xff08;User-Focused Operator&#xff09;正是这样一个出色的多代理框架&#xff0c;旨在通过无缝导航和操作&#xff0c;满足用户在Windows操作系统中跨多个应…...

win10/11无休眠设置和断电后电池模式自动休眠而不是睡眠-用以省电

1、打开休眠设置选项 打开控制面板\所有控制面板项\电源选项\ 左侧的选择电源按钮的功能 默认状态没有休眠 1、管理员权限打开cmd或者power shell 2、输入一下指令&#xff0c;打开休眠选项 powercfg -hibernate on关闭后重新打开 控制面板\所有控制面板项\电源选项\左侧的选…...

【动态规划之斐波那契数列模型】——累加递推型动态规划

文章目录 第N个泰波那契数列面试题08.01.三步问题使用最小花费爬楼梯解码问题 第N个泰波那契数列 解题思路&#xff1a; 泰波那契数列的第 N 项定义为前面三项之和&#xff0c;即 T0 0, T1 1, T2 1&#xff0c;从 T3 开始&#xff0c;每一项都等于前三项的和。要找到第 N 项…...

5g通信系统用到的crc码

5g通信系统用到的crc码 关注 在5G通信系统中&#xff0c;CRC码&#xff08;循环冗余校验码&#xff09;扮演着关键角色&#xff0c;它通过执行多项式除法运算来检测数据在传输过程中是否发生错误。5G通信系统中采用了多种CRC码&#xff0c;每种码都有其独特的计算方法和校验特…...

Ubuntu-22.04 虚拟机安装

1. Ubuntu安装方式 1.1. 基于物理介质安装 光盘安装&#xff1a;通过将 Ubuntu 镜像刻录到光盘&#xff0c;在计算机 BIOS/UEFI 中设置光盘为第一启动项&#xff0c;然后按照安装程序的提示进行语言选择、分区、用户信息设置等操作来完成安装。这种方式需要有光盘刻录设备和空…...

Windows、Linux系统上进行CPU和内存压力测试

CPU和内存压力测试 1. Linux环境 Linux环境下&#xff0c;我们可以用 stress 工具进行内存、CPU等的压力测试。 【1】. stress工具说明 [kalamikysrv1 ~]$ stress --help stress imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ...-…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发八,使用SDLVSQT显示yuv文件 ,使用ffmpeg的AVFrame

一. AVFrame 核心回顾&#xff0c;uint8_t *data[AV_NUM_DATA_POINTERS] 和 int linesize[AV_NUM_DATA_POINTERS] AVFrame 存储的是解码后的数据&#xff0c;&#xff08;包括音频和视频&#xff09;例如&#xff1a;yuv数据&#xff0c;或者pcm数据&#xff0c;参考AVFrame结…...

HTML 标签属性——<a>、<img>、<form>、<input>、<table> 标签属性详解

文章目录 1. `<a>`元素属性hreftargetname2. `<img>`元素属性srcaltwidth 和 height3. `<form>`元素属性actionmethodenctype4. `<input>`元素属性typevaluenamereadonly5. `<table>`元素属性cellpaddingcellspacing小结HTML元素除了可以使用全局…...

css简写属性

一些属性&#xff0c;如 font、background、padding、border 和 margin 等属性称为简写属性。它们允许在一行中设置多个属性值&#xff0c;从而节省时间并使代码更整洁。 /* 在像 padding 和 margin 这样的 4 值简写语法中&#xff0c;数值的应用顺序是上、右、下、左&#xff…...

力扣刷题(sql)--零散知识点(2)

1.自定义分组后的分类统计问题&#xff08;某组内无数据却仍要展示&#xff09; 例题1&#xff1a; 查询每个工资类别的银行账户数量。 工资类别如下&#xff1a; "Low Salary"&#xff1a;所有工资 严格低于 20000 美元。"Average Salary"&#xff1a;…...

TCP是怎样工作的网络拥塞控制理论和算法部分记录

参考资料 https://github.com/ituring/tcp-book 流量控制、窗口控制和拥塞控制的关系 流量控制、窗口控制和拥塞控制的关系如图所示 窗口控制是上层的概念&#xff0c;核心思路是基于滑动窗口技术传输数据。而确定发送窗口大小的方法有流量控制和拥塞控制两种 流量控制&…...

CSRF初级靶场

靶场 针对DVWA么有防御 源码&#xff1a; <?phpif( isset( $_GET[ Change ] ) ) {// Get input$pass_new $_GET[ password_new ];$pass_conf $_GET[ password_conf ];// Do the passwords match?if( $pass_new $pass_conf ) {// They do!$pass_new ((isset($GLOBA…...

CSP/信奥赛C++刷题训练:经典差分例题(2):洛谷P9904 :Mieszanie kolorów

CSP/信奥赛C++刷题训练:经典差分例题(2):洛谷P9094 :Mieszanie kolorw 题目描述 题目译自 PA 2020 Runda 1 Mieszanie kolorw Byteasar 正准备给栅栏涂漆。他已经准备了 n n n 罐白色油漆,他把这些油漆排列成一排,从 1 1 1 到 n n n 编号。他想用这些油漆,但他不想…...

Java | Leetcode Java题解之第525题连续数组

题目&#xff1a; 题解&#xff1a; class Solution {public int findMaxLength(int[] nums) {int maxLength 0;Map<Integer, Integer> map new HashMap<Integer, Integer>();int counter 0;map.put(counter, -1);int n nums.length;for (int i 0; i < n;…...

YOLOv8改进 - 注意力篇 - 引入iRMB注意力机制

#YOLO# #目标检测# #计算机视觉# 一、本文介绍 作为入门性篇章&#xff0c;这里介绍了iRMB注意力在YOLOv8中的使用。包含iRMB原理分析&#xff0c;iRMB的代码、iRMB的使用方法、以及添加以后的yaml文件及运行记录。 二、iRMB原理分析 iRMB官方论文地址&#xff1a;文章 iR…...

项目学习总结

文章目录 项目学习总结项目中的vw适配vw使用 封装axios实例axios常见请求配置axios响应结构axios拦截器配置Vue Router全局前置守卫 项目学习总结 在智慧商城项目中的学习总结。 项目中的vw适配 vw 是一种长度单位&#xff0c;代表视口宽度的百分比。1vw 等于视口宽度的1%。…...

用于低成本接收机的LoRa SF11 500KHz波形检测解调算法

前一篇里&#xff0c;获取了LORAwan的物理层波形&#xff0c;并通过Octave查看了它的瞬时频率。LoRa是私有协议&#xff0c;网上已经有了很不错的开源的实现&#xff0c;如&#xff1a; S2_LoRa通信实验 LoRaPhy 以及GNU-Radio的Lora模块、LimeSDR的Lora实现。当我试图修改上…...

WEB防护

WEB防护的范围比较广&#xff0c;主要是指针对web安全而做的各种防御措施&#xff0c; 包含应对xss、csrf等漏洞攻击的应对方式。 Web防护是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品&#xff0c; 主要用于防御针对网络应用层的攻击&#xff0…...

使用Jest进行JavaScript单元测试

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Jest进行JavaScript单元测试 引言 Jest 简介 安装 Jest 创建基本配置 编写测试用例 运行测试 快照测试 模拟函数 代码覆盖率…...

网络安全法详细介绍——爬虫教程

目录 [TOC](目录)一、网络安全法详细介绍1. 网络安全法的主要条款与作用2. 网络安全法与爬虫的关系3. 合法使用爬虫的指南 二、爬虫的详细教程1. 准备环境与安装工具2. 使用requests库发送请求3. 解析HTML内容4. 使用robots.txt规范爬虫行为5. 设置请求间隔6. 数据清洗与存储 三…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...