Skip to main content
This project has moved to markpollack/agent-judge. Current documentation is at lab.pollack.ai/projects/agent-judge. The content below may be outdated.
Incubating Status GitHubMaven Central

Overview

Agent Judge is an agent-agnostic evaluation framework for verifying AI agent task completion. It provides a pluggable architecture with deterministic rules, command execution, and LLM-powered evaluation - all with zero coupling to any specific agent implementation. The library follows a clean separation of concerns: agent-judge-core has zero external dependencies, while specialized modules add capabilities like process execution (agent-judge-exec) and LLM evaluation (agent-judge-llm).

Core Abstractions

Judge

Functional interface for evaluation logic - takes JudgmentContext, returns Judgment

Judgment

Result containing Score, JudgmentStatus, reasoning, and granular Checks

Score

Sealed interface: BooleanScore, NumericalScore, or CategoricalScore

Jury

Multi-judge aggregation with configurable voting strategies

Module Structure

Quick Start

Maven BOM

Judge Interface

The core Judge interface is a functional interface for lambda support:
Async and Reactive Variants:

Judgment Context

Complete evaluation input with all context an agent execution:
ExecutionStatus values: SUCCESS, FAILED, TIMEOUT, CANCELLED, UNKNOWN

Judgment Results

JudgmentStatus values: PASS, FAIL, ABSTAIN, ERROR

Checks (Sub-Assertions)

Provide granular failure reporting:

Score Types

Simple pass/fail scoring:
Continuous scoring with bounds and normalization:
Discrete categories from an allowed set:
The Scores utility class converts between score types for heterogeneous aggregation.

Built-in Judges

Deterministic Judges (agent-judge-core)

Verifies file existence:
Verifies file content with match modes:
Build rule-based judges:

Command Judges (agent-judge-exec)

Execute shell commands and evaluate results:
Specialized for build tools with wrapper auto-detection:
Default timeout: 10 minutes.

LLM Judges (agent-judge-llm)

Uses LLM to evaluate if the agent accomplished its goal:
Uses template method pattern for customization.
Build custom LLM-powered evaluation:

Agent Judges (agent-judge-agent)

Delegate evaluation to an AI agent using a bridge interface:

Judge Composition

The Judges utility class provides composition operators:

Jury System

Combine multiple judges with voting strategies:

Voting Strategies

Majority Voting Policies:

Jury Utilities

Utilities

MavenTestRunner

Run Maven tests with wrapper auto-detection:

JaCoCoReportParser

Parse JaCoCo XML reports for coverage metrics:

Spring AI Agents Integration

Agent Judge powers the evaluation system in Agent Client:

Resources

GitHub Repository

Source code and contribution guidelines

Maven Central

Published artifacts

License

Agent Judge is Open Source software released under the Apache 2.0 license.