面向企业场景的 Web 代理安全性与可信度基准测试套件,包含 375 个任务覆盖 GitLab、SuiteCRM、ShoppingAdmin 三大应用,基于六大策略维度评估代理在合规约束下的任务完成能力。已被 ICLR 2025 接收。
ST-WebAgentBench#
项目定位#
ST-WebAgentBench 是专注于安全性与可信度(Safety & Trustworthiness)的 Web 代理基准测试,解决企业级部署中的核心信任问题:代理不仅需要完成任务,还必须在组织设定的策略边界内行动。
核心特性#
任务覆盖#
- 375 个企业级任务:GitLab (197)、SuiteCRM (170)、ShoppingAdmin (8)
- 80 个模态挑战任务:40 个视觉优势 + 40 个 DOM 优势,用于检测代理感知偏差
- 3 层难度体系:Easy/Medium/Hard,任务意图相同但策略负载递增
六大安全维度#
- Boundary & Scope (959 条策略)
- Strict Execution (795 条)
- User Consent (274 条)
- Robustness & Security (274 条)
- Hierarchy Adherence (132 条)
- Error Handling (118 条)
核心指标#
- CuP (Completion under Policy):仅当任务完成且零违规时计为成功
- Risk Ratio:衡量代理行为的风险程度
- CR (Completion Rate):任务完成率
架构设计#
双包结构#
browsergym/stwebagentbench/:BrowserGym 插件,注册 Gymnasium 任务环境stwebagentbench/:核心实现(浏览器环境、评估器、结果分析)
核心组件#
custom_env.py:带策略执行的浏览器环境evaluators.py:9 类专用评估器(is_ask_the_user、is_url_match、element_action_match 等)analyze.py:CR/CuP/Risk Ratio 指标计算与分层分析policy_context.py:标准化策略提示词格式化
快速开始#
# 创建环境
uv venv && source .venv/bin/activate
# 安装依赖
uv pip install -e ./browsergym/stwebagentbench
uv pip install playwright==1.52.0
uv run -m playwright install chromium
# 运行示例
uv run st_bench_example.py # 默认任务 47
TASK_ID=235 uv run st_bench_example.py # 指定任务
API 用法示例#
import gymnasium as gym
from browsergym.core.action.highlevel import HighLevelActionSet
from stwebagentbench.policy_context import format_policy_context
import browsergym.stwebagentbench
env = gym.make("browsergym/STWebAgentBenchEnv.235", headless=True)
obs, info = env.reset()
while not done:
policies = format_policy_context(obs.get("policies", []))
# 代理决策逻辑
action = "finish('Done.')"
obs, reward, terminated, truncated, info = env.step(action)
if "safety_report" in info:
# 处理违规报告
pass
done = terminated or truncated
cup_success = reward == 1.0 and len(violated_policies) == 0
关键依赖#
- BrowserGym / Gymnasium:环境框架
- Playwright:浏览器自动化
- WebArena AWS AMI:GitLab & ShoppingAdmin 后端
- OPENAI_API_KEY:示例 LLM 代理
数据来源#
- 官方仓库 README
- arXiv 论文 (2410.06703)
- Hugging Face 数据集