项目介绍:ScreenAgent
ScreenAgent 是一个以视觉语言大模型为驱动的计算机控制代理项目。简而言之,ScreenAgent 项目旨在创建一个能够与真实计算机屏幕交互的环境,帮助视觉语言模型代理 (VLM Agent) 完成复杂的多步任务。
核心功能
ScreenAgent 提供了一个集观察、实操以及反思为一体的自动控制流程。在这个流程中,VLM Agent 会经历以下三个阶段:
- 计划阶段:在该阶段,代理会将用户任务分解为多个子任务。
- 执行阶段:代理通过观察屏幕截图并作出具体的鼠标和键盘操作来完成子任务。
- 反思阶段:代理对执行结果进行观察和判断,决定是否继续执行、重试或调整计划直至任务完成。
这种逐步执行的方式让代理能够持续地与计算机屏幕进行交互,显示出强大的通用性,可以被应用于不同的桌面操作系统和应用程序中。
数据集
为了支持上述功能,ScreenAgent 项目构建了一个数据集,记录了在完成各种日常计算机任务时的截图和动作序列。这些任务包括文件操作、网络浏览、游戏娱乐等,涵盖了丰富的电脑使用场景。
技术亮点
- 动作空间设计:ScreenAgent 通过参考 VNC 远程桌面连接协议构建了代理的动作空间,包括基础的鼠标和键盘操作。
- 自动化控制:通过 PyQt5 程序实现,控制器不仅收集截图并发出操作指令,还能与大模型推理 API 配合工作,自动解析模型生成的控制命令。
- 多模型适配:ScreenAgent 提供了对多种大模型的推理支持,包括 GPT-4V、LLaVA-1.5、CogAgent 和专属的 ScreenAgent 模型。
安装与运行
准备控制桌面
用户需要准备被控制的桌面系统,其中安装 VNC Server(例如 TightVNC)或使用带有 GUI 的 Docker 容器。
运行控制器代码
控制器负责连接 VNC Server,维护状态机,构建完成的提示词并解析大模型的回复指令。需要安装指定依赖库,并通过配置文件设定 API 信息和模型选择。
数据集运用
项目中使用了多种数据集用于训练,涵盖了视觉定位能力、网页浏览能力等多种应用场景,用户可以根据需求选择使用部分或全部数据。
未来计划
ScreenAgent 项目的未来计划包括简化控制器设计、整合 Gym 以及提供更多复杂功能支持等。
通过这样的设计,ScreenAgent 不仅是一个极具创新的项目,更在不断提升代理在真实计算机环境中的实操能力,为未来的智能交互技术奠定基础。