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

【论文通读】AgentStudio: A Toolkit for Building General Virtual Agents

AgentStudio: A Toolkit for Building General Virtual Agents

  • 前言
  • Abstract
  • Motivation
  • Framework
  • 评估
    • GUI Grouding
    • Real-World Cross-Application Benchmark Suite
  • Conclusion

前言

来自昆仑万维的一篇智能体环境数据大一统框架工作,对未来计算机智能体的发展具有指导性意义,作者在环境上对计算机智能体的输入输出进行了统一,基于该环境又设计了智能体数据的收集评估框架,通过实验也验证了数据集收集的重要性。此外它还提供了丰富的文档,便于初学者学习。

Paperhttps://arxiv.org/pdf/2403.17918.pdf
Documenthttps://skyworkai.github.io/agent-studio/
FromArxiv 26 Mar 2024

Abstract

创造在任意数字设备上操作任意软件的自主虚拟智能体仍然是当前AI的主要挑战。关键的两点障碍在于:现实环境中构建虚拟智能体的基础设施不足,以及对基础智能体能力评估的需求。为了解决这些问题,本文提出AgentStudio,一个在线、现实、多模式的工具包,可以涵盖智能体开发完整的生命周期。包括环境设置,数据收集,智能体评估以及可视化。观察和动作空间高度通用,支持函数调用和人机界面。AgentStudio的图形用户界面进一步增强了这种多功能性,允许在现实环境中高效开发数据集和基准。为了说明这一点,作者引入了一个视觉基础数据集和一个真实世界的基准套件,二者都是通过图像化界面创建的。此外,作者还提出一些源自AgentStudio的可行解,例如通用视觉基础、开放式工具创建、视频学习等。作者开源了环境、数据集、基准测试和界面,以促进开发更通用的虚拟智能体。

Motivation

image.png
image.png

  1. 受到环境和数据的限制,现有的智能体仅在简单、受限的场景下评估演示,缺乏实用性和可靠性。
  2. 真实环境难以收集数据,阻碍智能体的提升。

AgentStudio工具包如何解决上述问题?

  1. 包括了智能体观察和动作空间的定义工具。
  2. 提供了跨平台的在线环境支持。
  3. 支持交互式数据的收集与评估,以及可扩展的任务套件,增强实用性和灵活性。

上图展示AgentStudio如何在环境上和数据集上解决之前工作的问题。

Framework

image.pngAgentStudio优势:

  • 可复现、多模态、跨平台的在线环境。支持docker、FastAPI以及虚拟机连接各种操作系统和设备,注重真实落地场景。
  • 统一标准输入输出。和人类保持一致,通过观察屏幕输入,控制键鼠和命令行输出,也支持函数调用和API。
  • 全面、可扩展、可组合的任务集。包含在十余个应用上全面评估AI智能体的能力,覆盖各种应用场景,包含不同难度任务。
  • 完整的智能体数据收集和评估代码。可用于人工标注数据集,也可用于智能体自行收集经验。
  • 关注工具创造和应用。支持智能体在交互中自行创造并复用新的工具。
  • 交互式可视化界面。提供用户友好的轻量化GUI界面,帮助用户一键自动化创建任务并收集数据。

下图是使用AgentStudio人工标注数据以及自动标注数据的过程。
image.png

评估

除了工具包的搭建,研究团队评估了多个多模态智能体完成任务的能力。为了全面评估智能体的能力,AgentStudio的实验从多个角度考虑:

  1. 图形界面grounding数据集。任务为单步动作,指令无需规划, 关注智能体与图形界面交互的能力。
  2. 日常任务与组合任务数据集。任务涉及调用复杂API,或者多步动作以及跨软件交互。用于评估智能体完成日常任务、以及进行复杂动作规划的能力。

GUI Grouding

每个数据都是三元组: T = ( g , s , a ) T=(g,s,a) T=(g,s,a),分别代表instruction、截图和鼠标动作。基于AgentStudio,团队设计了一个包含 227 条鼠标点击指令的数据集,涵盖三种流行的桌面操作系统和九种应用程序。在当前多模态模型上进行评估,结果如下表所示:
image.png
在闭源模型上,模型展示了在不同操作系统下泛化的差异性,并且得分都不高,GUI能力不足。在开源模型上,基于Qwen-VL微调的SeeClick在每个任务上都是最高分,凸显了进一步扩展GUI基础数据的重要性,以通过数据驱动的方法改进多模式模型,从而实现有效的现实部署。
image.png
上图是在位置和点击类型两个指标上的比较。可以看到,所有模型在精确定位上得分较低,有很大改进空间,b表明点击成功率和元素大小相关,分而治之的方法可能提升点击的准确率。

Real-World Cross-Application Benchmark Suite

为了说明AgentStudio在复杂的场景促进评估,作者引入了由77个现实任务组成的基准套件,包括工具使用、GUI基础、长期规划等。每个任务形式化为一个三元组,包括自然语言描述,重置环境组件(防止其它项干扰实验),评估结果轨迹组件。结果如下:
image.png
虽然GPT-4在大多数API任务中表现出色,但是在GUI和组合任务上面临挑战,另一方面,Gemini-1.0 Pro 和 GPT-3.5 Turbo 总体上表现出相对较低的成功率,但它们较高的批评准确率意味着这些模型可能有潜力通过开发新颖的自校正算法来提高其性能。

Conclusion

本文介绍了AgentStudio,一个开放的工具包,用于开发在现实数字世界中的通用智能体,它包括数据收集评估、可视化和用户界面,允许在任意人类任务上开发测试。这篇工作非常solid ,在各种智能体打架的今天,AgentStudio从另一个角度出发, 在底层统一了各种计算机智能体的评估和交互,工作合理且完整, 有极强的扩展性和自定义性,具有特别大的发展前途。我认为基于这篇工作,未来可以考虑的方向有:

  1. 通用工具的积累。即插即用的工具,可以为任何智能体所用,这也涉及相关的框架与协议。
  2. 更丰富的输入输出接口。目前只支持键鼠、bash,如果能够泛化到各种设备,那会在更多场景解放人类双手。
  3. 评估的方式不是很合理,毕竟有的操作没有固定的流程,遇到特殊情况也无法评估。
  4. 数据集规模不大,覆盖面不够广。

相关文章:

【论文通读】AgentStudio: A Toolkit for Building General Virtual Agents

AgentStudio: A Toolkit for Building General Virtual Agents 前言AbstractMotivationFramework评估GUI GroudingReal-World Cross-Application Benchmark Suite Conclusion 前言 来自昆仑万维的一篇智能体环境数据大一统框架工作,对未来计算机智能体的发展具有指…...

wordvect嵌入和bert嵌入的区别

Word2Vec 嵌入和 BERT 嵌入之间有几个关键区别: 训练方式: Word2Vec:Word2Vec 是一个基于神经网络的词嵌入模型,它通过训练一个浅层的神经网络来学习单词的分布式表示。它有两种训练方式:连续词袋模型(CBOW…...

渗透测试练习题解析 5(CTF web)

1、[安洵杯 2019]easy_serialize_php 1 考点:PHP 反序列化逃逸 变量覆盖 【代码审计】 通过 GET 的方式获取参数 f 的值,传递给变量 function 定义一个过滤函数,过滤掉特定字符(用空字符替换) 下面的代码其实没什么用…...

PCA(Principal Component Analysis,主成分分析)

PCA(Principal Component Analysis,主成分分析)是一种在数据分析中广泛应用的统计方法,主要用于数据降维、可视化和去噪。以下是对PCA的发展史、工作原理以及理论基础的详细解释: Principal Component Analysis 一、PC…...

干货 | 探索CUTTag:从样本到文库,实验步步为营!

CUT&Tag(Cleavage Under Targets and Tagmentation)是一种新型DNA-蛋白互作研究技术,主要用于研究转录因子或组蛋白修饰在全基因组上的结合或分布位点。相比于传统的ChIP-seq技术,CUT&Tag反应在细胞内进行,创新…...

提质不增本,降本不降质

#公益巡讲# #质量万里行# 公开课、沙龙活动...

数据结构---顺序表实现

目录 1.顺序表 2.动态顺序表的实现 (4)顺序表初始化 (5)顺序表销毁 (6)顺序表的插入 a.尾插 b.头插 (7)顺序表的删除 a.尾删 b.头删 (8)指定位置之…...

python docx 添加动态表格

在Python中,使用python-docx库可以创建Word文档并添加动态表格。以下是一个简单的例子,演示如何创建一个包含动态内容的表格: from docx import Document# 创建一个Word文档 document Document()# 添加一个标题 document.add_heading(动态表…...

git配置多SSH

目的: 一台电脑可以让github、gitee等账号同时存在,让不同账号配置不同的密钥 第一步:创建不同平台的SSH公钥 执行命令: ssh-keygen -t rsa -C "对应仓库邮箱地址" -f ~/.ssh/id_rsa.github 如果执行上面的命令&…...

IDEA连接SqlServer数据库

目录 下载jar包 下载sqljdbc_12.6压缩包 解压 导入IDEA 新建文件夹 复制粘贴进JDBC文件夹并设为library 编写类及方法 代码 下载jar包 以sqljdbc_12.6为例 下载sqljdbc_12.6压缩包 最新地址:sqljdbc 官方最新地址 解压 解压即用 导入IDEA 新建文件夹 复制…...

LeetCode 378 有序矩阵中第K小的元素

题目信息 LeetoCode地址: . - 力扣(LeetCode) 题解内容大量转载于:. - 力扣(LeetCode) 题目理解 题意很直观,就是求二维矩阵中所有元素排序后第k小的数。 最小堆写法 该写法不再赘述,维护…...

Vue3(domdiff)最长递归子序列求解简易版(超简单)

Vue3(domdiff)最长递归子序列求解简易版 ⚠️ 关键词(每一个都需要理解)js 代码实现写完感想欢迎关注 ⚠️ 关键词(每一个都需要理解) 动态规划(O(N^2))(不提倡&#xf…...

LLaMA-Factory+qwen多轮对话微调

LLaMA-Factory地址:https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md qwen地址:https://huggingface.co/Qwen/Qwen-7B-Chat/tree/main 数据准备 数据样例 [ {"id": "x3959", "conversations": [{&qu…...

邦芒面试:如何在面试中巧妙回答自己的缺点

在面试中,被问及自己的缺点时,如何巧妙回答是一门学问。恰当的回答不仅能够展示你的自我认知,还能让面试官看到你的成长潜力和积极态度。 首先,切忌谈一些看似缺点实则优点的话题,如追求完美、待人接物太客气等。这些…...

Android:身份证识别功能实现

说明&#xff1a; 此文使用华为SDK、百度SDK、百度在线API三种方式实现。 一、使用华为SDK实现身份证识别&#xff1a; 说明&#xff1a;免费&#xff0c;不需要联网。 1.AndroidManifest.xml添加权限&#xff1a;<uses-permission android:name"android.permissio…...

MacOS安装Homebrew教程

安装 Homebrew 是在 macOS 上管理软件包的一种简便方法。以下是安装 Homebrew 的步骤&#xff1a; 打开终端&#xff1a;你可以通过在 Spotlight 搜索栏中输入“终端”并按下回车键来打开 macOS 的终端应用程序。 执行安装命令&#xff1a;在终端中粘贴以下命令并按下回车键执…...

laravel如何通过DB获取一条数据并转成数组

在 Laravel 中&#xff0c;你可以使用原生数据库查询构建器&#xff08;DB facade&#xff09;来获取一条数据&#xff0c;并将其转换为数组。这可以通过在查询链的末尾调用 first() 方法后&#xff0c;使用 toArray() 方法来实现。first() 方法会返回一个 StdClass 对象&#…...

ENSP USG防火墙接入虚拟机;开启Web访问;

1.添加防火墙及云&#xff0c;启动防火墙&#xff1b; 2.配置桥接网卡&#xff1b; 默认账户&#xff1a;admin 默认密码&#xff1a;Admin123 #第一次登陆需修改密码&#xff1b; 默认G0/0/0口为管理口&#xff0c;而在模拟器中进入防火墙的web需如下配置&#xff1a; 配置 …...

数据结构算法题(力扣)——链表

以下题目建议大家先自己动手练习&#xff0c;再看题解代码。这里只提供一种做法&#xff0c;可能不是最优解。 1. 移除链表元素&#xff08;OJ链接&#xff09; 题目描述&#xff1a;给一个链表的头节点 head 和一个整数 val &#xff0c;删除链表中所有满足值等于 val 的节点…...

LeetCode---391周赛

题目列表 3099. 哈沙德数 3100. 换水问题 II 3101. 交替子数组计数 3102. 最小化曼哈顿距离 一、哈沙德数 简单的模拟题&#xff0c;代码如下 class Solution { public:int sumOfTheDigitsOfHarshadNumber(int x) {int s 0, tmp x;while(tmp){stmp%10;tmp/10;}return x…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

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

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

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...