腾讯开源AppAgent,手机的大模型智能代理

news2024/11/17 12:24:20

腾讯研究团队开源了一款基于大语言模型的,用于手机端执行复杂任务的多模态智能代理框架——AppAgent。

据悉,AppAgent的功能与AutoGPT等智能代理类似,不依赖于操作系统的后台访问,而是通过UI界面进行点击、滑动等拟人化操作,与App进行交互操作。

例如,AppAgent可以帮助用户自动填写Gmail内容,并发送邮件。所以,也可以看成手机端的智能RPA(机器人流程自动化)或智能“按键精灵”

为验证该框架的性能,研究人员在10个不同类别的应用程序上测试了50项任务,涵盖社交媒体、邮件、地图、购物等应用,以及图像编辑等复杂功能。

结果显示, AppAgent适应性强、学习和操作效率高,可以处理不同领域的APP任务。

开源地址:https://github.com/mnotgod96/AppAgent

论文地址: https://arxiv.org/abs/2312.13771

项目地址:https://appagent-official.github.io/

图片

传统的手机助手如Siri,主要是通过系统后端访问和函数调用来实现自动化操作。这种方式有一个很大弊端,就是需要访问用户的隐私、敏感数据,可能会出现很严重的数据安全问题。

而AppAgent采用了一种和RPA类似的方法,通过点击、滑动等模拟方式来操作APP,无需访问任何敏感数据,同时加上了大语言模型的理解和学习能力,使其效果更加出色以及增强适配性。

图片

多种学习模式

为了增强AppAgent的学习和适配能力,采用了自主探索和观察人类示范两种模式,也是AppAgent的核心模块之一。

1)自主探索,在这个过程中,AppAgent与应用程序进行交互,并尝试执行各种操作,例如,点击按钮、滑动屏幕等。

通过与应用程序的交互,代理能够观察到不同的反馈和结果,并从中学习到如何正确地操作应用程序。这种自主探索的学习方法使代理能够逐步积累知识和经验,建立起一个关于应用程序操作的知识库。

2)观察人类示范,AppAgent会观察人类用户在操作应用程序时的准确行为。通过分析和理解人类的示范行为,代理可以学习到正确的应用程序操作方式。

这种观察人类示范的学习方法使代理能够更快地学习和适应新的应用程序,因为它可以直接借鉴人类用户的经验和技巧。也可以理解成大模型中的,人类反馈强化学习过程。(RLHF)

通过这两种学习模式,AppAgent可以学习到应用程序的界面结构、功能和操作规则。这样的学习方法使得代理能够在不同的应用程序之间执行复杂任务,并在真实世界的环境中展示出高效和熟练的操作能力。

视觉理解

这个模块相当于AppAgent的“眼睛”,主要用于接收和识别UI界面元素。首先根据 XML 信息提取每个界面元素的唯一 ID 或自动生成 ID,然后在截图中用透明数字对界面元素进行标注,可有效提高AppAgent操作应用程序流程的准确性。

图片

此外,视觉理解模块还可以利用机器视觉,进行图片对象和语义特征的提取,例如,识别图片内容、界面控件等,为后续的大脑、执行提供支持。

决策和执行模块

执行模块相当于AppAgent的“四肢”,定义了智能代理与界面交互时的基本操作动作,例如,点击、滑动、长按等拟人化触控操作。

执行模块还定义了“输入文本”和“返回上级页面”等辅助操作。这些操作与各应用程序的界面属性匹配,可以很好地完成用户交互模拟,为整个框架提供了一致清晰地交互规范。

图片

决策模块相当于AppAgent的“大脑”, 在接收到任务指令后,会根据探索文档中的知识库进行任务分析,然后执行。详细流程如下:

1)观察当前界面元素和状态

2)思考下一步应采取的操作

3)执行选择的操作动作

4)总结并记录本轮执行结果

在这个迭代决策过程中,大脑模块会充分利用前面两种学习模式积累的经验,以保证智能代理执行任务的高效性和准确性。

本文素材来源AppAgent论文,如有侵权请联系删除

END

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

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

相关文章

继电保护测试仪的这4点用途和6点功能你知道几个?

众所周知,继电保护系统是电力系统中至关重要的组成部分。当电路出现故障时,它可以快速准确地切除故障部分,以确保电力系统的安全稳定运行。然后,为了提前发现和保证继电保护系统的故障和问题,通常需要使用继电保护测试…

嵌入式面试准备

题目都摘于网上 嵌入式系统中经常要用到无限循环,如何用C编写死循环 while(1){}或者for(;😉 内存分区 代码区,全局区(全局变量,静态变量,以及常量),栈区,堆区 const关键…

企业知识库:成为优秀企业的必备系统

导语: 在当今竞争激烈的商业环境中,企业需要不断创新和提高团队的协作效率,以保持竞争优势。而构建一个优秀的企业知识库系统已经成为众多企业必备的系统之一。本文将介绍企业知识库的定义、作用以及如何搭建一个完整有效的企业知识库。 什么…

基于MATLAB的正态分布与卡方分布(附完整代码与例题)

目录 一. 理论部分 二. MATLAB所使用的函数介绍 2.1 概率密度函数 2.2 概率分布函数 2.3 逆概率分布函数 三. 例题与代码 例题1 例题2 例题3 例题4 一. 理论部分 将连续随机变量的概率密度函数记为,既然跟概率相关,那必然满足两个重要的性质&a…

智能酒精壁炉历史轨迹:文化传统与现代融合的取暖方式

智能酒精壁炉作为一种取暖装置,承载着丰富的历史和文化传统。深入了解其在不同文化中的演变过程,以及如何成为现代家庭的取暖方式,可以了解智能酒精壁炉在历史中的发展轨迹。 古希腊和古罗马时期,人们使用酒精和其他可燃性液体作…

猫冻干什么牌子口碑好?专业人士分享口碑好的五款冻干猫粮牌子

近几年,冻干猫粮在宠物圈内非常流行,许多品牌都推出了冻干猫粮。在所有的猫食品中,冻干无疑是最具营养、动物蛋白含量最高的食品之一。冻干作为现在宠物圈最火的猫食品,受到了众多猫友们的喜爱和追捧。但有些铲屎官在选择冻干猫粮…

手动创建idea SpringBoot 项目

步骤一: 步骤二: 选择Spring initializer -> Project SDK 选择自己的JDK版本 ->Next 步骤三: Maven POM ->Next 步骤四: 根据JDK版本选择Spring Boot版本 11版本及以上JDK建议选用3.2版本,JDK为11版本…

rosdep init/update失败(转载)

sudo rosdep init rosdep update 如果你直接成功了,可直接跳过当我没说(不过90%的几率你都会失败的啦) 由于http://raw.githubusercontent.com这个网址墙的很厉害,大概率你是成功不了的,这里推荐一种本地化安装的方法…

Docker - 镜像 | 容器 | 数据卷 日常开发常用指令 + 演示(一文通关)

目录 Docker 开发常用指令汇总 辅助命令 docker version docker info docker --help 镜像命令 查看镜像信息 下载镜像 搜索镜像 删除镜像 容器命令 查看运行中的容器 运行容器 停止、启动、重启、暂停、恢复容器 杀死容器 删除容器 查看容器日志 进入容器内部…

理解 Go Mod Init

初始化Go模块和管理依赖的全面指南 go mod init 是Go编程语言(通常称为Golang)中用于初始化新Go模块的命令。在Go中,一个模块是一组相关的Go包,它们作为一个单元一起进行版本控制。通常,在项目目录的根目录下使用 go m…

Qt之自定义分页(翻页)控件

当数据量较大时,分页显示是个不错的选择。这里用百家姓来演示分页效果,包括首页、上一页、下一页、尾页和跳转。 一.效果 每页15个姓氏。 二.实现 QHPageWidget.h #ifndef QHPAGEWIDGET_H #define QHPAGEWIDGET_H#include <QWidget> #include <QStandardItemMod…

搭建一个高效的Python开发环境

“工欲善其事&#xff0c;必先利其器”&#xff0c;这里我们来搭建一套高效的 Python 开发环境&#xff0c;为后续的数据分析做准备。 关于高效作业&#xff0c;对于需要编写 Python 代码进行数据分析的工作而言&#xff0c;主要涉及两个方面。 1. 一款具备强大的自动完成和错…

Linux多线程服务端编程:线程安全的对象管理

1. 前置知识 1.1 __builtin_expect 1.1.1 使用 __builtin_expect提供给编译器分支预测优化信息&#xff0c;其含义为 exp 大概率为 c&#xff0c;其返回值为 exp 的值&#xff1b; long __builtin_expect(long exp, long c) // 下述表明该分支大概率不会执行 if (__builtin…

【SpringBoot篇】优惠券秒杀 — 添加优惠劵操作(基本操作 | 一人仅一张券的操作)

文章目录 &#x1f354;发放优惠券&#x1f386;基本操作&#x1f384;数据库表&#x1f6f8;思路&#x1f339;代码实现 &#x1f386;完善后的操作&#x1f6f8;乐观锁&#x1f339;代码实现 &#x1f354;一人仅一张优惠券&#x1f6f8;思路&#x1f339;代码⭐代码分析 &am…

Java学习——设计模式——介绍

文章目录 设计模式介绍UML的类图表示类与类之间关系的表示关联关系聚合关系组合关系依赖关系继承关系实现关系 设计模式介绍 设计模式design patterns&#xff0c;指在软件设计中&#xff0c;被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码&#xff0c;提…

简单的喷淋实验(2):(1)根据土壤湿度自动控制喷淋开关;(2)根据光照强度控制风扇以及灯的开关---嵌入式实训

目录 简单的喷淋实验(2)&#xff1a; &#xff08;1&#xff09;根据土壤湿度自动控制喷淋开关&#xff1b; &#xff08;2&#xff09;根据光照强度控制风扇以及灯的开关---嵌入式实训 任务2&#xff1a; 具体过程&#xff1a; 所用的头文件&#xff1a; data_global.h …

BDD - Python Behave Retry 机制

BDD - Python Behave Retry 机制 引言Behave RetryBehave Retry 应用feature 文件创建 step 文件Retry运行 Behave 并生成 rerun 文件重新运行失败的场景 引言 在日常运行测试用例&#xff0c;有时因为环境不稳定造成一些测试用例跑失败了&#xff0c;如果能将这些失败的测试用…

少走弯路:单片机使用点阵字体通过像素化的正确获取

要在单片机内自由显示文字&#xff0c;必须准备相应的字库。之前也发文介绍过&#xff1a; 在esp32(esp8266) 提供软字库显示中文的解决方案_esp32中文字库-CSDN博客 包括已经开源的项目&#xff1a; https://github.com/StarCompute/tftziku 这种字体获取思路是&#xff1a…

test mock-01-什么是 mock? Mockito/EasyMock/PowerMock/JMockit/Spock mock 框架对比

拓展阅读 test 之 jmockit-01-overview jmockit-01-test 之 jmockit 入门使用案例 mockito-01-overview mockito 简介及入门使用 PowerMock Mock Server ChaosBlade-01-测试混沌工程平台整体介绍 jvm-sandbox 入门简介 单元测试中的 mock 单元测试是一种验证代码单元&…

echart实现自定义图例文字颜色

1.效果图 2.html <div class"biao" id"biao1"></div> 2.js 关键&#xff1a; color: [#2db7f5, #ff6600, #921AFF, #c32441, #FF00FF, #FF8EFF, #53FF53, #F9F900, #00FFFF],//关键:自定义图例文字颜色在legend中添加data,将数据处理成如下…