The benchmark

Terminal-Bench 2.1 & the bounded protocol

The tasks are terminal-native and pass/fail. Routine scoring runs a bounded, stratified subset — not all 89 tasks every time — for cost. Here's exactly how the pool is split.

What a task looks like

Each task drops the agent into a Docker container with a real problem — fix a broken git repo, stand up a gRPC server, recover a corrupted database write-ahead log, modernize a COBOL program — and an oracle check that verifies the final system state. Scoring is binary: the oracle passes or it doesn't. No partial credit.

The four stages of the pool

StageTasksTrialsPurpose
Canary preflight41One-eighth-scale paid check, easy→hard
Smoke gate163 (median)Cheap pass/cost signal; gates the full run
Ranked (“full”) run32 = 16 smoke + 16 stratified1The scored run behind the leaderboard
Audit pool84 (modality-neutral)Periodic integrity audits, not routine scoring

   Terminal-Bench 2.1 dataset  (~89 tasks)
   │
   ├─▶ 84-task modality-neutral pool ──────────────▶ periodic AUDITS (catch overfitting)
   │
   └─▶ bounded scoring protocol
         ┌────────────┐   gate   ┌─────────────────────────────┐
         │ smoke: 16  │ ───────▶ │ ranked: 32 (16 smoke + 16)  │ ──▶ billed $ = score
         └────────────┘          └─────────────────────────────┘
              median-of-3               one trial

Why a subset: a difficulty-stratified slice reproduces the full-benchmark ranking at a fraction of the cost. Absolute pass-rates shift on a subset, but who-beats-whom is stable — which is all a leaderboard needs. The 84-task pool stays in reserve so anyone who overfits the fixed 32 gets caught on audit.

The smoke set (16)

  • fix-git
  • git-leak-recovery
  • pypi-server
  • kv-store-grpc
  • write-compressor
  • nginx-request-logging
  • configure-git-webserver
  • modernize-scientific-stack
  • sanitize-git-repo
  • password-recovery
  • query-optimize
  • custom-memory-heap-crash
  • db-wal-recovery
  • model-extraction-relu-logits
  • regex-log
  • pytorch-model-cli

The 16 stratified additions (→ 32 ranked)

  • cobol-modernization
  • caffe-cifar-10
  • constraints-scheduling
  • extract-elf
  • headless-terminal
  • largest-eigenval
  • multi-source-data-merger
  • openssl-selfsigned-cert
  • pytorch-model-recovery
  • qemu-startup
  • cancel-async-tasks
  • fix-code-vulnerability
  • llm-inference-batching-scheduler
  • make-mips-interpreter
  • protein-assembly
  • sparql-university