X-PLUG的Mobile-Agent,手机操作新潮流,多Agent协作让操作更智能!

在当今移动互联网蓬勃发展的时代,人们对于移动设备的操作便利性和智能化需求日益增长。如何让移动设备更智能地为我们服务,成为了众多科研人员和开发者关注的焦点。Mobile-Agent 作为一个创新的解决方案,由 X-PLUG 开发,正在展现出强大的潜力和独特的魅力。它通过结合人工智能和视觉感知技术,为我们带来了一种全新的移动设备操作模式,为移动应用自动化、用户体验提升以及多任务处理等多个方面带来了新的可能性。本文将深入探讨 Mobile-Agent 的各项特性,带你全面了解这一前沿技术。

一、项目概述

Mobile-Agent 是一个自主多模态移动设备代理,其主要目标是通过视觉感知实现对移动设备的智能化操作。它是一个具有移动性的智能代理软件实体,能够在网络节点间自由移动,并且可以代表用户或其他代理执行各种任务。它的出现为我们提供了一种不依赖传统系统 XML 文件或其他元数据的纯视觉解决方案,仅通过分析图像就能理解和操作手机,极大地扩展了操作范围和灵活性。

二、主要功能

1、操作定位

Mobile-Agent 具备强大的操作定位能力。它能够准确地识别并点击屏幕上的特定图标和文本,为各种操作提供精确的位置信息。在实现这一功能的过程中,它利用了先进的检测模型和视觉感知工具,例如使用光学字符识别(OCR)工具来定位文本元素,通过图标检测工具以及 CLIP 模型来识别屏幕上的各种图标。这使得它可以精确地定位我们在日常使用手机时所需的各种元素,无论是打开应用程序、点击菜单选项,还是查找和操作具体的功能按钮,都能够轻松应对。

2、自我规划

这是Mobile-Agent 另一个令人瞩目的功能。它能够根据用户的指令和当前屏幕的状态,自动规划并执行一系列的操作步骤。具体来说,它会不断迭代获取屏幕的截图,同时结合操作历史和系统提示,综合考虑各种因素,然后有条不紊地决定下一步的操作。这就像是拥有一个智能助手,它会根据你提供的指令,自己规划出一套完整的操作流程,帮助你完成复杂的任务,而无需用户手动干预每一个操作细节。

3、自我反思

当在操作过程中出现错误或者执行了无效操作时,Mobile-Agent 展现出了自我反思的能力。它可以及时发现这些问题,并迅速采取补救措施,例如尝试其他可能的操作或者调整相关的参数,确保任务能够顺利完成。这种自我纠错的能力极大地提高了任务执行的成功率,为自动化操作的可靠性提供了有力保障。

4、多应用操作

Mobile-Agent 支持在多个应用程序之间进行操作,具有很强的跨应用程序操作能力。它可以在不同的应用程序之间自由切换,并且能够协调完成一些涉及多个应用程序的复杂任务。这使得它不再局限于单一应用程序的操作,能够在更广泛的范围内为用户提供帮助,为多任务处理和应用程序之间的协同操作带来了极大的便利。

三、技术原理

Mobile-Agent 的技术实现是多方面技术的综合运用。首先,它巧妙地结合了大规模语言模型(如 GPT-4V),通过读取屏幕截图和用户的指令,利用这些语言模型强大的理解和推理能力,将自然语言指令转化为具体的操作步骤。其次,在视觉感知方面,它充分利用了 OCR 工具、图标检测工具和 CLIP 模型等,从屏幕截图中提取所需的视觉信息,为操作提供依据。

在整体架构上,它采用了多智能体架构,其中包括视觉感知智能体、决策智能体、执行智能体和反思智能体等多个智能体。这些智能体相互协作,共同完成复杂的移动设备操作任务。同时,它采用了ReAct 中的提示格式,要求代理输出观察、思考和行动三个部分,使得其操作过程更加清晰、有序和可解释。

具体而言,当用户输入一条指令时,大规模语言模型会对指令进行解析,并结合当前屏幕的视觉信息,将其转化为具体的操作需求。视觉感知智能体利用各种工具获取屏幕上的视觉元素信息,决策智能体根据这些信息做出决策,执行智能体则负责具体的操作执行,而反思智能体则对整个操作过程进行监督和调整,确保任务的顺利进行。

四、应用场景

1、自动化移动设备操作

对于一些重复性的操作,如批量处理文件、定期打开特定应用程序执行某些任务等,Mobile-Agent 可以实现自动化操作,极大地提高操作效率。例如,在每天上班前自动打开邮件应用,查看并回复重要邮件,或者在固定时间打开健身应用记录运动数据等。

2、移动设备性能评估

在移动设备性能评估领域,Mobile-Agent 可以模拟用户的操作行为,通过自动化的操作流程,对设备在不同负载和任务下的性能进行测试和评估。它可以自动打开多个应用程序,执行各种操作,并收集设备的性能数据,帮助开发者优化设备性能和应用程序。

3、提高移动应用程序适应性

在开发和测试移动应用程序时,Mobile-Agent 可以模拟不同用户的操作,测试应用程序在不同环境和操作条件下的适应性。这有助于开发者发现应用程序的潜在问题,优化用户体验,确保应用程序在各种情况下都能正常运行。

此外,在实际使用中,Mobile-Agent 可以完成很多实际的日常任务。例如,它可以在阿里巴巴的购物应用上帮助用户寻找心仪的物品,并将其添加到购物车;在亚马逊音乐应用中搜索特定歌手的歌曲并播放;在 Chrome 浏览器中进行信息搜索;在 Gmail 中撰写和发送邮件;在抖音等短视频平台上为宠物猫的视频点赞或评论等。而且,它还可以结合使用多个应用程序,完成更加复杂的任务,展现出其强大的跨应用协作能力。

五、在线体验

你可以通过在线的Demo (https://huggingface.co/spaces/junyangwang0410/Mobile-Agent) 先进行简单的体验,感受其操作流程和效果。

在实际开发和使用中,要注意对用户隐私和数据安全的保护,避免将涉及用户敏感信息的操作交给Mobile-Agent 执行,除非你已经采取了相应的安全措施。

六、本地部署

注意:当前 Mobile-Agent 的工具调试仅支持安卓和鸿蒙系统(版本号 ≤ 4),暂不支持 iOS 等其他系统。

1. 安装依赖

在命令行中输入以下命令安装所需的依赖项:

pip install -r requirements.txt

2. 准备通过 ADB 连接移动设备

以下是连接移动设备的详细步骤:

1下载 ADB

首先,下载 Android Debug BridgeADB),可从以下地址获取:

https://developer.android.com/tools/releases/platform-tools?hl=en

2开启设备调试功能:

在您的移动设备上开启“USB 调试“ADB 调试。一般来说,这需要先打开开发者选项,不同设备开启开发者选项的方法可能有所不同,但通常是在系统的关于手机(或类似名称)中连续点击版本号若干次即可开启。对于 HyperOS 系统,不仅要开启“USB 调试,还需要同时打开“USB 调试(安全设置)

3连接设备与电脑:

使用数据线将移动设备和电脑相连,连接后,在手机的连接选项中选择传输文件模式,以确保数据传输的顺畅。

4测试连接是否成功:

执行以下命令测试连接情况: `/path/to/adb devices`。若输出的设备列表不为空,说明连接成功。这里 `/path/to/adb` 的具体路径,在 Windows 电脑上是 `xx/xx/adb.exe` 的文件格式,而在 MacOS 或 Linux 系统上是 `xx/xx/adb` 的文件格式。

5赋予 ADB 权限(MacOS 或 Linux):

若您使用的是 MacOS 或 Linux 系统,请使用以下命令为 ADB 开启权限:

sudo chmod +x /path/to/adb

3. 在移动设备上安装 ADB 键盘

请按以下步骤在您的移动设备上安装 ADB 键盘:

1下载 ADB 键盘安装包:

从以下地址下载 ADB 键盘的 apk 安装包:

https://github.com/senzhk/ADBKeyBoard/blob/master/ADBKeyboard.apk

2安装 ADB 键盘:

在设备上点击下载好的 ADBKeyboard.apk 文件,按照系统提示完成安装操作。

3切换默认输入法:

进入系统设置,将默认输入法切换为“ADB Keyboard”,以便后续操作使用。

4. 选择适合的运行方式

以下是关于运行方式的选择和配置:

1)编辑 run.py 文件:

打开 `run.py` 文件,从第 22 行开始编辑您的设置,需要输入您的 ADB 路径、指令、GPT-4 API URL 以及 Token

2)图标描述模型调用方法的选择:

  • 根据您设备的性能选择图标描述模型的调用方法:

  • 若您的设备配备高性能 GPU,建议使用“local”方法,即直接在本地设备中部署图标描述模型,对于性能强劲的设备,该方法通常能带来更高的效率。

  • 若您的设备不足以运行 7B 大小的 LLM,则推荐使用“api”方法,此方法会使用并行调用以确保运行效率。

3)图标描述模型的选择:

  • 若选择“local”方法,需要在“qwen-vl-chat”“qwen-vl-chat-int4”之间抉择:

  • “qwen-vl-chat”对 GPU 内存的需求相对较高,但能提供比“qwen-vl-chat-int4”更好的性能,同时“qwen_api”可以不填。

  • 若选择“api”方法,则要在“qwen-vl-plus”“qwen-vl-max”之间进行选择:

  • “qwen-vl-max”会产生更多的费用,但性能上比“qwen-vl-plus”更优,并且需要申请 Qwen-VL 的 API-KEY,将其输入到“qwen_api”中。

4)添加操作知识:

您可以在“add_info”中添加操作知识,例如完成所需指令所需的特定步骤,这有助于更精确地操作移动设备。

5)性能优化设置:

  • 若您希望进一步提升移动设备的运行效率,可对以下开关进行设置:

  • “reflection_Switch”“memory_switch”设置为“False”

  • “reflection_switch”决定是否启用反思智能体,启用此开关可能导致操作陷入死循环,不过您可以在“add_info”中添加操作知识来避免这种情况。

  • “memory_switch”用于决定是否将内存单元添加到操作过程中,如果后续操作不需要使用之前屏幕中的信息,可将其关闭。

5. 运行程序

在完成上述所有准备和配置工作后,在命令行输入以下命令运行 Mobile-Agent

python run.py

通过以上详细的本地部署步骤,您可以在满足条件的移动设备上使用 Mobile-Agent 进行操作。在整个过程中,请确保按照步骤操作,仔细检查各项配置,以确保顺利部署和运行 Mobile-Agent。同时,如果遇到任何问题,可以参考项目的文档或在相关技术论坛上查找解决方案。

结语

Mobile-Agent 作为一种新兴的移动智能操作代理,为移动设备的智能化操作和自动化带来了新的思路和解决方案。它将人工智能和视觉感知技术深度融合,展现出了强大的操作定位、自我规划、自我反思和跨应用操作等功能,在自动化移动设备操作、性能评估以及提高移动应用适应性等多个方面展现出了广阔的应用前景。虽然目前它可能还处于发展阶段,但随着技术的不断进步和完善,相信它将为我们带来更多的惊喜和便利。

项目地址

仓库地址:https://github.com/X-PLUG/MobileAgent

技术论文:https://arxiv.org/pdf/2401.16158

在线体验https://huggingface.co/spaces/junyangwang0410/Mobile-Agent

(文:小兵的AI视界)

欢迎分享

发表评论