AppAgent: Multimodal Agents as Smartphone Users¶
组织: 腾讯
大型语言模型 ( LLMs ) 的最新进展催生了能够执行复杂任务的智能代理。本文介绍了一种新颖的基于LLM的多模式代理框架,旨在操作智能手机应用程序。我们的框架使代理能够通过简化的动作空间来操作智能手机应用程序,模仿类人交互,例如点击和滑动。这种新颖的方法绕过了对系统后端访问的需求,从而扩大了其在不同应用程序中的适用性。我们代理功能的核心是其创新的学习方法。代理通过自主探索或观察人类演示来学习导航和使用新应用程序。此过程生成一个知识库,代理可以参考该知识库来跨不同应用程序执行复杂的任务。为了证明我们的代理的实用性,我们在 10 种不同的应用程序中进行了 50 多项任务的广泛测试,包括社交媒体、电子邮件、地图、购物和复杂的图像编辑工具。结果证实了我们的代理在处理各种高级别任务方面的熟练程度。
框架的两阶段方法:
1. 探索阶段: 代理与智能手机应用程序进行交互,并从其结果中学习,以创建全面的参考文档
应用程序代理观察不同应用程序用户界面中的交互。
通过充分的观察,应用程序代理会变得擅长使用应用程序。
这些知识被精心汇编成文档。一旦这个学习阶段完成,代理就准备好采取行动。
2. 部署阶段: 代理利用本文档中编译的信息来有效地操作和导航应用程序
应用程序代理可以跨任何支持的应用程序处理高级任务。
这种有条不紊的方法使应用程序代理能够跨不同应用程序高效地完成各种复杂任务。
3.1 Environment and Action Space¶
Action Space:
基于人类与智能手机的常见交互:点击(taps)和滑动(swipes)
设计了四个基本功能:
𝚃𝚊𝚙(𝚎𝚕𝚎𝚖𝚎𝚗𝚝:𝚒𝚗𝚝): 模拟点击屏幕上编号
𝙻𝚘𝚗𝚐_𝚙𝚛𝚎𝚜𝚜(𝚎𝚕𝚎𝚖𝚎𝚗𝚝:𝚒𝚗𝚝): 模拟在 UI 元素上长按(1s)
𝚂𝚠𝚒𝚙𝚎(𝚎𝚕𝚎𝚖𝚎𝚗𝚝:𝚒𝚗𝚝, 𝚍𝚒𝚛𝚎𝚌𝚝𝚒𝚘𝚗:𝚜𝚝𝚛, 𝚍𝚒𝚜𝚝:𝚜𝚝𝚛): 指定方向(上、下、左、右)和距离(短、中、长)在元素上滑动
例: 𝚜𝚠𝚒𝚙𝚎(𝟸𝟷,``𝚞𝚙",``𝚖𝚎𝚍𝚒𝚞𝚖") 在元素“21”上向上滑动中等距离
𝚃𝚎𝚡𝚝(𝚝𝚎𝚡𝚝:𝚜𝚝𝚛): 将文本直接输入到输入字段
𝙱𝚊𝚌𝚔(): 系统级功能,回退
𝙴𝚡𝚒𝚝(): 结束流程
3.2 Exploration Phase¶
通过自主交互进行探索
通过观看演示进行探索
3.3 Deployment Phase¶
在探索阶段之后,智能体已经准备好根据其积累的经验执行复杂的任务。
代理在接受任务时遵循分步方法,每个步骤都包含对当前 UI 的屏幕截图和动态生成的文档的访问,该文档详细说明了 UI 元素的功能以及操作对当前 UI 页面的影响,提示还提供所有可用操作的详细说明。
在每个步骤中,代理首先负责提供对当前 UI 的观察,然后阐明其有关任务和当前观察的思维过程。随后,代理通过调用可用函数继续执行操作。 在每个操作之后,代理都会总结交互历史记录以及当前步骤中采取的操作。该信息是 合并到下一个提示中,为代理提供了某种形式的记忆。 这种细致的方法增强了代理行为的可靠性和可解释性,从而促进更明智的决策。
当代理确定任务已完成时,部署阶段停止