What Benchmarks Own
Task loading
Load
TaskSpec objects from datasets, local files, services, or benchmark-specific repositories.Task selection
Apply generic
sample_ids filtering and benchmark-specific parameters such as category or split.Task preparation
Turn a raw task into a
PreparedTask with prompt, media, files, tools, workspace, and metadata.Evaluation
Score
RunResult, write per-task detail payloads, and aggregate metrics into summary.md.Core Interface
Data Objects
Usage: Select One Task
sample_ids is generic runtime filtering. It matches TaskSpec.task_id and fails fast if a requested id does not exist.
Usage: Run a Category
category narrows the GUI grounding subset. For other benchmarks, use the reference page for supported params.
Tag Vocabulary
The public documentation lists benchmark pages alphabetically. Capability labels are tags, not exclusive categories, so one benchmark can appear relevant to multiple dimensions.
See the Benchmark reference for per-benchmark parameters and run examples.
Developer Notes
Add a benchmark when the dataset, scoring, or task preparation is meaningfully different from existing benchmarks. Do not add a benchmark just to change provider settings; use an environment config or recipe instead.Implementation Checklist
- Define a stable
idand human-readabledescription. - Return stable public
task_idvalues fromload_tasks. - Keep scoring fields out of harness-private assumptions.
- Put provider hints in task metadata, not provider SDK calls.
- Make single-task reproduction possible with
sample_ids. - Persist enough detail to debug failures without rerunning the task.
