OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  MiniWoB++ — 用于网页智能体训练与评测的经典环境

MiniWoB++ — 用于网页智能体训练与评测的经典环境

 
  forge ·  2026-02-17 20:02:38 · 6 次点击  · 0 条评论  

pre-commit
Code style: black

MiniWoB++(Mini World of Bits++)库包含 100 多个网页交互环境,并提供了用于以编程方式与这些环境交互的 JavaScript 和 Python 接口。Python 接口遵循 Gymnasium API,并使用 Selenium WebDriver 在网页浏览器上执行操作。

MiniWoB++ 是 OpenAI MiniWoB 基准测试的扩展,在论文 Reinforcement Learning on Web Interfaces using Workflow-Guided Exploration 中首次提出。

文档网站位于 miniwob.farama.org。目前 MiniWoB++ 正在持续开发中,以期达到 Farama 成熟项目标准,并将在达到此标准后获得长期维护。更多详情请参阅 项目路线图。如果您想提供帮助,可以加入我们的 Discord 服务器:https://discord.gg/PfR7a79FpQ

安装

MiniWoB++ 支持 Linux 和 macOS 上的 Python 3.8+。

安装 MiniWoB++ 库

要安装 MiniWoB++ 库,请使用 pip install miniwob

安装 Chrome/Chromium 和 ChromeDriver

我们强烈建议使用 Chrome 或 Chromium 作为网页浏览器,因为其他浏览器可能会以不同方式渲染环境。

MiniWoB++ 的 Python 接口使用 Selenium,它通过 WebDriver API 与浏览器交互。请按照 安装驱动程序的说明方法 之一来安装 ChromeDriver。最简单的方法是 下载 匹配版本的 ChromeDriver,解压缩,然后将包含 chromedriver 可执行文件的目录添加到 PATH 环境变量中:

export PATH=$PATH:/path/to/chromedriver

对于 Chromium,驱动程序也可能通过软件包提供;例如,在 Debian/Ubuntu 中:

sudo apt install chromium-driver

使用示例

以下代码在 click-test-2 环境中执行一个确定性操作。

import time
import gymnasium
import miniwob
from miniwob.action import ActionTypes

gymnasium.register_envs(miniwob)

env = gymnasium.make('miniwob/click-test-2-v1', render_mode='human')

# 将代码包装在 try-finally 中以确保正确清理。
try:
  # 开始一个新回合。
  obs, info = env.reset()
  assert obs["utterance"] == "Click button ONE."
  assert obs["fields"] == (("target", "ONE"),)
  time.sleep(2)       # 仅在此处让您查看环境。

  # 查找文本为 "ONE" 的 HTML 元素。
  for element in obs["dom_elements"]:
    if element["text"] == "ONE":
      break

  # 点击该元素。
  action = env.unwrapped.create_action(ActionTypes.CLICK_ELEMENT, ref=element["ref"])
  obs, reward, terminated, truncated, info = env.step(action)

  # 检查操作是否正确。
  print(reward)      # 应该大约为 0.8,因为已经过去了 2 秒。
  assert terminated is True
  time.sleep(2)

finally:
  env.close()

更多信息请参阅 文档

环境列表

MiniWoB++ 库中包含的环境列表可以在 文档 中找到。所有环境共享相同的 观察空间,而 动作空间 可以在环境构建时进行配置。

引用

如需引用此项目,请使用:

@inproceedings{liu2018reinforcement,
 author = {Evan Zheran Liu and Kelvin Guu and Panupong Pasupat and Tianlin Shi and Percy Liang},
 title = {Reinforcement Learning on Web Interfaces using Workflow-Guided Exploration},
 booktitle = {International Conference on Learning Representations ({ICLR})},
 url = {https://arxiv.org/abs/1802.08802},
 year = {2018},
}
6 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 16 ms
Developed with Cursor