Skip to main content
This project has moved to markpollack/agent-bench. Current documentation is at lab.pollack.ai/projects/agent-bench. The content below may be outdated.
GitHubAgent JudgeAgent Client

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 writes INSTRUCTION.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

  1. Provide copies the workspace template and writes INSTRUCTION.md
  2. Setup scripts prepare the workspace (clone repo, compile, measure baseline)
  3. Agent runs — any command that reads INSTRUCTION.md and modifies files
  4. Post scripts finalize (run tests, generate coverage reports)
  5. 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

License

Apache License 2.0