diff --git a/README.md b/README.md index 6e23ef0bb..ec75743a5 100644 --- a/README.md +++ b/README.md @@ -511,19 +511,22 @@ just pre-pr # Pre-PR checks Bashkit includes a [mira eval study](crates/bashkit-eval/) that measures how well LLMs use bashkit as a bash tool in agentic workloads, 58 tasks across 15 categories. -_Latest run: 2026-06-27, on the mira eval framework (58 tasks)._ - -| Model | Score | Tasks Passed | Tool Call Success | Duration | -|-------|-------|-------------|-------------------|----------| -| Claude Opus 4.8 | **95%** | **55/58** | **96%** | 12.8 min | -| Claude Haiku 4.5 | **95%** | **55/58** | 94% | **7.4 min** | -| GPT-5.3-Codex | 93% | 54/58 | 85% | 12.1 min | -| GPT-5.5 | 88% | 51/58 | 90% | 8.2 min | -| Claude Sonnet 4.6 | 84% | 49/58 | 93% | 19.9 min | - -Opus 4.8 and Haiku 4.5 lead at 55/58, Haiku matches Opus in ~⅗ the wall-clock -time. Two tasks trip every model (`file_path_organizer`, `script_getopts_parser`). -See the [detailed analysis](crates/bashkit-eval/README.md#results). +_Latest run: 2026-10-09, on the mira eval framework (58 tasks, plus 8 multi-turn repo tasks and 10 hard tasks)._ + +| Model | Score | Tasks Passed | Repo Tasks | Hard Tasks | Tool Call Success | Duration | +|-------|-------|-------------|------------|------------|-------------------|----------| +| Claude Sonnet 5.5 | **100%** | **58/58** | **8/8** | **10/10** | 95% | **5.7 min** | +| Kimi K3 | **100%** | **58/58** | **8/8** | 8/10 | **96%** | 11.2 min | +| Muse Spark 1.3 Contributor | **100%** | **58/58** | 6/8 | 8/10 | **96%** | 28.0 min | +| Claude Opus 5.5 | 98% | 57/58 | 7/8 | **10/10** | 95% | 8.1 min | +| GPT-6.1 Sol | 93% | 54/58 | 5/8 | 9/10 | 91% | 8.0 min | +| Gemini 3.8 Flash | 93% | 54/58 | 3/8 | 4/10 | 93% | 14.5 min | +| GPT-6 Luna | 88% | 51/58 | 3/8 | 6/10 | 93% | 5.8 min | + +Three models now clear all 58 tasks, so the harder sets separate the field: +8 multi-turn repo tasks (fix a fixture repo, run `make test`, commit) and 10 +hard tasks (interacting bugs, `set -e`/quoting traps, exact data +reconciliation). Only Sonnet 5.5 passes every task in all three sets. See the [detailed analysis](crates/bashkit-eval/README.md#results). ```bash cargo install mira-cli # one-time: the `mira` host CLI diff --git a/crates/bashkit-eval/README.md b/crates/bashkit-eval/README.md index 82725e600..f8cf57fb4 100644 --- a/crates/bashkit-eval/README.md +++ b/crates/bashkit-eval/README.md @@ -16,23 +16,23 @@ Install the host CLI once, then drive the study through it: cargo install mira-cli # provides the `mira` binary # List advertised evals, samples, scorers, and targets -mira --bin bashkit-eval list +mira list --study-bin bashkit-eval # Run the bash agent eval (set keys for the models you want; unkeyed targets skip) -ANTHROPIC_API_KEY=... OPENAI_API_KEY=... \ - mira --bin bashkit-eval run bashkit_bash +ANTHROPIC_API_KEY=... OPENROUTER_API_KEY=... \ + mira run --study-bin bashkit-eval bashkit_bash -# A specific model + one category (--targets takes exact labels, comma-separated) +# A specific model + one category (--targets takes comma-separated label globs) ANTHROPIC_API_KEY=... \ - mira --bin bashkit-eval run bashkit_bash --targets anthropic/claude-opus-4-8 --tag json_processing + mira run --study-bin bashkit-eval bashkit_bash --targets anthropic/claude-opus-5-5 --tag json_processing # Scripting-tool eval, scripted mode only, self-contained HTML report OPENAI_API_KEY=... \ - mira --bin bashkit-eval run bashkit_scripting --axis mode=scripted --format html --out report.html + mira run --study-bin bashkit-eval bashkit_scripting --axis mode=scripted --format html --out report.html # Via just just eval-list -just eval --targets anthropic/claude-opus-4-8 +just eval --targets anthropic/claude-opus-5-5 just eval-smoke just eval-scripting ``` @@ -46,12 +46,15 @@ Results are written by mira under `./results//`. | `bashkit_bash` | 58 tasks, 15 categories | `--tag `, `--samples ` | | `bashkit_smoke` | 3 tasks | quick verification | | `bashkit_repo` | 8 `repo_workflow` tasks | multi-turn fixture repos (`just eval-repo`) | +| `bashkit_hard` | 10 hard tasks, 9 categories | built not to saturate; 25 turns (`just eval-hard`) | | `bashkit_scripting` | scripting-tool tasks | `--axis mode=scripted\|baseline` | Targets (model matrix) are defined in `src/mira_study.rs` and gated on -`ANTHROPIC_API_KEY` / `OPENAI_API_KEY`; offline runs skip them all. Select a -subset with `--targets