Agent系列:AppAgent v2-屏幕智能Agent(详解版)

news2025/1/4 18:55:28
  • 引言

  • 简介

  • 方法

    • Agent 框架

    • Agent 交互

    • 探索阶段

    • 部署阶段

    • 文档生成

    • 高级功能

  • 实验结果

  • 总结

  • 局限性

  • 未来工作

1. 引言

大语言模型(LLM)如 ChatGPT 和 GPT-4 显著提升了自然语言处理能力,并且推动了智能体在自主决策中的应用。最初,这些智能体专为基于文本的交互方式设计,展现了卓越的表现,包括记忆自适应性和多任务处理能力。然而,现实世界的应用程序不仅仅局限于文本输入,还涉及视觉和其他模态数据的处理,这对传统智能体提出了挑战。

为应对这一需求,近年来涌现了多模态智能体,如 AssistGPT、Vipergpt 和 Visual ChatGPT 等,它们能够在复杂环境中执行多步骤推理、信息提取和集成,并根据用户输入作出适应性响应。此前的工作如 AppAgent v1 和 MobileAgent 通过模拟人类的交互方式,已经在智能手机应用程序中展示了较大的潜力。

尽管如此,准确识别图形用户界面仍然是多模态智能体面临的关键挑战。依赖视觉特征的传统方法往往因识别模型的局限性而不够准确。而移动环境的动态特性和频繁的应用更新也进一步加剧了这一挑战。即便是如 GPT-4 这样的先进模型,在处理不熟悉的视觉元素时仍显不足,尤其是在应对小众应用时。

为了解决这些问题,AppAgent v1 通过自动化探索和观看演示的方式增强了智能体的决策能力,但其过于依赖现成的解析器,限制了智能体在处理不标准界面元素时的灵活性。为此,AppAgent v2 提出了一种新的多模态智能体框架,扩展了动作空间,使其能够更广泛地适应不同类型的应用程序和界面元素。

1. 简介

随着多模态大语言模型(MLLM)的发展,视觉智能体(Agent)正逐渐在软件界面中,尤其是图形用户界面(GUI)中,发挥重要作用。本文设计了一个专为移动设备打造的智能体框架 AppAgent v2,该框架基于大语言模型,能够在移动设备上导航并模拟用户交互行为。AppAgent v2 通过构建灵活的动作空间,增强了其在不同应用程序中的适应性,支持解析器、文本和视觉描述的结合。智能体的工作分为两个阶段:探索(Exploration)和部署(Deployment)。

在探索阶段,智能体通过自动或手动的方式记录用户界面各元素的功能,并将其存储在结构化的知识库中。部署阶段,智能体通过 RAG(检索增强生成)技术从知识库中检索信息并实时更新,使其能够准确高效地完成任务,包括跨多个应用程序执行复杂的多步骤操作。实验结果表明,AppAgent v2 在各种基准测试中的表现优异,验证了其在实际场景中的有效性。AppAgent v2官方表示代码将很快开源。更多关于端侧大模型、Agent及其实践,欢迎关注微信公众号《小窗幽记机器学习》:

2. 方法

AppAgent v2 的多模态智能体框架分为两个阶段:探索部署。在探索阶段,智能体通过自主或手动方式分析用户界面,记录 UI 元素及其功能,形成知识库。在部署阶段,智能体利用知识库中的信息,根据任务要求进行操作。

图1:appAgent 流程。探索模块采用Agent驱动或手动探索,将元素信息收集到文档中。部署阶段使用RAG实时检索和更新文档,从而快速准备执行任务

2.1 Agent 框架

AppAgent v2 在 Android 15 环境下使用 Android Studio 模拟器实现。智能体通过调用 AndroidController 发送指令与手机交互,结合 OCR 和检测模型,从屏幕截图中提取 UI 元素的信息(如 Android ID、文本、坐标等),并将其用于任务推断和决策。

2.2 Agent 交互

智能体通过一套标准化的指令与 Android 系统交互,指令包括点击、输入文本、滑动、返回、长按等操作。这些指令被转换为 Android 系统可执行的命令,确保与界面的交互精确无误。

2.3 探索阶段

在探索阶段,智能体通过两种方式分析用户界面:智能体驱动的探索和手动探索。

  • 智能体驱动的探索:智能体自动识别需要交互的 UI 元素并执行操作,记录交互前后的变化,并根据结果反思操作的有效性。

  • 手动探索:当智能体对某些界面的理解有限时,引入手动探索,GPT-4 通过观察人类的操作

记录 UI 元素的变化和任务流程,帮助智能体在未来的任务中更好地理解和应对复杂的界面和操作。

2.4 部署阶段

在部署阶段,智能体利用自查检索器(Self-query Retriever)从知识库中检索相关文档,结合当前的 GUI 信息和任务要求,执行操作。智能体可以根据任务的需要动态更新知识库,确保在不同应用场景中快速适应。通过不断更新历史信息和操作结果,智能体能够优化其决策过程,直到任务完成。

2.5 文档生成

探索阶段收集的 UI 元素信息被存储在结构化的知识库中。该知识库包括元素的 Android ID、可见标签、文本内容、视觉特征(如颜色、形状)及其屏幕坐标等。知识库支持实时更新和动态检索,确保智能体可以随着任务的变化不断调整其操作策略。

2.6 高级功能

AppAgent v2 还具有以下增强功能:

  • 视觉特征决策:当无法通过标准解析器识别 UI 元素时,智能体会转向基于视觉特征的决策,利用 OCR 技术识别界面中的文本和图标,确保在面对全新界面时仍能有效操作。

  • 安全检查:智能体在执行涉及敏感信息的操作(如账户密码或支付)时,会自动切换到手动模式,确保用户隐私不受侵犯。

  • 跨应用任务管理:智能体能够在多个应用程序之间切换,执行复杂的跨应用任务,如从一个应用中提取信息并在另一个应用中执行操作。

3. 实验

为了评估 AppAgent v2 的性能,本文在 Android 平台上进行了一系列实验,涵盖多个基准测试和用户研究。

3.1 定量结果

AppAgent v2 在三个基准测试中进行了评估:DroidTaskAppAgent v1 基准Mobile-Eval

  • DroidTask:在 13 个流行应用程序衍生出的 158 个任务中,AppAgent v2 在完成率上表现优异,显著超过了 GPT-4 和带有记忆组件的 AutoDroid,证明了其强大的任务执行能力。

  • AppAgent v1 基准:在 Twitter、Telegram 和其他常用应用的测试中,AppAgent v2 通过探索和部署阶段的结合,展示了其在多种任务和界面中的适应能力,成功率大幅提升。

  • Mobile-Eval:在 10 个常用移动应用程序中,AppAgent v2 在成功率、过程分数、相对效率和完成率四个指标上均表现出色,验证了其高效、准确地执行复杂任务的能力。

表2: MobileAgent和appAgent在Mobile-Eval上的指标对比结果

3.2 用户研究

为了进一步展示 AppAgent v2 的实际应用效果,本文进行了用户研究,模拟了复杂的跨应用任务。结果表明,AppAgent v2 能够准确执行长时间、多步骤的任务,展现了其在实际场景中处理复杂任务的能力和灵活性。

图3:跨app应用上的定性结果

3.3 UI 界面解析分析

AppAgent v2 结合了结构化数据和视觉特征两种方法解析 UI 界面。对于常规应用,智能体依赖从 Android 系统解析的 XML 数据,而对于自定义开发的应用,智能体则通过 OCR 和视觉特征识别图标和文本。该双重策略显著提高了智能体的适应性和任务执行的可靠性。

4. 总结

本文提出了一个多模态智能体框架 AppAgent v2,显著提升了智能体在移动设备上的交互能力。通过整合解析器和视觉特征,AppAgent v2 构建了一个灵活的动作空间,能够适应不同类型的应用程序界面,并通过探索和部署两个阶段有效管理移动设备的动态环境。实验证明了该框架在图形用户界面识别和复杂任务执行方面的优越性,尤其是在跨应用任务和新环境中的适应能力。

AppAgent v2 的主要贡献包括:

  • 多模态智能体框架的引入:结合解析器和视觉特征,构建了灵活的动作空间,增强了智能体与图形用户界面的交互能力,提高了其在新环境中的适应性。

  • 结构化存储格式的开发:结合 RAG 技术,实现了对知识库的实时更新和访问,增强了智能体的决策精度和任务执行效率。

  • 广泛的实验证明:通过多个基准测试和用户研究,验证了智能体在各种移动应用程序中的有效性,展示了其适应性、用户友好性和操作效率。

AppAgent v2 在现有技术基础上进一步提升了智能体在复杂移动环境中的表现,为未来的多模态智能体研究提供了重要的参考和改进方向。

5. 局限性

尽管 AppAgent v2 在多个应用场景中表现优异,但仍存在一些局限性:

  • 数字标签识别的局限性:AppAgent v2 依赖智能体识别 UI 上的数字标签来确定特定元素。当 UI 元素本身包含数字时,可能会导致混淆。这种问题可以通过预先的手动探索和记录来缓解。

  • 隐藏 UI 元素的交互难题:智能体在处理一些隐藏 UI 元素(如加速视频播放的按钮)时,由于缺乏先验知识,可能无法检测到相关元素,进而限制了其执行某些操作的能力。未来的工作将侧重于增强 UI 识别能力,并结合先验知识来解决这些问题。

6. 未来工作

未来的研究工作将集中在以下几个方面:

  • 增强跨应用任务处理能力:进一步优化智能体在多个应用程序之间切换时的决策流程,提升其处理复杂跨应用任务的效率。

  • 优化视觉特征识别:改进视觉特征的识别与操作,特别是在面对复杂或定制化的应用界面时,确保智能体始终能够做出正确的交互决策。

  • 提高智能体的用户体验:通过优化智能体的反馈机制和任务执行过程,进一步提升用户体验,使其更加直观和高效。

总之,AppAgent v2 为多模态智能体的发展提供了坚实的基础,并为未来的移动设备智能体研究指明了方向。

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

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

相关文章

高等数学学习笔记 ☞ 无穷小与无穷大

1. 无穷小 1. 定义:若函数当或时的极限为零,那么称函数是当或时的无穷小。 备注: ①:无穷小描述的是自变量的变化过程中,函数值的变化趋势,绝不能认为无穷小是一个很小很小的数。 ②:说无穷小时…

【网络安全实验室】SQL注入实战详情

如果额头终将刻上皱纹,你只能做到,不让皱纹刻在你的心上 1.最简单的SQL注入 查看源代码,登录名为admin 最简单的SQL注入,登录名写入一个常规的注入语句: 密码随便填,验证码填正确的,点击登录…

Hive性能调优考量

Hive作为大数据领域常见的数据仓库组件,在设计和开发阶段需要注意效率。影响Hive效率的不仅仅是数据量过大,数据倾斜、job(小文件过多)或者磁盘I/O过多、MapReduce分配不合理等因素都会对Hive的效率有影响。对Hive的调优可以从架构…

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示

在CodeBlocks搭建SDL2工程构建TFT彩屏模拟器虚拟TFT彩屏幕显示 参考文章源码下载地址一、SDL2的创建、初始化、退出二、系统基本Tick、彩屏刷新、按键事件三、彩屏获取与设置颜色四、彩屏填充颜色及清屏五、彩屏显示中文和英文字符串六、彩屏显示数字七、彩屏初始化八、主函数测…

ESLint+Prettier的配置

ESLintPrettier的配置 安装插件 ​​​​​​ 在settings.json中写下配置 {// tab自动转换标签"emmet.triggerExpansionOnTab": true,"workbench.colorTheme": "Default Dark","editor.tabSize": 2,"editor.fontSize": …

Springboot使用RabbitMQ实现关闭超时订单的一个简单示例

1.maven中引入rabbitmq的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 2.application.yml中进行rabbitmq相关配置&#xff1a; # rabbit…

复杂对象的创建与组装 - 建造者模式(Builder Pattern)

建造者模式&#xff08;Builder Pattern&#xff09; 建造者模式&#xff08;Builder Pattern&#xff09;建造者模式&#xff08;Builder Pattern&#xff09;概述建造者模式结构图代码 talk is cheap&#xff0c; show you my code总结 建造者模式&#xff08;Builder Patter…

云计算课程报告实验-WordCount算法实验 过程记录

内容描述 本实验指导书通过在华为鲲鹏上&#xff0c;编译运行WordCount程序。完成实验操作后&#xff0c;读者会掌握简单的程序编写&#xff0c;如WordCount中的getWords、countWords、treeMerge。 实验环境 华为鲲鹏云主机、openEuler 20.03操作系统&#xff1b;安装mpich-3…

springboot533图书管理系统(论文+源码)_kaic

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;图书信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…

【服务器开发及部署】code-server 显示git graph

在开发一些linux上的内容的时候进程需要在开发机和生产部署上花费大量的时间。 为了解决上述问题,我们今天介绍一款在服务上开发的思路 git + code server + 宝塔 其中需要处理一些问题,此处都有交代 步骤 安装宝塔安装code-server配置插件配置浏览器处理的问题 git版本过低,…

【游戏设计原理】41 - 游戏的核心

1. 如何理解&#xff1f; 这条原理主要在讲述“游戏核心”这一概念的重要性及其在游戏开发中的作用。游戏的核心是指决定游戏整体玩法和体验的核心元素&#xff0c;它通常是游戏的主要机制、目标或动作方式。理解这一原理时&#xff0c;我们可以从以下几个层面来考虑&#xff…

win11 vs2022 opencv 4.10 camshift示例程序运行

记录win11 vs2022 opencv 4.10下 camshift等示例程序的单步debug启动方式&#xff0c;方便了解源码。 debug版本编译通过&#xff0c;但运行时报出大量日志信息(部分dll加载FAILED后会自动找兼容dll)。但也能继续运行&#xff0c;效果如下 release版本可以直接运行&#xff0…

数据结构漫游记:初识栈(stack)

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…

人工智能知识分享第五天-正则化.损失函数案例

正则化 欠拟合与过拟合 过拟合&#xff1a;一个假设 在训练数据上能够获得比其他假设更好的拟合&#xff0c; 但是在测试数据集上却不能很好地拟合数据 (体现在准确率下降)&#xff0c;此时认为这个假设出现了过拟合的现象。(模型过于复杂) 欠拟合&#xff1a;一个假设 在训…

CSS2笔记

一、CSS基础 1.CSS简介 2.CSS的编写位置 2.1 行内样式 2.2 内部样式 2.3 外部样式 3.样式表的优先级 4.CSS语法规范 5.CSS代码风格 二、CSS选择器 1.CSS基本选择器 通配选择器元素选择器类选择器id选择器 1.1 通配选择器 1.2 元素选择器 1.3 类选择器 1.4 ID选择器 1.5 基…

如何在 Ubuntu 22.04 上优化 Apache 以应对高流量网站教程

简介 在本教程中&#xff0c;我们将学习如何优化 Apache 以应对高流量网站。 当运行高流量网站时&#xff0c;确保你的 Apache Web 服务器得到优化对于有效处理负载至关重要。在本指南中&#xff0c;我们将介绍配置 Apache 以提高性能和可扩展性的基本技巧。 为高流量网站优…

安装教程:慧集通集成平台(DataLinkX)智能体客户端安装操作(Linux/windows/mac)

1.下载客户端 使用提供的账号登录集成平台后台(https://www.datalinkx.cn/),点击左侧菜单栏【智能体】→【智能体】进入到智能体列表界面&#xff0c;在该界面我们找到功能栏中的下载按钮点击则会弹出下载界面&#xff0c;在该界面我们可以选择不同的系统操作系统来下载对应版…

Spring boot + Hibernate + MySQL实现用户管理示例

安装MySQL Windows 11 Mysql 安装及常用命令_windows11 mysql-CSDN博客 整体目录 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLS…

大模型Weekly 03|OpenAI o3发布;DeepSeek-V3上线即开源!

大模型Weekly 03&#xff5c;OpenAI o3发布&#xff1b;DeepSeek-V3上线即开源&#xff01;DeepSeek-V3上线即开源&#xff1b;OpenAI 发布高级推理模型 o3https://mp.weixin.qq.com/s/9qU_zzIv9ibFdJZ5cTocOw?token47960959&langzh_CN 「青稞大模型Weekly」&#xff0c;持…

电路学习之前言

1.作为一名嵌入式开发者&#xff0c;去学习电路是必经之路。如果是一名嵌入式软件开发者&#xff0c;可能对电路和硬件的开发要求是能看懂电路图即可&#xff0c;但是&#xff0c;学习电路可以进一步提高看电路图的能力&#xff0c;可以提升自己的整体实力水平。而且&#xff0…