WebArena: A Realistic Web Environment for Building Autonomous Agents

Paper name

WebArena: A Realistic Web Environment for Building Autonomous Agents

Paper Reading Note

Paper URL: http://webarena.dev/static/paper.pdf

Project URL: http://webarena.dev/

Code URL: https://github.com/web-arena-x/webarena

TL;DR

  • 2023 年 CMU 出的文章,提出一个真实和可复现的 Web 测试环境 WebArena,旨在促进能够执行任务的自主代理(Autonomous agents)的开发

Introduction

背景

  • 自主代理(Autonomous agents)具备通过人类自然语言指令执行日常任务的能力,有可能显著增强人类的能力,比如效率的提升。然而,要充分发挥这些自主代理的能力,至关重要的是在一个真实可复现的环境中理解它们的行为。这将衡量代理在真实的人们关心的任务上的能力,并使它们能够在公正和一致的方式下进行评估
  • 当前的自主代理仿真环境往往过度简化现实世界的情况,这就导致现有仿真环境中的功能只是真实世界中的一小部分,任务的复杂度很低

本文方案

  • 本文提出 WebArena,一个真实和可复现的网络环境,旨在促进能够执行任务的自主代理的开发,整体框架如下图所示
    WebArena: A Realistic Web Environment for Building Autonomous Agents_第1张图片
    • 环境包括四个完全操作、自托管的 Web 应用程序,每个应用程序代表互联网上流行的独特领域:
      • 在线购物
      • 讨论论坛
      • 协作开发
      • 商业内容管理
    • 结合了几个使用程序工具,比如地图、计算器和缓存器
    • 补充了大量文档和知识库,比如英文 wiki 等通用知识和集成工具开发手册等专业知识
    • 环境通过带有 gym API 的 docker 进行托管,保证可用性和可重复性
  • 同步提出了一个测试数据集,包含 812 个基于网络的测试任务
    • 每个任务都是 high-level 自然语言表达的,模拟人类通常使用的方式,上图就展示了两个测试样例
    • 关注评测的功能正确性,比如对于下面的测例,会直接评估 gitlab repo 中代理生成的内容是否符合预期(下图任务是规划一个路线,以最小的行驶距离从 CMU 开始访问所有匹兹堡的艺术博物馆,并将路径的顺序记录到一个 gitlab repo 中)
      WebArena: A Realistic Web Environment for Building Autonomous Agents_第2张图片
      可以看到 Agent 为了完成这个任务需要首先通过搜索维基百科来找到位于匹兹堡的所有艺术博物馆,然后需要利用地图工具确认每个博物馆的位置,基于收集到的信息来优化行程。最后 Agent 还需要在一个合适的 gitlab repo 的 readme 中更新设计的行程。

Methods

WebArena 环境实现

网站选择

  • 为了决定使用哪些类别的网站,我们首先对大约200个作者实际的浏览器历史记录进行了分析。每位作者都深入研究了他们的浏览历史,总结了特定部分浏览会话的目标。基于此,我们将访问的网站分类为抽象类别。然后,我们确定了四个最重要的类别,并根据此分析实现了每个类别的一个实例:
    • (1)支持在线购物活动的电子商务平台(例如Amazon、eBay)
    • (2)用于意见交流的社交论坛平台(例如Reddit、StackExchange)
    • (3)用于软件开发的协作开发平台(例如GitLab)
    • (4)用于管理数字内容的内容管理系统(CMS)(例如在线商店管理)
  • 除了这些平台,我们还选择了三种在基于Web的任务中经常使用的实用工具:
    • (1)用于导航和搜索有关兴趣点(POIs)的信息的地图,例如机构或位置
    • (2)计算器
    • (3)便签本用于做笔记
  • 鉴于信息查找和知识获取在基于Web的任务中的关键作用,我们还将各种知识资源纳入了我们的环境。这些资源从一般信息存储库,例如英文维基百科,到更专门的知识库,例如网站用户手册,都有涵盖。

观察空间

  • 设计了观察空间,以粗略模拟Web浏览器体验:一个Web页面的URL,打开的标签以及焦点标签的Web页面内容
    • WebArena是第一个考虑多标签Web任务的Web环境,以促进工具使用,直接在标签之间进行比较和引用以及其他功能。与在单个标签中管理所有内容相比,多标签功能更真实地复制了人类的Web浏览习惯
  • 提供了灵活的配置选项来以多种模式呈现页面内容:(如下图所示):
    • (1)原始Web页面HTML,由文档对象模型(DOM)树组成
    • (2)屏幕截图,作为当前Web页面的RGB数组表示
    • (3)Web页面的可访问性树(可访问性树是DOM树的子集,其中包含有关显示Web页面内容的相关和有用元素。每个元素都表示为其角色(例如,链接),其文本内容和其属性(例如,是否可聚焦)。可访问性树在保留Web页面的结构化信息的同时比DOM表示更紧凑。)
      WebArena: A Realistic Web Environment for Building Autonomous Agents_第3张图片
  • 提供一个选项,将所有模式下的内容限制为视窗内的内容。这确保观察结果可以输入到具有有限上下文长度的基于文本的模型或具有图像大小或分辨率要求的基于图像的模型中

动作空间

  • 设计了一个复合动作空间,模拟了Web页面上可用的键盘和鼠标操作
    • 第一类包括基本操作,例如点击、悬停、键入和按键组合
    • 第二类包括标签页管理动作,如打开、关闭和在标签页之间切换
    • 第三类包括URL导航动作,例如访问特定的URL或在浏览历史中前进和后退
      WebArena: A Realistic Web Environment for Building Autonomous Agents_第4张图片

用户角色模拟

  • 同一网站的用户由于不同的角色、权限和交互历史通常会有不同的体验。例如,在电子商务内容管理系统中,店主可能拥有在所有内容上的完全读写权限,而员工可能只被授予对产品的写权限,但没有访问客户数据的权限。我们旨在通过在每个平台上生成独特的用户配置文件来模拟这种情况
  • 在购物网站上,我们创建了一个客户配置文件,该配置文件在两年内完成了35多个订单。在GitLab上,我们选择了一个维护多个热门开源项目并有许多合并请求和问题的用户配置文件。该用户还私下管理了几个个人项目。在Reddit上,我们选择了一个积极参与讨论并发布了许多帖子和评论的用户配置文件。最后,在我们的电子商务内容管理系统上,我们设置了一个店主的用户配置文件,该店主对系统的所有内容具有完全的读写访问权限。(这 Agent 的起始权限和地位挺高啊…)
  • 所有用户都会自动使用预缓存的Cookie登录到他们的帐户。据我们所知,这是第一个公开可用的代理程序评估环境,实现了这样的特性。现有的文献通常假设用户角色是普遍相同的。

基于 Web 的测试任务构建

  • 测试基准包含 812 个测试样例,用于将高层自然语言指令与WebArena中的交互关联起来。每个示例都附带有一个指标,用于评估任务执行的功能正确性。

通过高层自然语言控制代理

  • WebArena环境表示为E,具有状态空间S,动作空间A(§2.3)和观察空间O(§2.2)。转移函数T:S × A是确定性的,并由环境中每个网站的底层实现定义。通过自然语言意图描述的任务可以被构建为部分可观察的马尔可夫决策过程(POMDP):在每个时间步t,代理发出一个动作at,给定部分观察ot。因此,该动作导致一个新的状态st+1及其对应的观察ot+1。我们提出了一个奖励函数r(a, s)来衡量任务执行的成功程度,其中a代表动作序列,s表示所有中间状态。该奖励函数评估状态转换是否符合意图的预期。例如,对于一个下订单的意图,它会验证是否已经下了订单。此外,它还评估代理动作的准确性,例如检查预测答案的正确性。

模仿人类的意图收集

  • 要求标注员根据以下标准制定意图:

    • (1) 意图应该是抽象和高层次的,意味着任务不能仅通过一两个动作就能完成。例如,与其说“点击科学子论坛”,我们鼓励标注员提出更复杂的任务,比如“在科学子论坛上发布一个问候信息”,这涉及到多个动作
    • (2) 意图应该是有创意的。常见的任务,比如创建账户,很容易想到。我们鼓励标注员添加约束条件(例如,“创建一个Reddit账户,与我的GitLab账户完全相同”),使意图更具独特性
    • (3) 意图应该以模板形式表述,将可替换的元素作为变量。标注员还负责为每个变量开发几个实例。例如,意图“创建一个Reddit账户,与我的GitLab账户完全相同”可以转换为“创建一个{{site1}}账户,与我的{{site2}}账户完全相同”,并具有实例化项,如“{site1: Reddit, site2: GitLab}”和“{site1: GitLab, site2: OneStopShopping}”。值得注意的是,从同一个模板派生出的任务可能具有不同的执行轨迹。相似性主要存在于高层语义而不是特定的实现。
  • 意图分布如下图所示,主要包含三个类别:

    • (1)信息查找任务:这些任务期望获得文本回答。值得注意的是,WebArena中的信息查找任务通常需要在多个页面之间导航或关注用户中心内容。这使得它们与开放领域的问答任务有所不同,后者侧重于使用简单的检索步骤查询一般知识。例如,为了回答“我上次购买洗发水是什么时候”,代理程序必须遍历用户的购买历史,检查每个订单的详细信息,以识别最近一次购买洗发水的时间
    • (2)网站导航任务:这个类别由需要使用各种交互元素(如搜索功能和链接)浏览网页的任务组成。其目标通常是定位特定信息或导航到网站的特定部分
    • (3)内容和配置操作任务:这个类别包含需要在Web环境中创建、修改或配置内容或设置的任务。这包括调整设置、管理账户、进行在线交易、生成新的Web内容以及修改现有内容。示例范围从更新社交媒体状态或README文件到进行在线购买和配置隐私设置
      WebArena: A Realistic Web Environment for Building Autonomous Agents_第5张图片

评估标注

  • 评估信息查找任务
    • 如下表所示,为每个意图提供了一个注释的答案,分为 exact_match、must_include 和 fuzzy_match(使用语言模型 gpt-3.5-turbo-0613 来评估) 来进行匹配,fuzzy_match函数可以灵活地将时间“2h58min”与“2小时58分钟”、“2:58”等不同形式相匹配
  • 评评估网站导航和内容与配置任务
    • 检查执行轨迹中的中间状态s,以确定结果是否与预期结果一致。比如下表中第 5 个任务,先检查评估通过检查帖子的URL来验证帖子是否被正确发布在“nyc”子论坛中,并通过检查帖子内容来验证是否包含所请求的内容
      WebArena: A Realistic Web Environment for Building Autonomous Agents_第6张图片

Baseline Web Agents

  • 设计了两种基准LLM-prompt web代理,其中输入观察和预测动作都是文本形式:
    • (1) 直接代理 (Direct Agent):代理接受观察作为输入,并直接预测下一个动作
    • (2) 推理代理 (Reasoning Agent):代理首先以文本形式执行一系列推理步骤,然后发出下一个动作
  • prompt 设计
    • 首先详细阐述了基于Web的任务的定义
    • 然后提供了一个完整的可用动作列表及其解释
    • 包含了一些有关避免常见失败的注意事项,在我们对简单示例进行初始实验时观察到这些失败。例如,我们发现代理程序往往会生成一系列动作,而不是逐个动作执行,因此提供了"您应该一次只执行一个动作"的提示
    • 在提示中提供了两个观察 → 动作对的演示
  • 详细配置
    • 尝试了gpt-3.5-turbo-0613和gpt-4-0613,温度为1.0,top-p参数为0.9
    • 状态转换的最大次数设置为30
    • 如果在相同的观察上重复执行相同的动作超过三次,或者代理程序连续生成三个无效动作,我们将停止执行(这些情况通常表示执行失败的可能性很高)

Experiments

主要结论

  • 使用基于 GPT4 的 reasoning agent 最多也只能达到 10.63% 的端到端成功率。有趣的是这里基于 GPT3.5 的实验来看,增加推理步骤的 reasoning agent 精度比 direct agent 高不了太多。这些结果突显了在跨越长时间范围内执行任务的固有挑战和复杂性,尤其是在WebArena这样的现实环境中
    WebArena: A Realistic Web Environment for Building Autonomous Agents_第7张图片

从相同模板执行任务的一致性

  • 可视化了至少有一个成功完成的模板的任务成功率。在这41个模板中,GPT-4代理程序只在一个模板上实现了100%的任务成功率,而GPT-3.5代理程序在任何模板上都没有完成所有任务。在几种情况下,代理程序只能完成其他任务变体中的一个。性能差异出现的原因有两个。首先,即使在同一个模板内,任务的复杂性也可能不同。例如,代理程序可以正确执行"Fork metaseq",但在"Fork all repos from Facebook"上却失败了。后者需要更多的重复操作,因此增加了其复杂性。其次,由于我们在实验中使用了较高的温度,预测可能存在较大的变化。然而,这些结果表明目前代理程序在处理复杂任务时的不稳定性。
    WebArena: A Realistic Web Environment for Building Autonomous Agents_第8张图片

错误分析

  • 错误case1:在大约54.9%的可行任务中(428个任务)中,观察到GPT-4代理程序错误地将其标记为不可能完成。例如,如下图左侧所示,为了实现"Fork all repos from Facebook"的目标,代理程序首先正确执行了对Facebook的搜索。然而,由于默认的搜索结果列出了可能的以Facebook命名的项目,而代理程序需要进一步点击用户栏来找到Facebook帐户,代理程序决定停止,因为它认为"似乎没有任何与Facebook匹配的可用项目。因此,不可能从GitLab中复制任何Facebook存储库。"
  • 错误 case2:在观察解释中的失败有趣的是,虽然GPT-4代理有能力对观察结果进行总结,但偶尔会忽略更加细致的信息,比如之前输入的内容。就像下图右侧的例子中所示,[5172] StaticText 表明搜索词 “DMV area” 已经被输入过了。然而,代理忽视了这个细节,并持续地输入命令类型 [2430] [DMV area] 直到达到最大步数限制
    WebArena: A Realistic Web Environment for Building Autonomous Agents_第9张图片

Thoughts

  • 在现阶段基于 Web 来做 Agent 的测试环境感觉很合理,Web 环境中的操作可执行性强,同时可复现性也不错
  • 当前 Agent 的精度并不高,即便基于 GPT4 也只有 10.59% 的端到端完成率,可研究的方向还很多

你可能感兴趣的:(paper_reading,前端)