LLM Eval Harness is a lightweight, framework-agnostic evaluation tool for agents and LLM pipelines. It is designed for QA engineers who want to move beyond ad-hoc prompts and into reproducible, CI-friendly test suites.

Goals

  • Reproducible evals: define tasks as data, not as one-off scripts.
  • Scoring functions: support exact, fuzzy, and LLM-as-judge scoring.
  • Regression tracking: compare scores across model versions, prompts, and code changes.
  • CI integration: exit codes and JSON reports for TeamCity, GitHub Actions, and GitLab CI.

Core concepts

Task

A task is a user request plus a ground-truth expectation:

interface Task {
  id: string;
  prompt: string;
  expectedTool?: string;
  expectedArgs?: Record<string, unknown>;
  expectedOutput?: string;
}

Evaluator

An evaluator scores the agent's result against the task. It returns a score between 0 and 1 and a human-readable reason.

type Evaluator = (result: AgentResult, task: Task) => {
  score: number;
  pass: boolean;
  reason: string;
};

Report

After running the suite, the harness produces a JSON report and a markdown summary:

Overall: 0.84
├─ tool-call accuracy: 0.92
├─ task success: 0.78
└─ hallucination rate: 0.03

Roadmap

  • Publish initial TypeScript package
  • Add CLI with config file support
  • Add built-in evaluators for common LLM tasks
  • Add GitHub Actions example

This project is in the design phase. If you want to collaborate, reach out on LinkedIn or Telegram.