一、前言
- https://github.com/bytedance/web-bench
- https://arxiv.org/abs/2505.07473
对于web工程的benchmark
二、核心逻辑
2.1 数据
Web-Bench 数据集包含 50 个项目,每个项目包含 20 个具有连续依赖关系的任务
连续依赖关系,就是后一个task依赖于上一个task(time series task),简单example:
task1: 帮我写一个付款界面
task2: 这个付款界面帮忙改下分布,和颜色
项目类型涵盖游戏、实用程序、图表、绘图板、调查、数据表、博客网站、文档网站
主流的前端框架和标准覆盖
2.2 eval workflow
这里图画的很清楚,不赘述
2.3 内置的Web-Agent
代码webAgent:https://github.com/bytedance/web-bench/tree/main/tools/bench-agent
- 构建提示:SP、任务描述、文件和错误消息。如果组合输入超出上下文长度,则会被截断。
- 请求 LLM:支持多种LLM路由,从模型提供方获取 temp、maxToken、contextLength 等参数, 进行推理Agent Step。
- 提取文件:解析 LLM 的响应以提取生成的文件。
2.4 评测方式
workflow中有ut,如果过不了则再一次attempt,pass@n,为第n次task成功
三、结果leaderboard
四、运行
4.1 配置
4.1.1 local agent
通过配置model url走内部定义好的web agent来进行评测模型的能力
这里key和model是一一对应的, models里面有更多的配置
{
"title": "gpt-4o", // 显示模型
"provider": "openai", // 走的openai的provider
"model": "gpt-4o", // 传入模型name
"apiBase": "https://api.openai.com/v1/", // base url
"apiKey": "{{OPENAI_API_KEY}}" // api key
},
4.1.2 自定义agent
需要将自己的agent输入输出做成一个实例,通过agent url访问
需要这样配置即可:
{
"agentMode": "http",
"agentEndPoint": "http://example.com/path/to/agent"
}
4.2 启动docker评测
docker build -f ./start.dockerfile -t web-bench .
docker run web-bench
整个项目是web, docker中会安装很多前端依赖
# 安装指定版本工具
RUN npm install -g npm@11.3.0 && \
npm i -g pnpm@9.12.0 @microsoft/rush@5.140.0
# 在rush update前清理可能的旧文件
RUN rm -rf common/temp/*
RUN npm i playwright@1.49.1 -g
RUN npx playwright install
RUN playwright install-deps