【论文通读】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
前言
来自昆仑万维的一篇智能体环境数据大一统框架工作,对未来计算机智能体的发展具有指导性意义,作者在环境上对计算机智能体的输入输出进行了统一,基于该环境又设计了智能体数据的收集评估框架,通过实验也验证了数据集收集的重要性。此外它还提供了丰富的文档,便于初学者学习。
Paper | https://arxiv.org/pdf/2403.17918.pdf |
---|---|
Document | https://skyworkai.github.io/agent-studio/ |
From | Arxiv 26 Mar 2024 |
Abstract
创造在任意数字设备上操作任意软件的自主虚拟智能体仍然是当前AI的主要挑战。关键的两点障碍在于:现实环境中构建虚拟智能体的基础设施不足,以及对基础智能体能力评估的需求。为了解决这些问题,本文提出AgentStudio,一个在线、现实、多模式的工具包,可以涵盖智能体开发完整的生命周期。包括环境设置,数据收集,智能体评估以及可视化。观察和动作空间高度通用,支持函数调用和人机界面。AgentStudio的图形用户界面进一步增强了这种多功能性,允许在现实环境中高效开发数据集和基准。为了说明这一点,作者引入了一个视觉基础数据集和一个真实世界的基准套件,二者都是通过图像化界面创建的。此外,作者还提出一些源自AgentStudio的可行解,例如通用视觉基础、开放式工具创建、视频学习等。作者开源了环境、数据集、基准测试和界面,以促进开发更通用的虚拟智能体。
Motivation
- 受到环境和数据的限制,现有的智能体仅在简单、受限的场景下评估演示,缺乏实用性和可靠性。
- 真实环境难以收集数据,阻碍智能体的提升。
AgentStudio工具包如何解决上述问题?
- 包括了智能体观察和动作空间的定义工具。
- 提供了跨平台的在线环境支持。
- 支持交互式数据的收集与评估,以及可扩展的任务套件,增强实用性和灵活性。
上图展示AgentStudio如何在环境上和数据集上解决之前工作的问题。
Framework
AgentStudio优势:
- 可复现、多模态、跨平台的在线环境。支持docker、FastAPI以及虚拟机连接各种操作系统和设备,注重真实落地场景。
- 统一标准输入输出。和人类保持一致,通过观察屏幕输入,控制键鼠和命令行输出,也支持函数调用和API。
- 全面、可扩展、可组合的任务集。包含在十余个应用上全面评估AI智能体的能力,覆盖各种应用场景,包含不同难度任务。
- 完整的智能体数据收集和评估代码。可用于人工标注数据集,也可用于智能体自行收集经验。
- 关注工具创造和应用。支持智能体在交互中自行创造并复用新的工具。
- 交互式可视化界面。提供用户友好的轻量化GUI界面,帮助用户一键自动化创建任务并收集数据。
下图是使用AgentStudio人工标注数据以及自动标注数据的过程。
评估
除了工具包的搭建,研究团队评估了多个多模态智能体完成任务的能力。为了全面评估智能体的能力,AgentStudio的实验从多个角度考虑:
- 图形界面grounding数据集。任务为单步动作,指令无需规划, 关注智能体与图形界面交互的能力。
- 日常任务与组合任务数据集。任务涉及调用复杂API,或者多步动作以及跨软件交互。用于评估智能体完成日常任务、以及进行复杂动作规划的能力。
GUI Grouding
每个数据都是三元组: T = ( g , s , a ) T=(g,s,a) T=(g,s,a),分别代表instruction、截图和鼠标动作。基于AgentStudio,团队设计了一个包含 227 条鼠标点击指令的数据集,涵盖三种流行的桌面操作系统和九种应用程序。在当前多模态模型上进行评估,结果如下表所示:
在闭源模型上,模型展示了在不同操作系统下泛化的差异性,并且得分都不高,GUI能力不足。在开源模型上,基于Qwen-VL微调的SeeClick在每个任务上都是最高分,凸显了进一步扩展GUI基础数据的重要性,以通过数据驱动的方法改进多模式模型,从而实现有效的现实部署。
上图是在位置和点击类型两个指标上的比较。可以看到,所有模型在精确定位上得分较低,有很大改进空间,b表明点击成功率和元素大小相关,分而治之的方法可能提升点击的准确率。
Real-World Cross-Application Benchmark Suite
为了说明AgentStudio在复杂的场景促进评估,作者引入了由77个现实任务组成的基准套件,包括工具使用、GUI基础、长期规划等。每个任务形式化为一个三元组,包括自然语言描述,重置环境组件(防止其它项干扰实验),评估结果轨迹组件。结果如下:
虽然GPT-4在大多数API任务中表现出色,但是在GUI和组合任务上面临挑战,另一方面,Gemini-1.0 Pro 和 GPT-3.5 Turbo 总体上表现出相对较低的成功率,但它们较高的批评准确率意味着这些模型可能有潜力通过开发新颖的自校正算法来提高其性能。
Conclusion
本文介绍了AgentStudio,一个开放的工具包,用于开发在现实数字世界中的通用智能体,它包括数据收集评估、可视化和用户界面,允许在任意人类任务上开发测试。这篇工作非常solid ,在各种智能体打架的今天,AgentStudio从另一个角度出发, 在底层统一了各种计算机智能体的评估和交互,工作合理且完整, 有极强的扩展性和自定义性,具有特别大的发展前途。我认为基于这篇工作,未来可以考虑的方向有:
- 通用工具的积累。即插即用的工具,可以为任何智能体所用,这也涉及相关的框架与协议。
- 更丰富的输入输出接口。目前只支持键鼠、bash,如果能够泛化到各种设备,那会在更多场景解放人类双手。
- 评估的方式不是很合理,毕竟有的操作没有固定的流程,遇到特殊情况也无法评估。
- 数据集规模不大,覆盖面不够广。
相关文章:

【论文通读】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))(不提倡…...
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:身份证识别功能实现
说明: 此文使用华为SDK、百度SDK、百度在线API三种方式实现。 一、使用华为SDK实现身份证识别: 说明:免费,不需要联网。 1.AndroidManifest.xml添加权限:<uses-permission android:name"android.permissio…...
MacOS安装Homebrew教程
安装 Homebrew 是在 macOS 上管理软件包的一种简便方法。以下是安装 Homebrew 的步骤: 打开终端:你可以通过在 Spotlight 搜索栏中输入“终端”并按下回车键来打开 macOS 的终端应用程序。 执行安装命令:在终端中粘贴以下命令并按下回车键执…...
laravel如何通过DB获取一条数据并转成数组
在 Laravel 中,你可以使用原生数据库查询构建器(DB facade)来获取一条数据,并将其转换为数组。这可以通过在查询链的末尾调用 first() 方法后,使用 toArray() 方法来实现。first() 方法会返回一个 StdClass 对象&#…...

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

数据结构算法题(力扣)——链表
以下题目建议大家先自己动手练习,再看题解代码。这里只提供一种做法,可能不是最优解。 1. 移除链表元素(OJ链接) 题目描述:给一个链表的头节点 head 和一个整数 val ,删除链表中所有满足值等于 val 的节点…...

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

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...