AgentStudio :联合国际顶尖高校 昆仑万维开源智能体研发工具包,从0到1,轻松构建Agent

技术

Aitrainee | 公众号:AI进修生

🌟AgentStudio 旨在为研究人员和开发者提供一个覆盖智能体完整开发流程的综合性平台 ,让开发者们能够轻松、高效、灵活地构建 专属数字智能体。

picture.image

Github:https://github.com/SkyworkAI/agent-studio/

Hi,这里是Aitrainee,欢迎阅读本期新文章。

今天要介绍的是:AgentStudio。想象一下,能够创建一个可以在任何设备上运行任何软件的智能体助手,这是AI领域的一大挑战,对吧?

其实,实现这个目标的难点有两个:一是缺乏 现实环境中构建这些虚拟助手的基础设施 ,二是很难 在真实世界中测试 这些助手的基本能力。为了解决这些问题,AgentStudio这个在线工具包出现了,它能模拟真实的多模式环境,帮助你完成从环境设置到数据收集、代理评估和可视化的整个过程。

AgentStudio所提供的工具涵盖数字智能体开发的全部流程,包括智能体观察与动作空间、跨平台的在线环境支持、交互式数据收集与评估、可扩展的任务套件、以及相应的图形界面。此外,研究团队还评估了多个 多模态大模型 完成数字世界任务的能力。

AgentStudio的观察和操作空间非常通用,支持函数调用和人机界面操作。这意味着无论你是做编程操作还是图形界面操作,AgentStudio都能应对自如。而且,它的图形用户界面让你可以在真实环境中高效地开发数据集和基准。

为了让大家更直观地了解AgentStudio的强大功能,昆仑万维团队还创建了一个视觉基础数据集和一个真实世界的基准套件,这些都是通过图形界面制作的。

项目页面 上可访问论文、排行榜、基准测试套件和详细

文档

picture.image

https://skyworkai.github.io/agent-studio/

AgentStudio 环境概览

picture.image

这是 AgentStudio 环境和工具包的文档。有关基准测试套件和排行榜的更多信息,请参阅我们的项目页面。

AgentStudio 环境和工具包涵盖了构建可与数字世界中的一切交互的计算机代理的整个生命周期。在这里,我们开源了环境实现、基准套件、数据收集管道和图形界面的测试版,以促进对未来通用计算机代理的研究。

1. 环境 (Env)

  • • 跨设备 (Cross-Device):AgentStudio 可以在不同的设备上运行,包括 Docker 容器、物理机器和虚拟机。这意味着无论你是在云端还是本地运行代理,AgentStudio 都能适应。
  • • 跨操作系统 (Cross-OS):支持多种操作系统,如 Linux、MacOS 和 Windows。无论你使用哪个系统,AgentStudio 都能工作。

2. 代理 (Agent)

  • • 通用行动空间 (Universal Action Space):代理可以使用键盘、鼠标和 API 工具进行操作。这就像人类使用电脑的方式,代理可以模拟这些操作。
  • • 多模态观察空间 (Multimodal Observation Space):代理可以通过截图、录屏和代码输出观察环境。这类似于人类通过眼睛和日志查看屏幕上的内容。
  • • 开放性 (Open-Endedness):支持工具的创建和检索,这意味着代理可以学习并使用新的工具来完成任务。

3. 数据 (Data)

  • • GUI 定位 (GUI Grounding):收集用户界面上的数据,帮助代理理解界面布局。
  • 人类轨迹 (Human Trajectories) 和 代理轨迹 (Agent Trajectories):记录人类和代理在界面上的操作路径,为代理的学习提供数据。
  • 人类/AI 反馈 (Human/AI Feedback)视频演示 (Video Demonstration):提供反馈和示范,帮助代理改进操作。

4. 评估 (Eval)

  • • 基本代理能力 (Fundamental Agent Abilities):评估代理的自我评估、自我纠正和准确定位能力。
  • • 开放域任务套件 (Open-Domain Task Suite):评估代理在低级指令执行和复杂任务组合上的能力。

5. 界面 (Interface)

  • • 互动注释管道 (Interactive Annotation Pipeline):允许用户实时标注数据,帮助代理学习。
  • • VNC 远程桌面 (VNC Remote Desktop):支持远程操作和测试。
  • 野外测试 (In-the-Wild Testing) 和 自动评估 (Auto-Evaluation):在真实环境中测试代理,并自动评估其表现。
  • • 安全检查 (Safety Check):确保代理操作的安全性。

图表 2: Web 浏览器环境与 AgentStudio 环境对比

picture.image

AgentStudio 提供统一的观察和行动空间,与人类与计算机的交互方式保持一致,允许对任何人类执行的任务进行代理评估和数据收集。此功能大大扩展了潜在的任务空间。因此,AgentStudio 可以促进跨各种实际用例的代理的开发和基准测试。相比之下,大多数以前的环境仅针对特定领域(例如 Web 操作或 API 调用)定制观察和行动空间。

Web 浏览器环境

  • • 基于网页的观察 (Web-Based Observations):代理可以观察 HTML/DOM 文档结构、可访问性树和截图。
  • • 基于网页的操作 (Web-Based Actions):代理可以执行元素操作(如点击按钮)、标签操作(如切换标签)和 URL 操作(如导航到新页面)。

AgentStudio 环境

  • • 通用观察 (Universal Observations):代理可以通过屏幕录制、截图和代码/API/工具输出观察环境。这类似于通过录像和日志查看人类的操作。
  • • 通用行动 (Universal Actions):代理可以使用人机接口、API/函数调用和工具创建与使用进行操作。这相当于模拟人类使用电脑的所有方式。

通过这些图表,我们可以看出 AgentStudio 如何通过统一的观察和行动空间,模拟人类与电脑的互动方式,从而促进通用计算机代理的发展和测试。它不仅扩展了任务的范围,还提高了代理在实际应用场景中的适用性。

连接自定义模型

AgentStudio平台允许连接到用户自己的模型。每个模型都是一个继承自 BaseModel 类。可以通过创建继承自 BaseModel 的新模型类来集成自己的模型:

picture.image

创建自定义代理

对AgentStudio平台现有的代理不满意?创建你自己的代理!

picture.image

记录数据集、添加任务等

picture.image

我们来一步步解释如何在 AgentStudio 中记录一个任务示范。这里展示了一个如何打开左下角菜单中的“偏好设置”的示范过程。下面我们逐步讲解每一步的操作和图表内容。

图表解释

导入工具 (Import Tools)

  • • 你需要先导入必要的工具,这里展示了三个图标:键盘、鼠标和命令行工具。你可以通过代码导入这些工具来控制鼠标和键盘操作。

定位光标 (Locate Cursor)

  • • 通过代码 from playground.env.desktop_env import Mousemouse = Mouse() 导入并初始化鼠标工具。
  • • 首先,你需要将鼠标定位到屏幕左下角菜单的位置。代码示例为 mouse.click(18, 755),其中 (18, 755) 是屏幕上的坐标位置。
  • • 右侧的窗口展示了任务指令的轨迹以及当前的光标位置。

步骤操作 (Step Action)

  • • 点击左下角菜单后,会弹出一个菜单列表。你需要进一步定位光标到“偏好设置”选项上。此时,光标位置是 (46, 642)
  • • 对应的代码是 mouse.click(46, 642)

步骤操作并保存 (Step Action & Save)

  • • 点击“偏好设置”后,打开相应的设置窗口。
  • • 最后,点击保存按钮,将此任务示范保存下来。

记录人类示范的过程

开始任务

  • • 打开 AgentStudio,并选择你要记录的任务。在这个例子中,任务是“打开左下角菜单中的偏好设置”。

定位鼠标位置

  • • 使用鼠标工具,定位光标到左下角菜单的位置,并点击打开菜单。

定位偏好设置选项

  • • 在菜单打开后,继续定位光标到“偏好设置”选项,并点击打开。

保存任务示范

  • • 完成所有步骤后,点击保存按钮,保存这个任务的操作轨迹和示范。

关键点总结

  • 工具导入和初始化 :通过代码导入和初始化需要的操作工具(如鼠标和键盘)。
  • 光标定位和点击操作 :使用鼠标工具定位光标到特定坐标并执行点击操作。
  • 任务记录和保存 :记录整个操作过程,并将其保存为任务示范,供以后使用和分析。

通过这个例子,我们可以看到如何在 AgentStudio 中记录一个任务示范,模拟人类的操作路径,为代理的学习和测试提供数据支持。

下面提供官方的 文档介绍、相关资源、部署教程 等,进一步支撑你的行动,以提升本文的帮助力。

环境和工具包快速入门

使用前注意事项

工具包可能会执行不可逆的操作,如删除文件、创建文件、运行命令和删除 Google 日历事件。请确保您在安全环境中使用工具包,例如虚拟机,或备份数据。一些任务需要提供 API 密钥;请使用无重要数据的账户。

环境设置

安装必要的依赖项:


      
      
          

        apt
        -
        get install gnome
        -
        screenshot xclip xdotool  
        # 对于 Ubuntu 22.04
          

        conda create 
        --
        name agent
        -
        studio python
        =
        3.11
         
        -
        y
          

        conda activate agent
        -
        studio
          

        pip install 
        -
        r requirements
        .
        txt
          

        pip install 
        -
        e 
        .
      
    

API 密钥配置

有关详细说明,请参阅 API 设置文档。

Docker 设置(可选)

对于需要在 Docker 容器中运行 GUI 的任务,构建 Docker 镜像:


      
      
          

        docker build 
        -
        f dockerfiles
        /
        Dockerfile
        .
        ubuntu
        .
        amd64 
        .
         
        -
        t agent
        -
        studio
        :
        latest
      
    

自定义任务评估

修改 config.py 以设置环境:

  • headless:GUI 模式设为 False,CLI 模式设为 True
  • remote:实验在 Docker 或远程机器上运行时设为 True,否则在本地运行。
  • task_config_paths:任务配置文件的路径。

本地无头模式

设置 headless = Trueremote = False。这适用于不需要 GUI 的任务(如使用 Google API)。开始基准测试:


      
      
          

        python run
        .
        py 
        --
        mode 
        eval
      
    

远程 GUI 模式

设置 headless = Falseremote = True,用于视觉任务的评估。通过 VNC 远程桌面连接远程机器或使用 Docker。

运行 Docker(可选)


      
      
          

        docker run 
        -
        d 
        -
        e RESOLUTION
        =
        1024x768
         
        -
        p 
        5900
        :
        5900
         
        -
        p 
        8000
        :
        8000
         
        -
        e VNC\_PASSWORD
        =
        123456
         
        -
        v 
        /
        dev
        /
        shm
        :/
        dev
        /
        shm 
        -
        v 
        
 $
 {
 PWD
 }
 
        /
        agent\_studio
        /
        config
        /:/
        home
        /
        ubuntu
        /
        agent\_studio
        /
        agent\_studio
        /
        config 
        -
        v 
        
 $
 {
 PWD
 }
 
        /
        data
        :/
        home
        /
        ubuntu
        /
        agent\_studio
        /
        data
        :
        ro agent
        -
        studio
        :
        latest
      
    

开始基准测试:


      
      
          

        python run
        .
        py 
        --
        mode 
        eval
      
    

注释工具

我们提供了一个简单的 GUI 注释工具,用于数据标注。详细说明请参阅注释文档。

picture.image

picture.image

论文链接: https://arxiv.org/abs/2403.17918

项目主页与文档:https://skyworkai.github.io/agent-studio/

开源代码:https://github.com/SkyworkAI/agent-studio

Leaderboard:https://huggingface.co/spaces/Skywork/agent-studio-leaderboard

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

picture.image

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎抖音同款点播转码最佳实践
王继成|火山引擎点播转码系统资深架构师
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论