assessment-bench
Part of the lens family.
Benchmark assessment approaches. Run one cohort through competing
assessment arms — pure-LLM marking (the baseline) and the family's
signal-based observations (assessment-lens) — with repeated runs,
consistency statistics, and agreement against human marks.
The bench measures; it never marks.
assessment-benchis a bench (a measurement product), not an-analyserand not a marking tool. It exists to answer research questions like: how consistent is LLM marking across repeated runs and providers? and which deterministic signals actually track human judgement?
What it does
experiment.yaml (rubric + cohort + arms)
├─ llm arm(s) : submission + rubric → provider → score × repetitions
├─ hybrid arm(s) : submission + rubric + signals → provider → score × repetitions
├─ signals arm : assessment-lens → evidence values (deterministic, once)
└─ human marks : optional ground-truth CSV
↓
result.json + runs.csv + signals.csv + agreement.csv
• per-submission consistency: mean / median / std-dev / CV / reliability
• agreement: Pearson & Spearman of every arm mean and every numeric signal
against the human marks
Install
# from source (family layout)
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
# the signals arm needs the analyser stack (bundle-analyser CLI on PATH):
uv pip install -e ".[analysers]"
# LLM arms (Anthropic, OpenAI, Ollama, OpenRouter, Grok, Gemini):
uv pip install -e ".[llm]" # + export ANTHROPIC_API_KEY / OPENAI_API_KEY /
# OPENROUTER_API_KEY / XAI_API_KEY / GEMINI_API_KEY
Quick start
assessment-bench init experiment.yaml # commented example config
# edit: point at your rubric.yaml + submissions/, choose arms
assessment-bench run experiment.yaml -o out/
LLM arms specify provider and model per arm — comparing
claude-haiku-4-5 vs gpt-4o-mini vs a local llama3.1 via Ollama is just
three arms in one config.
Relationship to the family
- Analysers generate deterministic signals (assessment-agnostic).
- assessment-lens maps signals to a rubric as observations — never scores.
- assessment-bench measures both approaches against human judgement. The LLM arm produces scores because that is the approach under test; the bench treats them as data points, not grades for students.
Status
v0.5.1 (on PyPI). Working today:
- ✅ Experiment config (YAML) → cohort discovery → arms → structured results
- ✅ LLM arm: multi-provider (anthropic / openai / ollama / openrouter / grok /
gemini), repeated runs, strict
SCORE: x/yextraction with scaled fallback - ✅ Signals arm: one
assessment-lenspass; raw evidence values consumed (not the presence-based coverage) - ✅ Consistency stats (ported from the original Rust prototype) + Pearson/Spearman agreement vs human marks
- ✅ Hybrid arm — LLM marking with the deterministic signals in context (one assessment-lens pass per cohort, shared across signals/hybrid arms)
- ✅ HTTP API (
assessment-bench serve, the[serve]extra) — health/manifest contract routes plus background experiment runs for UIs - ✅ Desktop shell — assessment-bench-desktop
wraps
serveas a bundled Python sidecar
Development
ruff format . && ruff check . && pytest -v
License
MIT — see LICENSE.
Release files for assessment-bench 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| assessment_bench-0.5.1.tar.gz | 99.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| assessment_bench-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 122.3 kB
Release files / assessment_bench-0.5.1.tar.gz
| Download URL | assessment_bench-0.5.1.tar.gz |
|---|---|
| Size | 99.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ca62182e43b4fa0cc1307bf8e9b8eed20467d0e264f4185a7dd811fad068ac09
|
|
BLAKE2b-256 checksum How to use checksums |
3db92d6a69d70ea48e5170215fa92f1350efefc67ca47a9f316689f83e9e8199
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|
Release files / assessment_bench-0.5.1-py3-none-any.whl
| Download URL | assessment_bench-0.5.1-py3-none-any.whl |
|---|---|
| Size | 22.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7da4a635d645f2923e010b699dd1fe17ae008c8b2e1ecc8a2e29ba04d849084e
|
|
BLAKE2b-256 checksum How to use checksums |
653ad4db575d3d8aae72c5aeb5856fc4819a065ba34951c41543e670cead8ad2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|