Was macht prototypebench?
Offener Benchmark für KI-Codierungsagenten zum Ausliefern von Full-Stack-Features (React+Vite+Tailwind/FastAPI+SQLModel). 71 aus PRs abgeleitete Aufgaben · 32k Tests · ausführungsbasierte Bewertung (pytest+Playwright) · ohne LLM als Richter.
Übersicht
Dieser Benchmark bietet eine standardisierte Umgebung zur Bewertung von KI-Codierungsagenten beim Implementieren vollständiger Full-Stack-Features. Jede Aufgabe basiert auf einem realen Pull-Request und erfordert das Hinzufügen einer neuen Funktionalität über die gesamte Codebasis hinweg.
Hauptmerkmale
- 71 Aufgaben: Abgeleitet aus echten Pull-Requests von Open-Source-Repositorys
- 32.000+ Tests: Umfassende Testabdeckung für Frontend und Backend
- Ausführungsbasierte Bewertung: Verwendet pytest und Playwright statt subjektiver LLM-Bewertungen
- Moderne Stacks:
- Frontend: React + Vite + Tailwind CSS
- Backend: FastAPI + SQLModel
Unterstützte Plattformen
Dieser Benchmark kann mit jedem KI-Codierungsagenten verwendet werden, der:
- Code in ein lokales Repository schreiben kann
- Eine Terminal-Umgebung zum Ausführen von Tests bereitstellt
- Mit Git-Repositorys interagieren kann
Einrichtung
-
Repository klonen:
git clone https://github.com/prototypebench/prototypebench.git cd prototypebench -
Abhängigkeiten installieren:
pip install -r requirements.txt npm install -
Tests ausführen:
pytest backend/tests/ npx playwright test frontend/tests/
Aufgaben
Jede Aufgabe befindet sich im Verzeichnis tasks/ mit:
README.md: Aufgabenbeschreibungprompt.md: Anweisungen für den KI-Agententests/: Testspezifische Testfälle
Bewertungsmetrik
Die Bewertung erfolgt anhand folgender Kriterien:
- Testdurchlauf: Alle Tests bestehen (pytest für Backend, Playwright für Frontend)
- Codequalität: Der generierte Code entspricht den Projektstandards
- Feature-Vollständigkeit: Das Feature ist vollständig implementiert gemäß den Anforderungen
Beispiel
# Beispiel für eine Aufgabe
class Task:
def __init__(self, id, description, repository, tests):
self.id = id
self.description = description
self.repository = repository
self.tests = tests
Beitrag leisten
Beiträge sind willkommen! Bitte lesen Sie CONTRIBUTING.md für Details.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe LICENSE für Details.