๐Ÿค– Agent Browser Protocol + Claude on Online Mind2Web

March 5, 2026 ยท View on GitHub

Results from running agent browser protocol with opus-4.6 on the Online Mind2Web benchmark (a web agent benchmark of real-world browser tasks across diverse websites).

As of March 3, 2026. These results would be the top of the public leaderboard. Achieving a new high score of 90.53% compared to the 78.7% of the previous leader.

๐Ÿ“Š Results

Overall (excluding impossible tasks)

"Impossible" tasks are ones that human evaluators confirmed can't be completed (broken sites, tasks requiring accounts that don't exist, etc). Not a fair fight, so we track them separately.

LevelPassingTotalPass Rate
Easy757896.15%
Medium12413889.86%
Hard596985.51%
Total25828590.53%

90.5% overall. On hard tasks, 85.5%. ๐Ÿ”ฅ

Including impossible tasks

LevelPassingTotalPass Rate
Easy758093.75%
Medium12414386.71%
Hard597776.62%
Total25830086.00%

๐Ÿ” Human evaluation breakdown

Tasks were labeled by human evaluators as: impossible (0), pass (1), or fail (2).

LevelVerdictCount
Easy0 (impossible)3
Easy1 (โœ… pass)75
Easy2 (โŒ fail)2
Medium0 (impossible)14
Medium1 (โœ… pass)124
Medium2 (โŒ fail)5
Hard0 (impossible)10
Hard1 (โœ… pass)59
Hard2 (โŒ fail)8

Full run details with per-task breakdowns: Google Sheets

๐Ÿš€ Run it yourself

Want to see ABP+Claude navigate the web in real time? Here's how to run the benchmark.

Prerequisites

  • Node.js 18+
  • An Anthropic API key set as ANTHROPIC_API_KEY OR Claude Code OAuth login
  • Agent Browser Protocol (ABP) server running on port 8222 (default)

Install dependencies

cd harness
npm install

Run

npm start [options]

Or directly:

cd harness
npx tsx src/index.ts [options]

โš™๏ธ Options

FlagDefaultDescription
--model <name>claude-opus-4-6Claude model to use
--max-turns <n>40Maximum agent turns per task
--abp-port <n>8222Port for the ABP browser server
--output-dir <path>./resultsDirectory to write results
--dataset <path>./Online_Mind2Web.jsonPath to dataset file
--level <easy|medium|hard>(none)Filter tasks by difficulty
--task <id>(none)Run a single task by ID
--limit <n>(none)Run only the first N tasks
--resumefalseSkip tasks that already have results
--result-dirs <path>(none)Additional dirs to check when resuming (repeatable)

๐Ÿ’ก Examples

# Run all 300 tasks (grab a coffee โ˜•)
npm start

# Run only easy tasks with a faster model
npm start --level easy --model claude-haiku-4-5-20251001

# Run a single task to see what it looks like
npm start --task <task_id>

# Resume an interrupted run (no wasted work!)
npm start --resume --output-dir ./results

# Sanity check with 10 tasks first
npm start --limit 10

๐Ÿ“ Output

Each task writes a result.json under <output-dir>/<task_id>/. After all tasks complete, a run_summary.json is written to the output directory with aggregate stats. Failed tasks are also logged to failures.json.

๐Ÿ™ Acknowledgements

Huge thanks to the Online Mind2Web team at OSU for building such a thorough and genuinely challenging benchmark. It's a great way to stress-test real agentic behavior on the messy, unpredictable real web.

License

MIT