Eval-harness: regressietests voor LLM-apps en agents in CI

We draaien deze harness bij elke wijziging in een prompt, model of tool in de AI-systemen die we bouwen. Hij scoort je testset met deterministische checks en checks door een model, vergelijkt het resultaat met de vorige release en laat de build falen als de kwaliteit daalt.

Wat erin zit.

Hoe het in elkaar zit.

  1. 01

    Laden

    De runner leest de testsets en de configuratie van de prompt, het model en de tools die je test.

  2. 02

    Draaien

    Elke case gaat via een kleine adapter naar je applicatie, met limieten op gelijktijdige aanroepen en retries bij fouten van de provider.

  3. 03

    Beoordelen

    Eerst draaien de deterministische checks. Cases die slagen, gaan naar de modelbeoordelaar als er een rubric van toepassing is.

  4. 04

    Vergelijken

    Scores, kosten en latency worden vergeleken met de baseline, er komt een rapport en CI slaagt of faalt.

Een blik op de code.

De check aan het eind van een run: vergelijk elke suite met de baseline en laat CI falen bij een regressie.

Python
import json
import sys
from pathlib import Path

TOLERANCE = 0.02  # allowed drop in pass rate before the build fails

current = json.loads(Path("reports/current.json").read_text(encoding="utf-8"))
baseline = json.loads(Path("reports/baseline.json").read_text(encoding="utf-8"))

problems = []
for suite, result in current["suites"].items():
    base = baseline["suites"].get(suite)
    if base is None:
        continue
    if base["pass_rate"] - result["pass_rate"] > TOLERANCE:
        problems.append(f"{suite}: pass rate {result['pass_rate']:.1%} (baseline {base['pass_rate']:.1%})")
    new_critical = set(result["failed_critical"]) - set(base["failed_critical"])
    if new_critical:
        problems.append(f"{suite}: new critical failures {sorted(new_critical)}")

if problems:
    print("\n".join(problems))
    sys.exit(1)
print("No regressions against the baseline.")

Gebouwd met.

Alle technologie

Hoor het zodra hij openbaar is.

We maken de Eval-harness klaar voor publicatie. Je krijgt één e-mail zodra hij beschikbaar is, en af en toe onze notities.

Af en toe een e-mail, je kunt je altijd afmelden. Lees onze privacyverklaring.

Werk samen met Vantion.