Mobile-Agent框架解读
- 项目地址 https://github.com/X-PLUG/MobileAgent
- Mobile-Agent-V1
- 单智能体
- 纯视觉方案,即模拟人手对手机UI的操作,而不是使用系统数据(比如应用的开放API、爬虫爬到的信息)
- 可以在多个应用之间操作;基于GPT-4o,实现了感知、规划、反思;无需训练,即插即用
- 面临的问题:多命令、图文交错增加智能体的任务追踪难度
- Mobile-Agent-V2
-
能拆解复杂指令,任务追踪更有效
-
多智能体架构
- Planning Agent,根据用户总指令和已完成指令,做指令规划
- Decision Agent,基于Planning Agent的输出和当前的界面图片,进行当前的操作,然后把操作存进memory
- Reflection Agent,判断Decision Agent的这一步执行是否正确,如果正确往下继续,如果失败重新决策
-
部署
- https://github.com/X-PLUG/MobileAgent/blob/main/Mobile-Agent-v2/README_zh.md
- local调用图标描述模型需要12G显存;如果不能local,可以用api
- “add_info”中可添加操作知识,来更准确地运行
- 进一步提高移动设备的效率,可将“reflection_Switch”和“memory_switch”设置为“False”。
- “reflection_switch”用于添加“反思智能体”,可能会导致操作陷入死周期;可以将操作知识添加到“add_info”中来避免它
- “memory_switch”用于将“内存单元”添加到该过程中,如果不需要后续操作不使用之前屏幕中的信息,可以关闭
-
代码解读
- run.py
- open app:有的手机点图标才能打开app,点名字打不开,所以点击名字上方50px处;模型自己搜索app名字然后打开,区别于“Tap”需要提供坐标
- swipe:滑动,需要提供起点和终点的坐标
- type:adb键盘要安装且成功触发,type动作才会被加入行动空间,否则会收到需要激活键盘的提示
- back、home:一般是做错了反思后的执行动作
- stop:模型认为自己执行完了所有动作后会停下
- reflection:保存上一次的屏幕信息,重做屏幕识别(键盘,sam,ocr),对比操作前后的屏幕
- A:操作正确。操作历史、思考、对操作的总结会保存进history,作为正确的轨迹;接着进行planning
- B:进入了错误页面
- C:无效操作,操作前后页面没有变化。不会被放进历史操作,也会被后面的操作知晓这样做有错误
- 控制模块,拓展操作空间时会用到
- prompt.py 预先设置的操作,可添加新操作
- controller.py 所有操作的Android Debug Bridge(ADB)形式,可帮助省token或加锁
- icon_localization.py ocr,相对成熟,优化空间不大
- text_localization.py sam,相对成熟,优化空间不大
- run.py
-
优化改进策略
-
1.动作空间拓展
-
2.修改prompt
- 在add-info里给出具体操作的提示
- 在add-info里给出具体操作的提示
-
3.针对特定应用适配prompt
- 在background里给出特定app中agent的角色设定
- 在background里给出特定app中agent的角色设定
-
4.工具调用拓展
- RAG,可以和add-info结合
- 框架使用通用OCR和SAM,可以使用针对UI检测优化过的工具
-
5.更好地解决广告和弹窗
- 模型决策需要的时间比弹窗持续的时间长,会导致执行错误的操作
- 如何准确点击叉号
PC-Agent框架解读
-
基于Mobile-Agent-V2框架,然后对PC做了适配
- 将Android Debug Bridge(ADB)替换为PC端自动化执行工具Pyautogui、Pyperclip,支持Windows和MacOS
-
视觉感知模块匹配
- PC屏幕信息更多,先做2x2切分,再调用ocr+sam工具
- PC屏幕信息更多,先做2x2切分,再调用ocr+sam工具
-
动作空间适配与快捷键的高效利用
- 适配鼠标点击动作和键盘输入动作(文字、快捷键)
- 还没有适配特定位置的滑动、拖拽
-
优化反思Agent,辅助它决策
-
Reflection Agent的输出也会交给Action Agent
-
可以在reflection_thought里做修改
"ANY"Mobile-Agent应用挑战赛-赛事解读
-
探索Mobile-Agent框架在不同应用场景下的应用与发展
-
赛题一 设计并实现特定应用场景的手机端智能体
-
赛题二 设计并实现面向其他终端(PC、iPad、车载等)设备的智能体
-
要求
- 场景开放
- 尽量保留原有架构,可修改、添加提示词、调用其他工具
- 提升推理速度,比如有时延要求的游戏场景
-
提交内容
-
评审标准