Webwright的SOTA战绩深度解析:如何在Online-Mind2Web拿下86.7%、Odysseys长程任务突破60.1%?
2026/8/27 16:25:37 网站建设 项目流程

Webwright的SOTA战绩深度解析:如何在Online-Mind2Web拿下86.7%、Odysseys长程任务突破60.1%?

【免费下载链接】WebwrightA simple SWE style browser agent framework that achieves SOTA results on long horizon web tasks.项目地址: https://gitcode.com/gh_mirrors/web/Webwright

Webwright 是一个极简的 SWE 风格浏览器 Agent 框架:它给大模型一个终端,让模型自己编写 Playwright 脚本、自主启动浏览器会话,端到端完成网页任务。凭借"代码即动作"的设计,这个约 1.5k 行代码的框架在 Online-Mind2Web 与 Odysseys 两大真实网站基准上取得 SOTA 成绩——整体 86.7%,长程任务 60.1%。本文带你拆解这份战绩背后的技术逻辑。

🏆 战绩速览:两个基准,两个第一

在统一的 100 步预算下,Webwright 的评测结果如下:

基准任务数Webwright 成绩对比基线提升
Online-Mind2Web(AutoEval)30086.7%(GPT-5.4)GPT-5.4 视觉基线 82.7%+4.0
Odysseys(长程任务)20060.1%(GPT-5.4,平均 76.1 步)前 SOTA:Opus 4.6 44.5%+15.6

换成 Claude Opus 4.7,Online-Mind2Web 整体为84.7%,且在 Hard 子集上更强(80.5%)。Odysseys 的长程任务对比尤为直观:

📊 Online-Mind2Web 的 86.7% 是怎么打出来的?

传统浏览器 Agent 是"看图 → 预测下一步点击坐标"的循环,误差会逐步累积。Webwright 换了一条路:让模型直接写代码操作浏览器。每一轮,模型只输出一条 shell 命令(通常是运行一段 Playwright 脚本),执行后观察返回的输出与截图,再决定下一步。

从图中可以看到三个关键点:

  • 整体 86.7%:浅蓝色"轻帽"(Step 50 vs 100)显示 82.0%,说明多给的 50 步带来了 4.7 个百分点的真实收益;
  • Hard 子集 80.5%:远超视觉基线的 56.1%——这正是"写代码"相对"点坐标"的碾压区间;
  • Easy 子集 96.2%:简单任务几乎没有失误。

代码层面的关键机制都在配置与核心循环里:

  • 系统提示与观察模板:src/webwright/config/base.yaml
  • 核心 Agent 循环(写代码 → 执行 → 观察 → 修复):src/webwright/agents/default.py
  • 完成前必须通过"自我反思"验收:src/webwright/tools/self_reflection.py

🚀 长程任务为何能突破 60.1%?

Odysseys 平均需要 76 步,是典型的长程任务。Webwright 的答案是三个字:状态化

  1. 工作区即状态,而非浏览器即状态——真正的"记忆"是本地工作区里的代码、截图和日志。浏览器随时可以丢弃重建,脚本重跑一遍即可复现现场;
  2. 脚本可重跑、可复用——多步操作(选日期、填表单)被压缩成一段程序,循环与函数让模型可以泛化到相似任务,无需重复预测同样的低层动作,长程下的错误累积因此大幅减少;
  3. 历史压缩机制——每 N 步自动把对话压缩成摘要(见 src/webwright/agents/default.py 的_compact_history),上下文不会爆炸。

💰 附赠福利:Token 效率对比工具

同样的任务,Webwright 本地浏览器模式总共消耗约42.4 万token,而某通用编码助手的同类轨迹高达329 万——差距接近 8 倍。项目内置了一个轨迹对比查看器,可上传raw_responses.jsonltrajectory.json逐步对照不同框架的思考、命令与 token 消耗:

前端源码在 assets/compare_trajectory/app.js,本地起个静态服务器即可使用。

🗺️ 极简架构:1.5k 行里都有什么

模块职责
src/webwright/run/cli.pyCLI 入口(约 150 行)
src/webwright/agents/default.py核心 Agent 循环(约 450 行)
src/webwright/environments/local_workspace.py本地终端 + Playwright 浏览器环境
src/webwright/models/OpenAI / Anthropic / OpenRouter 可插拔后端
src/webwright/tools/image_qa.py截图问答自检工具
skills/webwright/SKILL.md以插件形式接入 Claude Code / Codex 的技能定义

没有多 Agent 编排、没有图引擎、没有插件层——依赖只有httpxpydanticplaywrighttyper,完整清单见 pyproject.toml。

🚀 三步跑通你的第一个 Web 任务

前提:Python 3.10+,以及一个模型 API Key。

git clone https://gitcode.com/gh_mirrors/web/Webwright cd Webwright pip install -e . && playwright install chromium

然后一条命令开跑(以 OpenAI 后端为例,换 Claude 只需把model_openai.yaml换成model_claude.yaml):

python -m webwright.run.cli \ -c base.yaml -c model_openai.yaml \ -t "Search for flights from SEA to JFK on 2026-08-15 to 2026-08-20" \ --start-url https://www.google.com/flights \ --task-id demo_openai -o outputs/default

运行结束,outputs/default/下会留下完整轨迹与截图,生成的final_script.py本身就是一个可反复执行、可改参数复用的自动化脚本。

📌 总结:为什么这套"笨办法"反而 SOTA

  • 代码即动作:把"点哪里"换成"写什么代码",长程任务错误累积显著降低;
  • 工作区即状态:代码 + 截图 + 日志是可检查、可重放的真实状态;
  • 极简可调试:约 1.5k 行核心代码,整条 prompt → 观察 → 执行循环通读无压力;
  • 战绩说话:Online-Mind2Web 86.7%、Odysseys 60.1%,两项均为开源框架中的最强水平。

如果你想要一个轻量、易调试、能直接 fork 二开的浏览器 Agent 起点,Webwright 是目前最干净的选择。

【免费下载链接】WebwrightA simple SWE style browser agent framework that achieves SOTA results on long horizon web tasks.项目地址: https://gitcode.com/gh_mirrors/web/Webwright

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询