trialdesignbench 
TrialDesignBench is a community-driven benchmark for evaluating AI agents in clinical trial design.
Scope
The benchmark currently focuses on two core tasks:
- Task 1 (reproduction): Given a Statistical Analysis Plan (SAP) or study protocol, evaluate how accurately AI agents can reproduce the trial design using R.
- Task 2 (design generation): Given high-level clinical requirements, evaluate the ability of AI agents to draft new clinical trial designs using R. Under development.
How it works
TrialDesignBench is a thin evaluation framework. It owns the task schema,
task materialization, the grader, scoring rules, aggregation, and provenance.
Harbor is the execution backend
that runs first-party agent harnesses (Claude Code, Codex CLI) in Docker. The
two meet only through files: Harbor task directories, a generated job.yaml,
and the job directory Harbor writes.
- Hidden rubrics. Agents see the prompt template, the question skeleton,
and the source document. Rubrics live only in each task's
tests/directory, which runs in a separate verifier container. - Decoupled grading.
tdb gradeis a pure function of the submission (output.json,output.R, trajectory), the rubrics, and the judge configuration. It runs the same inside Harbor, standalone, and in tests, so recorded runs can be regraded and external submissions compared. - Fail loudly. Every grading error is an explicit status and zeroes the reward; a missing R runtime or trajectory is never a pass.
- Closed book, enforced. Egress is an allowlist of model API hosts, server-side web tools are disabled in the harness, the grader scans the trajectory for violations, and a network canary proves the policy holds.
- One pinned image for agent and verifier: R with a dated CRAN snapshot, Python, Node, pinned agent CLIs, and the pharma skills.
Installation
uv add trialdesignbench # dataset, build, grade, report
uv add "trialdesignbench[judge]" # + Anthropic SDK for the rubric judge
uv add "trialdesignbench[harbor]" # + Harbor to run agents (Python 3.12+)
For development:
git clone https://github.com/BBSW-org/TrialDesignBench.git
cd TrialDesignBench
uv sync --dev
Quick start
# Canonical dataset from curated submissions and protocol/SAP Markdown
uv run tdb dataset import data/json/*.json --out tmp/dataset --documents docs/
uv run tdb dataset check tmp/dataset
# Shared environment image, then Harbor tasks
uv run tdb env build
uv run tdb build tmp/dataset --out tmp/tasks
# Run an agent with the network canary, then aggregate
uv run tdb run --tasks tmp/tasks --agent claude-code \
--model anthropic/claude-opus-5 --n-attempts 3 --canary
uv run tdb report jobs/<job-name> --format md
# Grade any directory with output.json and output.R, no Harbor needed
uv run tdb grade path/to/submission --rubrics tmp/dataset/<task_id>/rubrics.json \
--out graded/<task_id> --trajectory path/to/trajectory.json
See the documentation for the dataset format, environment and network policy, grading rules, and reproducibility guarantees.
Release files for trialdesignbench 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trialdesignbench-1.0.0.tar.gz | 53.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trialdesignbench-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.4 kB
Release files / trialdesignbench-1.0.0.tar.gz
| Download URL | trialdesignbench-1.0.0.tar.gz |
|---|---|
| Size | 53.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1524f3bdbc9e3eb5220d6695ba4fd7e78cf661d5e6632dbb07d3611e65010903
|
|
BLAKE2b-256 checksum How to use checksums |
a5f48bbd9812c38953c5064b3ad3b5b0fd3f7ac1d8c1348882aeb07b6e319974
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / trialdesignbench-1.0.0-py3-none-any.whl
| Download URL | trialdesignbench-1.0.0-py3-none-any.whl |
|---|---|
| Size | 66.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6ca6338d48965c7e988ee87b23a3c2b41ba39979336c3372ec14ccc7cc5d358
|
|
BLAKE2b-256 checksum How to use checksums |
b8b5921cd1856a5d8897c47192976feaf53119460859f0b86920904e82443de1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|