Skip to main content

What You’ll Do

Run the hello-world benchmark with your own agent. You’ll write a 2-line agent config, run the benchmark, and see a graded result.

Prerequisites

  • Java 17+
  • An AI coding agent with a CLI (Claude Code, Gemini CLI, or any executable)

Step 1: Clone and Build

Step 2: Configure Your Agent

Create a YAML file that tells the benchmark how to invoke your agent. The only requirements: a command that runs in a directory, and a timeout.
Your agent receives:
  • A workspace directory as its working directory
  • An INSTRUCTION.md file describing the task
Your agent’s job: read the instruction, modify the workspace, and exit.
claude -p (print mode) cannot write files --- it only outputs text. Use claude --print --dangerously-skip-permissions for agents that need to create or modify files.

Other agents

Any CLI tool works. Here are examples for different agents:
The benchmark doesn’t care what your agent is --- only that it reads the instruction and writes to the workspace.

Step 3: Run the Benchmark

You’ll see output like:

Step 4: Review Results

The benchmark writes structured results to runs/<uuid>/:
result.json contains the full evaluation:

Step 5: Try Code Coverage

The code-coverage benchmark is a real-world task: write JUnit tests for Spring Petclinic to maximize coverage. This requires the full judge stack, so use the agent-bench-agents module:
The code-coverage jury evaluates in 4 tiers:
  1. T0 Build: Does ./mvnw test pass?
  2. T1 Coverage Preservation: No regressions from baseline?
  3. T2 Coverage Improvement: Above 50% instruction coverage?
  4. T3 Test Quality: LLM judge scores practice adherence (test slices, assertions, patterns)
If any tier fails, lower tiers are not evaluated.

What’s Next

Agent Configuration

Advanced agent config: timeouts, environment, multiple agents

CLI Reference

All commands: run, resume, compare, list, grade

Jury System

How benchmarks are graded: tiers, policies, custom judges