Skip to content

Commit b9de40e

Browse files
committed
merge: main into feat/llm-judge
Resolves README News section conflict by keeping the 2026-05-20 V2-default entry (HEAD) plus main's 2026-05-16 through 2026-05-11 entries. Also fixes the 2026-05-11 V2Trace link to TIGER-Lab/ClawBenchV2Trace. batch.py auto-merged: V2 default + claw-eval restored together. pyproject.toml auto-merged: 0.3.3 + rescore/reproduce scripts.
2 parents 2a5bd2b + d003fd4 commit b9de40e

70 files changed

Lines changed: 5065 additions & 1421 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/run-test.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: run-test
2+
3+
on:
4+
pull_request:
5+
branches: [ main ]
6+
paths:
7+
- ".github/workflows/run-test.yml"
8+
- "src/clawbench/**"
9+
- "tests/**"
10+
- "pyproject.toml"
11+
- "uv.lock"
12+
push:
13+
branches: [ main ]
14+
paths:
15+
- ".github/workflows/run-test.yml"
16+
- "src/clawbench/**"
17+
- "tests/**"
18+
- "pyproject.toml"
19+
- "uv.lock"
20+
workflow_dispatch:
21+
22+
jobs:
23+
run-test:
24+
name: pytest (${{ matrix.os }})
25+
runs-on: ${{ matrix.os }}
26+
strategy:
27+
fail-fast: false
28+
matrix:
29+
os:
30+
- ubuntu-latest
31+
- macos-latest
32+
- windows-latest
33+
34+
steps:
35+
- uses: actions/checkout@v6
36+
37+
- name: Install uv
38+
uses: astral-sh/setup-uv@v8.1.0
39+
40+
- name: Set up Python
41+
uses: actions/setup-python@v6
42+
with:
43+
python-version: "3.11"
44+
45+
- name: Run host-side pytest suite
46+
run: uv run --frozen pytest

.github/workflows/static-check.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ jobs:
4646
- name: Ruff format check
4747
run: uv run --frozen ruff format --check .
4848

49+
- name: Pyright check
50+
run: uv run --frozen pyright src/clawbench tests
51+
4952
- name: Build package
5053
env:
5154
UV_FROZEN: "true"

.pre-commit-config.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,10 @@ repos:
55
- id: ruff-check
66
- id: ruff-format
77
args: [--check]
8+
- repo: local
9+
hooks:
10+
- id: pyright
11+
name: pyright
12+
entry: uv run --frozen pyright src/clawbench tests
13+
language: system
14+
pass_filenames: false

AGENTS.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This file is for coding agents (Claude Code, Cursor, Copilot, etc.) to understan
44

55
## What This Is
66

7-
ClawBench is a benchmarking framework for evaluating AI web agents on real-world online tasks. V1 lives in `test-cases/v1/` with 153 tasks spanning 144 live websites and 15 life categories; V2 lives in `test-cases/v2/` with 130 tasks; Lite lives in `test-cases/v1-lite/` with 20 link-backed V1 tasks. Each task runs in an isolated Docker container with Chromium, a recording Chrome extension, and an AI agent harness (`openclaw`, `opencode`, `claude-code`, `claude-code-chrome-extension`, `codex`, `browser-use`, `claw-code`, or `hermes`, selectable via `--harness`). The framework captures five layers of data: session replay (MP4), action screenshots, HTTP traffic, browser actions, and agent messages.
7+
ClawBench is a benchmarking framework for evaluating AI web agents on real-world online tasks. V1 lives in `test-cases/v1/` with 153 tasks spanning 144 live websites and 15 life categories; V2 lives in `test-cases/v2/` with 130 tasks; Lite lives in `test-cases/v1-lite/` with 20 link-backed V1 tasks. Each task runs in an isolated Docker container with a browser, a recording Chrome extension, and an AI agent harness (`openclaw`, `opencode`, `claude-code`, `claude-code-chrome-extension`, `codex`, `browser-use`, `claw-code`, `hermes`, or `pi`, selectable via `--harness`). The framework captures five layers of data: session replay (MP4), action screenshots, HTTP traffic, browser actions, and agent messages.
88

99
## Project Structure
1010

@@ -19,8 +19,8 @@ ClawBench/
1919
runner/
2020
run.py # Single test-case runner
2121
batch.py # Batch runner (model x case cross-product)
22+
run_support/ # Runner-private helpers for single runs
2223
utils/
23-
generate_resume_pdf.py # Resume PDF generator
2424
hf_upload.py # Optional HuggingFace upload helpers
2525
runtime/
2626
shared/
@@ -125,7 +125,12 @@ test-output/<model>/<harness>-<case>-<model>-<timestamp>/
125125
# `result`, `state`, `metadata` fields;
126126
# hermes → live `session_meta`/`thinking`/`reasoning`/
127127
# `tool_use`/`tool_result` capture, falling back to
128-
# Hermes session export when it contains messages)
128+
# Hermes session export when it contains messages;
129+
# pi → filtered Pi JSON mode events with
130+
# `message_start`/`message_end`,
131+
# `tool_execution_*`, tool-call content, and
132+
# thinking blocks; streaming `message_update`
133+
# fragments are omitted)
129134
screenshots/ # Timestamped PNGs
130135
recording.mp4 # Full session video
131136
interception.json # Interception result

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,27 @@ All notable changes to this project will be documented in this file.
66
The format is based on [Keep a Changelog](https://keepachangelog.com/)
77
and this project adheres to [Semantic Versioning](https://semver.org/).
88

9+
## [0.3.3] - 2026-05-19
10+
### Changed
11+
- More data are stored in the `run-meta.json` for better post-hoc analysis and reproducibility, including the hash of the configs, runtime info, and flags used.
12+
13+
### Fixed
14+
- Fixed several compatibility issues on Windows platforms.
15+
16+
## [0.3.2] - 2026-05-15
17+
### Added
18+
- Added the logic to remove the `.log` files from the generated `data/` directory to remove noise.
19+
- Added the handling to allow models with no visual capabilities to use the `claude-code-browser-extension` harness by skipping the screenshot steps.
20+
- Added retry logic to the `claude-code-browser-extension` harness to handle temporary rate limits.
21+
22+
## [0.3.1] - 2026-05-13
23+
### Fixed
24+
- Removed v1-799 and v2-795 tasks since the current interception schemas have risk of leaking the agent's final action to the end server, which leads to unexpected disturbance of the end business.
25+
26+
## [0.3.0] - 2026-05-09
27+
### Added
28+
- Added support for the **pi** harness — [Pi coding agent](https://github.com/earendil-works/pi/tree/main/packages/coding-agent) + [`pi-browser-harness`](https://github.com/amankumarsingh77/pi-browser-harness)
29+
930
## [0.2.2] - 2026-05-08
1031
### Changed
1132
- Migrated the PyPI package to `clawbench-eval` instead of `clawbenchmark`.

NOTICE

Lines changed: 87 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,94 @@
11
ClawBench
22
Copyright 2026 ClawBench Authors
33

4-
This product includes the following third-party software:
4+
This product includes the following third-party open source software and
5+
materials. Transitive package dependencies keep their upstream licenses.
56

6-
noVNC - Copyright (C) 2024 The noVNC Authors
7-
Licensed under the Mozilla Public License 2.0 (MPL 2.0)
7+
Source materials:
8+
9+
Claw-Eval converted task subset
10+
Source: https://github.com/claw-eval/claw-eval
11+
Dataset: https://huggingface.co/datasets/claw-eval/Claw-Eval
12+
Licensed under the MIT License
13+
14+
Direct Python packages:
15+
16+
fpdf2 2.8.7 - Licensed under LGPL-3.0-only
17+
https://py-pdf.github.io/fpdf2/
18+
19+
huggingface-hub 1.12.0 - Licensed under Apache-2.0
20+
https://github.com/huggingface/huggingface_hub
21+
22+
PyYAML 6.0.3 - Licensed under the MIT License
23+
https://github.com/yaml/pyyaml
24+
25+
questionary 2.1.1 - Licensed under the MIT License
26+
https://github.com/tmbo/questionary
27+
28+
rich 15.0.0 - Licensed under the MIT License
29+
https://github.com/Textualize/rich
30+
31+
fastapi 0.136.1 - Licensed under the MIT License
32+
https://github.com/fastapi/fastapi
33+
34+
uvicorn 0.46.0 - Licensed under BSD-3-Clause
35+
https://uvicorn.dev/
36+
37+
websocket-client 1.9.0 - Licensed under Apache-2.0
38+
https://github.com/websocket-client/websocket-client/
39+
40+
jsonschema 4.26.0 - Licensed under the MIT License
41+
https://github.com/python-jsonschema/jsonschema
42+
43+
pre-commit 4.6.0 - Licensed under the MIT License
44+
https://github.com/pre-commit/pre-commit
45+
46+
ruff 0.15.12 - Licensed under the MIT License
47+
https://github.com/astral-sh/ruff
48+
49+
Harness and runtime packages:
50+
51+
browser-use 0.12.6 - Licensed under the MIT License
52+
https://github.com/browser-use/browser-use
53+
54+
LiteLLM 1.83.9 - Licensed under the MIT License
55+
https://github.com/BerriAI/litellm
56+
57+
websockets 13.1 - Licensed under BSD-3-Clause
58+
https://github.com/python-websockets/websockets
59+
60+
Hermes Agent, commit bf196a3fc0fd1f79353369e8732051db275c6276 - Licensed under the MIT License
61+
https://github.com/NousResearch/hermes-agent
62+
63+
agent-browser 0.26.0 - Licensed under Apache-2.0
64+
https://github.com/vercel-labs/agent-browser
65+
66+
Microsoft Playwright MCP 0.0.70 - Licensed under Apache-2.0
67+
https://github.com/microsoft/playwright-mcp
68+
69+
opencode-ai 1.4.4 - Licensed under the MIT License
70+
https://github.com/sst/opencode
71+
72+
OpenClaw 2026.3.13 - Licensed under the MIT License
73+
https://github.com/openclaw/openclaw
74+
75+
OpenAI Codex CLI 0.120.0 - Licensed under Apache-2.0
76+
https://github.com/openai/codex
77+
78+
claw-code, commit 00d0eb61d4cfc1abd345dc76023dd21e420f6488 - License NOASSERTION; no license file found at pinned commit
79+
https://github.com/ultraworkers/claw-code
80+
81+
pi-coding-agent 0.74.0 - Licensed under the MIT License
82+
https://github.com/earendil-works/pi-mono
83+
84+
pi-browser-harness 0.4.0 - Licensed under the MIT License
85+
https://github.com/amankumarsingh77/pi-browser-harness
86+
87+
typebox 1.1.38 - Licensed under the MIT License
88+
https://github.com/sinclairzx81/typebox
89+
90+
noVNC 1.6.0 - Licensed under MPL-2.0
891
https://github.com/novnc/noVNC
992

10-
websockify - Copyright (C) 2024 The websockify Authors
11-
Licensed under the GNU Lesser General Public License v3.0 (LGPL 3.0)
93+
websockify 0.13.0 - Licensed under LGPL-3.0
1294
https://github.com/novnc/websockify

0 commit comments

Comments
 (0)