Fähigkeit „Agent-Eval“
Ein leichtgewichtiges CLI-Tool zum direkten Vergleich von Coding-Agenten auf reproduzierbaren Aufgaben. Jeder „Welcher Coding-Agent ist der beste?“-Vergleich basiert auf Bauchgefühl – dieses Tool systematisiert ihn.
Wann zu aktivieren
- Vergleich von Coding-Agenten (Claude Code, Aider, Codex usw.) in Ihrer eigenen Codebasis
- Messung der Agentenleistung vor der Einführung eines neuen Tools oder Modells
- Durchführung von Regressionstests, wenn ein Agent sein Modell oder seine Werkzeuge aktualisiert
- Datengestützte Entscheidungen zur Agentenauswahl für ein Team
Installation
Hinweis: Installieren Sie Agent-Eval aus seinem Repository, nachdem Sie den Quellcode überprüft haben.
Kernkonzepte
YAML-Aufgabendefinitionen
Definieren Sie Aufgaben deklarativ. Jede Aufgabe legt fest, was zu tun ist, welche Dateien berührt werden und wie der Erfolg bewertet wird:
name: add-retry-logic
description: Exponentielles Backoff-Retry zum HTTP-Client hinzufügen
repo: ./my-project
files:
- src/http_client.py
prompt: |
Fügen Sie allen HTTP-Anfragen eine Retry-Logik mit exponentiellem Backoff hinzu.
Maximal 3 Wiederholungen. Anfangsverzögerung 1s, maximale Verzögerung 30s.
judge:
- type: pytest
command: pytest tests/test_http_client.py -v
- type: grep
pattern: "exponential_backoff|retry"
files: src/http_client.py
commit: "abc1234" # Auf spezifischen Commit festlegen für Reproduzierbarkeit
Git-Worktree-Isolation
Jeder Agentenlauf erhält seinen eigenen Git-Worktree – kein Docker erforderlich. Dies gewährleistet Reproduzierbarkeit und Isolation, sodass Agenten sich nicht gegenseitig beeinflussen oder das Basis-Repository beschädigen können.
Erfasste Metriken
| Metrik | Was wird gemessen |
|---|---|
| Bestehensrate | Hat der Agent Code erzeugt, der die Prüfung besteht? |
| Kosten | API-Ausgaben pro Aufgabe (sofern verfügbar) |
| Zeit | Wanduhrzeit bis zum Abschluss in Sekunden |
| Konsistenz | Bestehensrate über mehrere Läufe (z.B. 3/3 = 100 %) |
Arbeitsablauf
1. Aufgaben definieren
Erstellen Sie ein Verzeichnis tasks/ mit YAML-Dateien, eine pro Aufgabe:
mkdir tasks
# Aufgabendefinitionen schreiben (siehe Vorlage oben)
2. Agenten ausführen
Führen Sie Agenten gegen Ihre Aufgaben aus:
agent-eval run --task tasks/add-retry-logic.yaml --agent claude-code --agent aider --runs 3
Jeder Lauf:
- Erstellt einen neuen Git-Worktree aus dem angegebenen Commit
- Übergibt die Eingabeaufforderung an den Agenten
- Führt die Prüfkriterien aus
- Zeichnet Bestehen/Fehlschlag, Kosten und Zeit auf
3. Ergebnisse vergleichen
Generieren Sie einen Vergleichsbericht:
agent-eval report --format table
Aufgabe: add-retry-logic (3 Läufe pro Agent)
┌──────────────┬───────────┬────────┬────────┬─────────────┐
│ Agent │ Bestehensrate │ Kosten │ Zeit │ Konsistenz │
├──────────────┼───────────┼────────┼────────┼─────────────┤
│ claude-code │ 3/3 │ $0.12 │ 45s │ 100% │
│ aider │ 2/3 │ $0.08 │ 38s │ 67% │
└──────────────┴───────────┴────────┴────────┴─────────────┘
Prüftypen
Codebasiert (deterministisch)
judge:
- type: pytest
command: pytest tests/ -v
- type: command
command: npm run build
Musterbasiert
judge:
- type: grep
pattern: "class.*Retry"
files: src/**/*.py
Modellbasiert (LLM als Richter)
judge:
- type: llm
prompt: |
Implementiert diese Implementierung korrekt exponentielles Backoff?
Überprüfen Sie auf: maximale Wiederholungen, zunehmende Verzögerungen, Jitter.
Best Practices
- Beginnen Sie mit 3–5 Aufgaben, die Ihre tatsächliche Arbeitslast repräsentieren, keine Spielzeugbeispiele
- Führen Sie mindestens 3 Durchläufe pro Agent durch, um die Varianz zu erfassen – Agenten sind nicht deterministisch
- Legen Sie den Commit in Ihrer Aufgaben-YAML fest, damit die Ergebnisse über Tage/Wochen reproduzierbar sind
- Fügen Sie mindestens einen deterministischen Prüfer (Tests, Build) pro Aufgabe hinzu – LLM-Prüfer erhöhen das Rauschen
- Verfolgen Sie die Kosten zusammen mit der Bestehensrate – ein 95 %-Agent bei 10-fachen Kosten ist möglicherweise nicht die richtige Wahl
- Versionieren Sie Ihre Aufgabendefinitionen – sie sind Testvorrichtungen, behandeln Sie sie wie Code
Links
- Repository: github.com/joaquinhuigomez/agent-eval