Overview
Agent Bench defines benchmarks as YAML, launches any CLI agent in an isolated workspace, and grades results with cascaded judge tiers from Agent Judge. The filesystem is the contract. The bench writesINSTRUCTION.md to the workspace. The agent reads it and modifies files. Any CLI tool — Claude Code, Gemini CLI, Amazon Q, a shell script — can compete.
How It Works
- Provide copies the workspace template and writes
INSTRUCTION.md - Setup scripts prepare the workspace (clone repo, compile, measure baseline)
- Agent runs — any command that reads
INSTRUCTION.mdand modifies files - Post scripts finalize (run tests, generate coverage reports)
- Grade evaluates with a cascaded jury
Benchmark Format
benchmark.yaml — Jury Configuration
task.yaml — Task Definition
Agent Config
Agents are defined by a command and a timeout:CLI
Bring Your Own Agent
Built-in Judge Types
Custom types registered via
JudgeFactory.register().
Benchmarks
The code-coverage benchmark was validated in a 29-run experiment testing 7 prompt/knowledge variants with Claude Sonnet 4.6 on spring-petclinic. See the blog post for analysis.
Architecture
Two modules:agent-bench-core (CLI, catalog, judge factory, result model) and agent-bench-agents (LLM-based judges). Module layering enforced by ArchUnit.
Resources
GitHub Repository
Source code and benchmarks
Agent Judge
Cascaded judge framework (core dependency)
Code Coverage Experiment
29-run benchmark study with variant analysis
Blog: I Read My Agent's Diary
Analysis of the code-coverage experiment results