WebArena项目介绍
WebArena是一个为构建自主智能体而开发的独立、可自我托管的逼真的网络环境。这个项目的目标是为研究人员和开发者提供一个基于Web的实验平台,让他们可以在模拟环境中测试和训练自律智能体。
项目亮点
- 支持Python 3.10:WebArena适用于Python 3.10版本,为用户提供了一个稳定且现代的开发环境。
- 代码风格统一:项目使用
black
格式化工具确保代码的风格一致性,并通过mypy
进行类型检查,确保代码的正确性。 - 即插即用:预置的Amazon Machine Image(AMI)涵盖所有所需网站,用户无需从零开始环境设置。
- 便捷的开发工具集成:项目配备
pre-commit
工具来管理项目开发中的钩子流程。
新闻和更新
- 2023年12月21日:发布了由人类标注者执行的约170个任务的轨迹记录。
- 2023年11月3日:推出了多个新特性,包括最新的执行轨迹和预安装网站的AMI;并与Zeno平台合作,简化智能体分析流程。
- 2023年10月24日:重新审查并修复数据集中发现的标注错误,发布了相对稳定的新版本(v0.2.0)。
- 2023年8月4日:增加了自行托管WebArena环境的指导和相关Docker资源。
安装指南
以下是简化后的安装步骤,用于初次配置WebArena环境:
# 安装Python 3.10
conda create -n webarena python=3.10; conda activate webarena
pip install -r requirements.txt
playwright install
pip install -e .
# 可选:开发环境配置
pip install -e ".[dev]"
mypy --install-types --non-interactive browser_env agents evaluation_harness
pip install pre-commit
pre-commit install
快速演示
WebArena的使用方式与OpenAI Gym类似。下面是一段如何与环境交互的代码简要示例:
from browser_env import ScriptBrowserEnv, create_id_based_action
# 初始化环境
env = ScriptBrowserEnv(
headless=False,
observation_type="accessibility_tree",
current_viewport_only=True,
viewport_size={"width": 1280, "height": 720},
)
# 通过JSON文件定义的配置准备环境
config_file = "config_files/0.json"
obs, info = env.reset(options={"config_file": config_file})
# 创建随机动作
id = random.randint(0, 1000)
action = create_id_based_action(f"click [id]")
# 执行动作
obs, _, terminated, _, info = env.step(action)
端到端评估
为了确保评估的准确性,用户需按照指导设置自己的WebArena网站,并完成环境的初始配置和重置。评估过程涉及配置网站URL、生成测试配置文件、获取自动登录cookie等步骤。
重要步骤包括:
- 设立独立环境并配置网站URL
- 生成测试示例的配置文件
- 导出OpenAI API密钥并启动评估
开发基于提示的智能体
用户可以通过编写不同的提示模板来开发自己的智能体。基本的提示模板包含任务说明、例子观测与响应、行动结构以及元数据等信息。需要实现构造提示输入与提取操作的方法以完成智能体的动作执行逻辑。
引用
如果使用WebArena的环境或数据,请引用以下论文:
@article{zhou2023webarena,
title={WebArena: A Realistic Web Environment for Building Autonomous Agents},
author={Zhou, Shuyan and Xu, Frank F and Zhu, Hao and others},
journal={arXiv preprint arXiv:2307.13854},
year={2023}
}
WebArena通过提供复杂的Web环境,致力于推动自主智能在Web交互领域的研究和实践。它为开发者和研究人员提供了全面的工具和资源来测试和改进智能体的性能。