HarnessEval-W README

The project's README from github.com/MirroS-Lab/HarnessEval-W. As one markdown file: README.md.

HarnessEval logo

HarnessEval-W

Agentifying the Evaluation of Visual Worlds

The era of harnessed benchmarking: evaluation defines the taste of evolution.

Paper Project Page Blog Leaderboard Hugging Face Dataset

HarnessEval overview

Overview

A benchmark should deliver more than a scalar score: what makes an evaluation trustworthy is the reasoning that justifies the score. This is especially critical for world models, where judging a rollout requires understanding whether physics, causality, and world state evolve correctly. Humans spot such violations naturally, yet no existing benchmark automates this capability: metrics are computed brute-force, leaving no reasoning chain that can be examined or verified.

HarnessEval is an agentified evaluation pipeline that brings the harness paradigm from the LLM ecosystem to world model benchmarking. Rather than applying a fixed rubric, HarnessEval interprets the context of each evaluation case, decomposes the evaluation question into measurable sub-questions, and spawns specialized sub-agents, each equipped with tailored context and diagnostic tools to reason over its own sub-question. The parent agent then validates the gathered evidence and aggregates it into the final verdict. Every evaluation becomes a transparent evidence tree whose complete reasoning chain justifies the result.

News

How It Works

HarnessEval pipeline

  1. Case-specific skill routing. Given a case (initial world, action, probe intent), the planner routes it to the skills that can legitimately evaluate it — and records an evidence-grounded reason for every skill it skips.
  2. Sub-agent reasoning. Each skill decomposes its evaluation into measurable sub-questions, each answered by a dedicated sub-agent against rollout evidence.
  3. Validated aggregation. The parent agent validates the collected evidence and aggregates it into the case score. The full trace — every question, answer, score, and supporting frame — is saved as an auditable case card.

Routing depends only on the case context, never on the model being evaluated, so every model faces the same questions on the same cases.

Installation

Create three environments:

git clone --branch main --single-branch https://github.com/mirros-lab/harnesseval-w.git
cd harnesseval-w
conda env create -f docs/installation/main.environment.yml
conda env create -f docs/installation/metrics.environment.yml
conda env create -f docs/installation/pavrm.environment.yml
conda activate harnesseval-main

Configure credentials and paths:

cp config/example.env harnesseval.env
set -a; . ./harnesseval.env; set +a

The bundled demo in runs/example/results_example can be evaluated immediately after setup.

Usage

Evaluate a model's generated results:

# Evaluate generated videos and write run outputs.
harnesseval eval \
  --results runs/example/results_example/generation \
  --model-id seedance-2.0-standard \
  --run-root runs/example/results_example/run \
  --manifest runs/example/results_example/manifest.json \
  --plan-root benchmark/plans

Check a completed run:

# Verify that an existing run has all expected scores.
harnesseval verify run \
  --eval-root runs/example/results_example/run/harnesseval/models/seedance-2.0-standard/evaluation \
  --manifest runs/example/results_example/manifest.json \
  --model seedance-2.0-standard

Or use the bundled demo end to end:

# Run the bundled demo from the example directory.
cd runs/example/results_example
# Evaluate the demo outputs.
harnesseval eval --results generation --model-id seedance-2.0-standard --run-root run --manifest manifest.json --plan-root ../../benchmark/plans
# Verify the demo run.
harnesseval verify run --eval-root run/harnesseval/models/seedance-2.0-standard/evaluation --manifest manifest.json --model seedance-2.0-standard

What You Get

The bundled example already produces scores. A completed evaluation writes:

runs/example/results_example/run/harnesseval/models/<model-id>/evaluation/
├── summary.json           # overall and per-family scores
├── leaderboard_latest.json
├── leaderboard_latest.csv
└── LEADERBOARD.md

Per-case artifacts and caches live under run/harnesseval/metric_cache/ and run/harnesseval/models/<model-id>/.

Extending HarnessEval

HarnessEval is a living benchmark, and contributions are welcome !

Keep submissions aligned with the existing benchmark format so they can plug into the bundled flow.

TODO

Acknowledge

This project builds upon the following excellent works:

Citation

If you find HarnessEval useful, please cite:

@article{Mirros2026harnessevalw,
  title   = {HarnessEval-W: Agentifying the Evaluation of Visual Worlds},
  author  = {MirroS Team},
  journal = {arXiv preprint arXiv:2608.16859},
  year    = {2026}
}

License

We release our code with Apache 2.0 License.

HarnessEval-W (MirroS-Lab/HarnessEval-W)

Searching Database…

这是什么?HarnessEval-W 是一条智能体化的评估流水线,用于给世界模型/视频生成模型做基准测试:它不采用暴力的单一标量分数,而是把每个评估案例拆成若干子问题,交给专门的子智能体回答,再把证据汇总成透明、可审计的结论。
这是单个指标工具,还是完整的智能体流水线?它是一条多智能体流水线:规划器把每个案例路由给真正有资格评判它的技能,专门的子智能体对照 rollout 证据回答可度量的子问题,再由父智能体校验并汇总这些证据,得出案例的最终分数。
怎么让它跑起来?创建三个独立的环境——harnesseval-main(启动器/CLI)、harnesseval-metrics(指标后端)和 harnesseval-pavrm(物理合理性后端)——配置好凭据和路径,然后运行 runs/example/resultsexample 中自带的演示。
运行之前我需要准备什么?需要 Python,以及分别为 CLI 启动器、指标后端和物理合理性后端单独管理的三个环境,每个环境都要先配置好自己的凭据和路径。
安装有什么可以预见的坑吗?安装需要同时应付三个独立的环境而不是一个,而且目前还没有托管服务——“提交视频、获取分数”的选项仍被列为未完成的 TODO,所以目前一切都在本地运行。
什么是案例卡?它是 HarnessEval 为每次评估保存的可审计产物:包括支撑最终结论的每个子问题、子智能体的回答、分数以及画面帧证据。
它能评估哪些世界模型?它通过模型生成适配器支持文本、图像、动作和相机条件控制的世界模型,包括 Kling、MiniMax H3、Seedance、WAN 和 Cosmos。
有公开的排行榜吗?有,2026 年 9 月,一个包含 100 个案例的公开数据集连同其排行榜,与完整的基准和指标代码一同发布。
为什么不直接用固定的评分规则?固定指标是暴力算出来的,没有可检查的推理链条,所以 HarnessEval 改为把案例路由给专门的子智能体,让它们基于证据推理,给出有依据、可追溯的分数。
Creator
MirroS-Lab
Size
410.1 MB
Stars
308
Updated
CommitSep 02
Age
2mo
Commits · 90 Days