OS-Copilot:自学习的通用计算机智能体

news2024/11/30 6:36:22

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

现有的计算机智能体大多局限于特定应用或领域,难以应对多样化和不断变化的计算机操作需求。这种局限性不仅限制了智能体的实用性,也阻碍了其在更广泛场景中的应用潜力。为了突破这一瓶颈,研究者们一直在探索如何构建能够处理更广泛任务的通用计算机智能体。

来自上海人工智能实验室、华东师范大学、普林斯顿大学和香港大学的研究团队提出了一种名为OS-Copilot的创新框架,它旨在实现可自我完善的通用计算机智能体。通过这一框架,不仅能够推动智能体在操作系统层面的深入交互,还能显著提升其在未知应用中的适应性和学习能力。OS-Copilot框架的核心在于提供一个统一的接口,使智能体能够与操作系统中的各种元素——包括网络、代码终端、文件、多媒体和第三方应用程序——进行无缝交互。

基于OS-Copilot,研究者创建了FRIDAY,这是一个自我完善的代理,能够自动化通用计算机任务。FRIDAY在GAIA基准测试中的表现超越了以前的方法,展示了通过以前任务累积的技能对未见应用的强大泛化能力。

FRIDAY 在 MacOS 系统上部署时的运行示例,包括准备专注工作环境、在 Excel 中进行计算和绘制图表、以及为 OS-Copilot 创建网站的任务

OS-Copilot 框架 

OS-Copilot 框架的设计目标是提供一个操作系统级别的语言智能体,能够处理包括网络浏览、命令行操作、文件处理和第三方应用交互等多样化任务。这一框架通过一个统一的接口,使得智能体能够与操作系统的各种功能进行交互。这种设计允许智能体在不同的环境中保持一致的行为和响应,极大地提高了其通用性和可扩展性。

OS-Copilot 框架的概览

这个框架允许智能体通过一个统一的接口与各种应用程序和操作系统功能进行交互,包括但不限于网络浏览、代码执行、文件操作和第三方应用程序控制。

OS-Copilot框架的组成部分通常包括:

  • 规划器(Planner):负责接收用户请求并将其分解为一系列可执行的子任务。
  • 配置器(Configurator):根据规划器提供的子任务,配置器负责检索和组织必要的工具、知识和信息,以便执行者可以完成这些子任务。
  • 执行者(Actor):执行者是实际执行操作的组件,它根据配置器提供的信息来执行具体的任务。
  • 批评者(Critic):批评者对执行者的行动结果进行评估,提供反馈,以便于智能体进行自我修正和学习。

规划器是OS-Copilot框架中的一个关键组件,其主要功能是将复杂的用户请求分解为更简单、更易于管理的子任务。为了实现这一目标,规划器需要理解智能体的能力,并据此生成计划。研究者们提到,OS-Copilot支持多种规划方法,包括基于有向无环图(Directed Acyclic Graph, DAG)的规划器。这种规划器允许任务并行执行,从而优化了执行时间。

有向无环图规划器的设计允许智能体同时处理多个独立任务。例如,一个深度学习编码智能体可以在监控模型训练进度的同时生成推理代码。这种并行处理能力显著提高了任务执行的效率。研究者们通过利用大型语言模型(LLMs)将计划形式化为有向无环图,每个节点代表一个任务,边则表示任务间的依赖关系。

配置器组件从规划器接收子任务,并配置这些子任务以帮助执行者完成它们。配置器的设计灵感来自于人脑的生物学特性,包括工作记忆、陈述性记忆和程序性记忆。陈述性记忆用于存储事实和事件,而程序性记忆则与技能发展能力相关。

陈述性记忆包含用户偏好、语义知识等,这对于个性化问题解决和推荐至关重要。程序性记忆主要由工具库组成,这些工具库是智能体的技能集合,存储了智能体用来执行操作系统内行动的工具。工作记忆则支持短期信息的存储和处理,是OS-Copilot设计的核心,连接了规划器、配置器和执行者组件。

工作记忆模块负责从长期记忆中检索信息,并在需要时更新这些信息。它还接收来自规划器的子任务,并从陈述性记忆(如当前工作目录)和程序性记忆(如工具文档)中收集所有相关信息,然后将这些信息传递给执行者组件。执行者的执行反馈随后被反馈到工作记忆中,以进行潜在的修订。

执行者由执行和自我批评两个阶段组成。在执行阶段,执行者根据配置提示提出可执行的操作,并在操作系统中执行这些操作。执行者生成的可执行命令或函数调用将通过OS-Copilot提供的通用运行环境在操作系统中执行。这包括Python运行环境、bash运行环境、API调用和鼠标/键盘控制。

批评者模块则评估执行结果,收集反馈以进行自我修正和改进。批评者评估的关键方面包括:确定当前子任务是否通过执行结果和环境状态分析完成;在未能完成的情况下,提供全面的错误分析并提出修正工具或操作的建议;评估是否需要重构子任务,包括添加新子任务或修改现有子任务的内容和依赖关系。

通过这些组件的协同工作,OS-Copilot框架能够支持构建出能够自我完善、处理通用计算机任务的智能体。这种设计不仅为当前的研究提供了坚实的基础,也为未来在个性化数字助手、多模态代理以及情境学习等领域的探索提供了可能。

FRIDAY 代理

研究者们通过一个具体的运行示例来展示FRIDAY智能体如何在操作系统中执行任务。这个示例不仅展示了FRIDAY的工作流程,还揭示了其自我完善和自我指导学习的能力。

配置器的架构,包括其典型工作流程和具体运行示例

配置器在一般情况下的工作流程:配置器接收来自规划器的子任务,并开始配置过程。它首先访问其内部的声明性记忆和程序性记忆,检索与当前任务相关的信息,如用户偏好、工具库和语义知识。然后配置器利用这些信息构建一个配置提示,该提示将指导执行者(Actor)执行所需的操作。

运行示例中研究者们描述了一个场景,FRIDAY接收到一个子任务,即将系统切换到暗黑模式。为了完成这个任务,FRIDAY首先利用配置跟踪器从长期记忆中检索相关信息,构建一个提示。这个提示包括了与任务相关的工具、用户配置文件、操作系统版本和智能体的工作目录等信息。在这个例子中,FRIDAY发现没有现成的工具可以直接使用,因此激活了工具生成器来为当前子任务创建一个定制的工具。这个新生成的工具是一个Python类,利用AppleScript来改变系统的外观。

随后,执行器处理这个提示,生成一个可执行的动作,并在操作系统中执行它。执行器首先将工具代码存储到一个Python文件中,然后在命令行终端执行这个代码。执行完成后,批评者评估子任务是否成功完成。如果成功,批评者会根据生成的工具的潜在未来重用性给出一个0到10的评分。在当前实现中,评分超过8的工具会被保存,并更新到程序性记忆中的工具库。

如果执行失败,FRIDAY会收集批评者的反馈,并启动自我修正过程,对负责的动作、工具或子任务进行修正。FRIDAY会不断迭代这个过程,直到子任务被认为完成,或者达到最大尝试次数。

自我指导学习是FRIDAY智能体的另一个关键特性。这种学习方式允许FRIDAY在没有外部指导的情况下,通过自我生成的任务序列来掌握新技能。例如,FRIDAY可以设定一个学习目标,如掌握电子表格操作,然后生成一系列从简单到复杂的任务。通过解决这些任务,FRIDAY能够积累有价值的工具和语义知识。

研究者们通过在SheetCopilot-20数据集上的实验来评估FRIDAY的自我指导学习能力。这个数据集包含了20个电子表格控制任务,涵盖了格式化、管理、图表、数据透视表和公式等操作。FRIDAY通过自我指导生成了10个关于操作Excel的任务,并成功解决了这些任务,自主积累了8个工具,包括计数元素和按名称删除工作表等操作。

实验结果显示,FRIDAY在没有自我指导学习的情况下无法完成任何任务,而当启用自我指导学习后,FRIDAY的表现超过了专门为电子表格任务设计的工具。这表明,FRIDAY能够通过自我指导学习有效地掌握新应用。研究者们还进行了定性分析,设计了一个任务,要求FRIDAY创建一个介绍OS-Copilot的PowerPoint幻灯片。结果显示,经过自我指导学习后,FRIDAY能够掌握如何配置文本框、更改文本颜色、调整字体大小和行距,以及调整插入图像的大小和位置,最终成功完成了任务。

实验

研究者们首先介绍了FRIDAY在GAIA基准测试中的表现。GAIA是一个为通用AI助手设计的测试基准,包含466个具有挑战性的问题回答任务。这些任务要求智能体具备多种技能,例如计算数字、浏览网页、处理视频和语音信号以及操作文件等。

  • 设置 (Settings):FRIDAY在初始化时配备了四个基本工具,并在开发集上进行探索以积累更多的工具。这些工具帮助FRIDAY在测试集中的表现得到了提升。研究者们将FRIDAY的测试结果提交到官方评估服务器进行评估。
  • 基线比较 (Baselines):研究者们将FRIDAY的表现与GPT-4、AutoGPT-4以及GPT-4插件等其他系统进行了比较。这些比较系统包括了依赖人类选择插件的GPT-4插件,以及专门设计用于电子表格控制的SheetCopilot。
  • 结果 (Results):FRIDAY在一级任务中的成功率为40.86%,比之前最好的系统提高了35%。即使在最具挑战性的三级任务中,FRIDAY也显示出了6.12%的成功率,这在之前的系统中是无法实现的。
FRIDAY智能体及其他基线系统在GAIA基准测试私有测试集上的性能评估结果

研究者们进一步探讨了FRIDAY的自我指导学习能力。自我指导学习是FRIDAY能够自主提出任务并解决这些任务,从而积累经验和技能的过程。

  • 定量分析 (Quantitative Analysis):研究者们在SheetCopilot-20数据集上进行了实验,该数据集包含20个电子表格控制任务。FRIDAY被自我指导生成了10个关于操作Excel的任务,并成功解决了这些任务,积累了8个工具。这些工具包括计数元素和按名称删除工作表等操作。实验结果显示,FRIDAY在没有自我指导学习的情况下无法完成任务,但通过自我指导学习,其表现超过了专门为电子表格任务设计的工具。
  • 定性分析 (Qualitative Analysis):研究者们设计了一个任务,要求FRIDAY创建一个介绍OS-Copilot的PowerPoint幻灯片。任务说明详细描述了幻灯片所需的具体内容、字体、字体大小和其他细节。结果显示,经过自我指导学习后,FRIDAY能够掌握如何配置文本框、更改文本颜色、调整字体大小和行距,以及调整插入图像的大小和位置,最终成功完成了任务。
对不同智能体在 SheetCopilot-20 数据集上单次执行任务的通过率进行了比较

通过这些实验,研究者们证明了FRIDAY不仅能够通过自我指导学习来掌握新技能,还能够在面对复杂任务时展现出强大的适应性和学习能力。这种能力使得FRIDAY在通用计算机任务中具有显著的优势,为未来的智能体研究和应用提供了新的可能性。研究者们的这些发现为如何构建能够自主学习和自我完善的智能体提供了宝贵的见解。

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

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

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

相关文章

接口自动化面试题超全,助你离Offer又近一步!

一 、请问你是如何做接口测试的? 大体来说,经历以下过程:接口需求调研、接口测试工具选择、接口测试用例编写、接口测试执行、接口测试回归、接口测试自动化持续集成。具体来说,接口测试流程分成以下九步: 第一步&am…

vue3基础ref,reactive,toRef ,toRefs 使用和理解

文章目录 一. ref基本用法在模板中使用ref 与 reactive 的区别使用场景 二. reactive基本用法在模板中使用reactive 与 ref 的区别使用场景性能优化 三. toRef基本用法示例在组件中的应用主要用途对比 ref 和 toRef 四. toRefs基本用法示例在组件中的应用主要用途对比 ref 和 t…

盘点16个有名气的进销存软件,你听说过哪一款?

进销存系统不仅能实现采购、销售、库存的一体化管理,精确记录每一笔业务数据,还帮助企业实时掌握库存状况,避免缺货或积压,降低成本。同时,通过数据分析,进销存还为企业决策提供了有力支持,助力…

职升网:二级建造师延续注册需要啥资料?

延续注册 注册周期:有效期为3年 组织管理:省、自治区、直辖市建设行政主管部门 申请时间:初始注册期满 申请表:二级建造师延续注册申请表下载 延续注册条件: 注册有效期满需要继续执业的,应当在注册有…

Macos M1 IDEA本地调试 HBase 2.2.2

# 1. 前提 执行 mvn clean package assembly:single -DskipTests没问题,并在hbase-assembly/target目录下生成hbase-2.2.2-bin.tar.gz 文件夹 证明Maven 下载依赖没问题 1.1 报错 1 这里应该是报错找不到 com.google.protobuf:protoc:exe:osx-aarch_64:3.5.1 …

视频监控汇聚算法平台训练站车辆类型算法分析车辆类型检测应用方案

车辆类型检测算法是计算机视觉和深度学习技术在交通管理和智能车辆系统中的重要应用之一。这种算法通过自动分析和识别车辆图像,能够准确判断车辆的类型,如轿车、SUV、货车等。 运用方案 数据采集与预处理 采集包含车辆的图像或视频数据,包…

AI制作PPT软件哪个好?这个国产Gamma工具真心推荐!

各种AI工具层出不穷,尤其是办公领域,诞生了诸多可让办公提效的AI工具,如AI制作PPT软件,笔者亲自体验过多款AI制作PPT软件,在权衡多个维度之后,最终选择了博思AIPPT。 博思AIPPT,是新一代的AI制…

CAPL在创建套接字时不绑定端口号时需要注意的地方

在CAPL中我们使用UdpOpen()和TcpOpen()两个函数创建Socket套接字,传入IP地址和Port口绑定IP地址和Port口,作为发送报文时的源IP地址和源Port口。 如果对源IP地址和源Port口没有要求,不需要绑定IP地址和Port口,可以在调用UdpOpen()和TcpOpen()时传入0,如此套接字绑定的IP地…

Numpy基本操作

1.什么是Numpy NumPy 是一个用于 Python 编程语言的开源库,它的主要功能是支持大型多维数组和矩阵,并提供了大量的数学函数来操作这些数组。NumPy 是 Python 科学计算生态系统的核心组成部分之一,广泛应用于数据分析、科学计算、机器学习等领…

海运专线面对的难题主要有哪些?突破口在哪里?

随着跨境电商的不断发展,跨境海运收益增加的同时,也面临着不少难题。 一、高昂的运输成本 由于跨境运输涉及多个国家和地区的多个运输环节,包括起运国、中转国和目的国,因此运输费用、中转费用、保险费用等都会累加,…

视频编辑与制作软件哪个好 视频编辑与制作软件哪个好学

学习剪辑技术,就是在学视频编辑软件的用法。选择一款适合自己的视频编辑与制作软件,能让你少走很多弯路。优秀的视频编辑软件,不仅能让用户快速掌握视频编辑的基本操作,还可以激发用户的创作灵感。有关视频编辑与制作软件哪个好&a…

【Qt】 编辑框 | 按钮 | 坐标系 的 初步了解

文章目录 1. 编辑框图形化方式纯代码方式 2. 按钮图形化方式 3. 坐标系 1. 编辑框 这里以实现 hello world 为例 即 使用 编辑框 完成 Hello World 图形化方式 单行编辑框 QLineEdit 多行编辑框 QTextEdit 点击 widget.ui 并打开 调用 Qt designer 这个图形化工具 完成窗口…

生信分析入门:从基础知识到实践操作的全方位指南

随着生物学研究的数字化转型,生物信息学(简称生信)分析已经成为现代生命科学研究中的关键工具。对于刚开始接触生信分析的初学者来说,这个领域可能看起来复杂而陌生。然而,通过系统的学习和实践,生信分析可…

ISO 26262中的失效率计算:IEC 61709-Clause16_Relays

目录 概要 1 元器件分类和基准温度 2 失效率的计算 2.1 失效率预测模型 2.2 电应力系数 2.2.1 电应力区域划分 2.2.2 电应力系数选择 2.3 转换率系数 2.3.1 转换率系数计算 2.4 温度应力系数 2.4.1 温度应力系数计算模型 2.4.2 温度应力系数计算 概要 IEC 61709是…

百元蓝牙耳机哪一款好用?四款价格亲民高性价比耳机产品推荐

如果说当代最伟大的音频设备创新,蓝牙耳机绝对算得上是一款既便捷又实用的科技神器。它不需要繁琐的线路连接,只需要轻轻一戴,就能让你随时随地沉浸在高质量的音乐或通话体验中。最重要的是,它的无线设计让我们的生活更加自由无拘…

Opencv-C++笔记 (20) : 距离变换与分水岭的图像分割

文章目录 一、图片分割分水岭算法理解分水岭算法过程 二、距离变换与分水岭距离变换常见算法有两种分水岭变换常见的算法步骤 主要函数c代码四、结果展示 一、图片分割 图像分割(Image Segmentation)是图像处理最重要的处理手段之一 图像分割的目标是将图像中像素根据一定的规则…

linux定时自启动shell脚本

linux定时自启动shell脚本 前言操作问题 前言 需要设计一个脚本用来定时清理linux磁盘空间,自启动 操作 1.在指定目录编写shell脚本 给脚本加权限 chmod 755 origin_del.sh 或者 chmod x origin_del.sh 2.打开定时 执行 crontab -e 输入 0 0 * * * /home/o…

【极限性能,尽在掌控】ROG NUC:游戏与创作的微型巨擘

初见ROG NUC,你或许会为它的小巧体型惊讶。然而,这看似不起眼的机身内,蕴藏着游戏、创意的强大能量。 掌中风暴,性能无界 ROG NUC搭载英特尔高性能处理器,配合高速NVMe SSD固态硬盘以及可选的高端独立显卡&#xff08…

电子工程师必备:万用表测量电阻的正确方法

在电子学和电气工程领域,测量电阻是一项基本技能。无论是进行电路调试还是故障排除,了解如何使用万用表测量电阻都是至关重要的。下面就跟着道合顺来一起了解#万用表测量电阻的详细方法#指南。 一、理解电阻与万用表 什么是电阻? 电阻是导…

【python数据分析11】——Pandas统计分析(分组聚合进行组内计算)

分组聚合进行组内计算 前言1、groupby方法拆分数据2、agg方法聚合数据3、apply方法聚合数据4、transform方法聚合数据5 小案例5.1 按照时间对菜品订单详情表进行拆分5.2 使用agg方法计算5.3 使用apply方法统计单日菜品销售数目 前言 依据某个或者几个字段对数据集进行分组&…