资讯动态

用 Skyvern 跑通 WebVoyager 评测:ESPN 站点 44 个真实网页任务的结果与复现指南

发布时间:2026/9/13 21:52:12 来源:尧图企业网站定制
用 Skyvern 跑通 WebVoyager 评测ESPN 站点 44 个真实网页任务的结果与复现指南【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern本篇技术指南以仓库 evaluation/results/webvoyager-ESPN.md 的评测结果为核心结合 evaluation 目录下的数据集与评测脚本完整解读 Skyvern 在 WebVoyager 基准 ESPN 子集上的 44 个真实网页自动化任务表现并给出从排队任务、LLM 判定到生成结果报告的完整复现路径。读完本文你将掌握 WebVoyager 评测在 Skyvern 仓库中的落地方式、结果表每个字段的语义以及如何自行扩展站点评测。WebVoyager 评测与 Skyvern 的对应关系WebVoyager 是一类以真实网站 自然语言任务为核心的大模型网页代理评测基准每个用例给出起始 URL 与一条任务描述如查询 ESPN 上 NBA 东部联盟当前排名并附带参考答案用于检验 Agent 能否像人一样在真实页面上完成浏览、点击、提取与汇总。在本仓库中这一评测体系被完整落地到 evaluation 目录分为四层数据集层evaluation/datasets/webvoyager_tasks.jsonl 存放全部任务共 635 行含 Allrecipes、Amazon、Apple、BBC、Booking、Cambridge Dictionary、Coursera、ESPN、GitHub、Google 系、Huggingface、Wolfram Alpha 等多个站点evaluation/datasets/webvoyager_reference_answer.json 按web_name存放每个任务的参考答案。核心逻辑层evaluation/core/init.py 定义了SkyvernClient封装 v1/v2 的 Task 与 Workflow 创建、查询接口和Evaluator负责下载最终截图、构造评估 Prompt、调用 LLM 判定结果evaluation/core/utils.py 定义了WebVoyagerTestCase模型与load_webvoyager_case_from_json加载器。执行脚本层evaluation/script 下的create_webvoyager_task_v2.py、eval_webvoyager_task_v2.py、create_webvoyager_evaluation_result.py分别承担排队、评估、出报告三个阶段。结果层evaluation/results 存放各站点的评测结果 Markdown 报告本文主角就是其中的webvoyager-ESPN.md。从数据集加载逻辑evaluation/core/utils.py可以看到用例 ID 由web_name--序号组成加载时会从参考答案文件中匹配同序号的标准答案若匹配不到会直接抛出no answer for the task保证每个任务都有可判定的标准。ESPN 任务集44 条真实网页问题ESPN 子集共44 条任务ESPN--0至ESPN--43全部以https://www.espn.com/为起始页面。从问题内容看覆盖了体育信息站点的典型检索场景可归纳为以下几类类别任务示例ID典型问题排名与积分榜ESPN--0 / 17 / 30查询 NBA 东部联盟当前排名、BPI 首末位球队、NHL 分区排名比分与赛果ESPN--2 / 3 / 4 / 23 / 24 / 32最近 NBA/NFL/NHL 比赛最终比分、昨日比分板、指定球队近期比赛球员数据ESPN--5 / 8 / 20 / 25 / 31 / 38全场最高得分手、赛季得分王、篮板/助攻领跑者、最重内野手球队花名册与伤病ESPN--19 / 34 / 39凯尔特人最高薪球员、76 人最新伤病、喷气机伤病名单新闻头条与摘要ESPN--1 / 12 / 13 / 14 / 29 / 33首页头条所属联盟、篮球版头条摘要、交易新闻信息统计与枚举ESPN--9 / 11 / 18 / 27 / 28 / 41队名含 Los Angeles / New / Golden / City 的球队数量多步导航与跨站ESPN--35查湖人下一场比赛时间后跳转售票页查最低票价历史日期回查ESPN--15 / 162024-12-25 圣诞大战比分与对阵评测运行于 2024-25 赛季中段结果中时间戳集中在 2025-01-14 前后因此像最近 2 天内的交易新闻昨天 NBA 比赛这类时效性问题Agent 必须依据当时的实时页面作答无法靠记忆蒙混过关这正是 WebVoyager 类基准的难点所在。结果概览35 完成、7 失败、2 超时逐行统计webvoyager-ESPN.md的status列44 条任务的分布如下状态数量任务 IDcompleted35ESPN--0 ~ 5, 7, 8, 11 ~ 14, 17 ~ 21, 23 ~ 25, 28 ~ 41, 43failed7ESPN--6, 9, 15, 16, 22, 27, 42timed_out2ESPN--10, 26整体完成率达到约 80%35/44说明 Skyvern 在实时新闻/榜单/比分类网页任务上具备较高的端到端完成能力。值得注意的是状态与内容并不完全一一对应ESPN--9、ESPN--22、ESPN--27虽然标记为failed却带有完整的skyvern summary与skyvern output例如 ESPN--9 给出了4 支队名含 Los Angeles其中 2 支为 NBA的完整 JSON 输出从数据结构可以推断这些任务的工作流本身产出了结果失败更多落在最终判定环节而ESPN--6、ESPN--15、ESPN--16、ESPN--42的 summary 与 output 均为nan属于真正的中途失败。timed_out的两条ESPN--10 大学橄榄球冠军赛、ESPN--26 比较昨日比赛双方最高得分则是在规定步数内未能收敛。结构化输出证据summary 与 output 的双通道信息结果表的每一行都包含两个信息通道skyvern summary自然语言概括描述 Agent 最终达成目标的情况skyvern output结构化的 JSON 字典是工作流最后一个块或 TaskV2产出的提取结果。以 ESPN--0NBA 东部排名为例output 是一个Eastern_Conference_Standings数组完整覆盖 15 支球队的rank / team / wins / losses / pct / gb / home / away / div / conf / ppg / opp_ppg / diff / strk / l10共 15 个字段。例如{ Eastern_Conference_Standings: [ {rank: 1, team: Cleveland Cavaliers, wins: 33, losses: 5, pct: 0.868, gb: -, home: 20-2, away: 13-3, div: 6-1, conf: 22-5, ppg: 122.1, opp_ppg: 111.3, diff: 10.8, strk: W1, l10: 9-1} ] }再看几个不同形态的输出ESPN--5 返回标量对象top_scorer: Anthony Edwards, 41 points, Shooting GuardESPN--4 返回数组昨日 6 场比赛的game_id / home_team / away_team / statusESPN--39 返回带profile_url的伤病名单。这种字段随任务自由定义的结构化能力来自 Skyvern 根据用户 prompt 动态生成提取 schema 的机制也让 LLM 判定环节有据可依。典型成功案例解读多表数据抓取ESPN--0从 NBA 榜单页提取完整东部排名15 支球队逐行带全量统计指标strk连胜/连败与l10近 10 场等派生字段也一并准确摘出。实时比分板ESPN--4从 ESPN 的 NBA SCOREBOARD 区块提取昨日全部比赛包含球队名、比分、状态与队徽链接game_id与官网数据一致。深层子页查询ESPN--19进入波士顿凯尔特人 Roster 页面后定位最高薪球员 Jaylen Brown$49,205,800并附带位置、年龄、身高、体重、大学等多维信息说明 Agent 具备进入二级页面并完成排序/比较型任务的推理能力。跨站多步任务ESPN--35先查湖人下一场比赛时间2025-01-15 10:00 PM vs Heat再跳转票务站在未来两个月内的约束下找到最低票价 $48验证了多页面、多站点连续导航的稳定性。综合比较任务ESPN--38读取湖人 2023-24 数据后计算 Anthony Davis 出场率 92.68%并进一步找出具有相同出场率的 DAngelo Russell——这类先计算再比对的任务比单纯提取更难仍以结构化 JSON 完成。失败与超时案例问题出在哪历史日期回查ESPN--15 / ESPN--16要求查询 2024-12-25圣诞大战的比分与赛程。截至 2025-01-14该日期已过去三周需要 Agent 在页面上找到历史日期切换入口或归档比分页面复杂度显著高于昨日比赛。两条任务均以failed收场说明指定历史日期是当前实现的一个薄弱点。跨赛季对阵查询ESPN--6要求查湖人 vs 凯尔特人最近一场比赛的结果与最佳得分手。这类问题对最近一场的语义消解、对阵筛选都提出更高要求任务失败summary/output 均为 nan。次级页面深挖ESPN--42要求查 NCAAM大学男篮America East 联盟中胜负相同的球队需要定位大学篮球排名页并逐联盟过滤属于链路较长的查询最终未产出结果。结果产出但判定失败ESPN--9 / 22 / 27这三条都有完整输出如 ESPN--9 正确枚举 4 支 LA 球队并给出nba_team_count: 2但状态仍为 failed可推断为最终 LLM 判定环节verdict 断言未通过而非工作流执行失败。超时ESPN--10 / 26大学橄榄球全国冠军赛的比分与回顾、以及昨日比赛中落败方最高分高于胜方最高分的跨场次比较均在有限步数内未收敛。后者尤其需要跨多场比赛聚合对比属于典型的组合推理任务。共性观察时效性任务昨日/最近几天与静态榜单任务的完成率明显高于历史日期回查、跨场次比较与深层级联页面任务这与网页结构复杂度、所需导航步数直接相关。复现评测从排队到出报告的完整调用链仓库在 evaluation/script 提供了三阶段脚本均基于 Typer CLI 编写。阶段一排队任务create_webvoyager_task_v2.pypython -m evaluation.script.create_webvoyager_task_v2 \ --base-url SKYVERN_API_BASE \ --cred ORG_API_KEY脚本逻辑见 evaluation/script/create_webvoyager_task_v2.py从webvoyager_tasks.jsonl逐条加载用例先用check-evaluation-goal提示词将原始问题改写为带当前时间上下文的tweaked_user_goal若改写前后不一致则标记is_updatedTrue再通过Evaluator.queue_skyvern_task_v2以 TaskV2Observer Cruise形式排队最终把task_v2_id / workflow_run_id / workflow_permanent_id / cruise_url写入{group_id}-webvoyager-record.jsonl。阶段二批量拉取与评估eval_webvoyager_task_v2.pypython -m evaluation.script.eval_webvoyager_task_v2 \ --base-url SKYVERN_API_BASE \ --cred ORG_API_KEY \ --record-json 生成的record.jsonl \ --output-path output.csv核心逻辑在 evaluation/script/eval_webvoyager_task_v2.py以BATCH_SIZE 5并发拉取每个 workflow run 的状态、summary 与 output状态非completed的直接标记assertionFalse并记录failure_reason状态为completed的则调用Evaluator.eval_skyvern_workflow_run走完整判定。输出 CSV 包含 12 列id / status / assertion / failure_reason / url / question / answer / summary / output / is_updated / workflow_permanent_id / workflow_run_id。阶段三生成结果报告create_webvoyager_evaluation_result.pypython -m evaluation.script.create_webvoyager_evaluation_result \ --base-url SKYVERN_API_BASE \ --cred ORG_API_KEY \ --workflow-pid WORKFLOW_PERMANENT_ID \ --record-json record.jsonl \ --output-path output.csv该脚本evaluation/script/create_webvoyager_evaluation_result.py逐条回查 workflow run并把status / summary / output / assertion / failure_reason汇总成 CSV即webvoyager-ESPN.md这类报告的机器可读前身。此外SkyvernClientevaluation/core/init.py支持通过x-max-steps-override请求头覆盖最大步数并在内部把v1base URL 自动替换为/api/v2以调用 TaskV2 端点复现时可直接沿用。评测引擎原理截图 提取结果 LLM 双重判定Evaluator.eval_skyvern_workflow_runevaluation/core/init.py揭示了判定链路断言 workflow run 状态为completed且存在至少一张截图screenshot_urls非空下载首张最终截图若 TaskV2 存在把summary与output拼接为extracted_information否则从 workflow 最后一个块的输出中取extracted_information调用evaluate-prompt提示词把question、标准答案answer、提取结果与最终截图一并交给 LLMapp.LLM_API_HANDLER判定标准为返回的verdict SUCCESS否则断言失败evaluation/core/init.py。三个阶段的产物评估 Prompt 文本、最终截图、LLM 响应 JSON都会以时间戳前缀落盘到test/artifacts/{group_id}/{id}/方便事后审计——这解释了webvoyager-ESPN.md中skyvern link一列指向各 workflow run overview 页面的用途也说明整套评测是可追溯、可复现的。从结果反推的实战建议优先把时效性约束写进 promptWebVoyager 任务如过去 2 天内的交易依赖 Agent 对当前时间的感知check-evaluation-goal阶段注入local_datetime的机制值得在业务 prompt 中沿用避免模型把训练数据中的旧新闻当结果。给结果结构化输出留足字段从 ESPN--0 的 15 字段、ESPN--4 的嵌套数组看提取 schema 越贴合页面结构最终 LLM 判定与下游消费越容易成功。对历史日期与跨场次比较任务设置更长步数上限x-max-steps-override与max_steps字段可针对这类高步数任务单独调参。区分执行失败与判定失败如 ESPN--9 / 22 / 27 所示执行成功但状态 failed 的情况建议结合test/artifacts/下的评估 Prompt 与 LLM 响应原文排查往往能定位是提取缺字段还是判定口径过严。本文所有数据均来自 evaluation/results/webvoyager-ESPN.md 的逐行统计评测脚本与数据集均可从 evaluation 目录直接复现验证。【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价