Bracket: Eine Python-Bibliothek, die die Ausführungsintegrität von LLM-Agenten vertragsbasiert bewertet
(github.com/dybala-21)LLM-Agenten melden mitunter: „Datei gelesen“ oder „Tests ausgeführt“, obwohl sie diesen Schritt tatsächlich übersprungen haben. Agent-Frameworks wie LangGraph oder Google ADK führen Ausführungen zwar zuverlässig durch, prüfen aber nicht, ob die erforderlichen Schritte wirklich durchlaufen wurden.
Bracket ist eine kleine Python-Bibliothek, die genau diese Lücke schließt. Während der Ausführung sammelt sie Belege (Dateilesen, Dateiänderungen, Befehlsausführung, LLM-Aufrufe usw.) und gleicht diese mit vorab definierten Vertragsbedingungen ab, um maschinell über pass/fail zu entscheiden. Nicht ein LLM trifft die Entscheidung, sondern in Code definierte Regeln.
Probleme, die gelöst werden
- Erkennt Fälle, in denen ein Agent vorgibt, eine Datei geändert zu haben, ohne sie überhaupt gelesen zu haben (read-before-write)
- Erzwingt die Einbindung von Verifizierungsschritten wie „Testlauf bestanden“ in die Pipeline
- Speichert Ausführungslogs, sodass vergangene Ausführungen neu bewertet werden können (replay), wenn sich die Bewertungsregeln ändern
- Vereinheitlicht die Verifizierungslogik, wenn mehrere Frameworks gemischt eingesetzt werden
Integrierte Profile
- code_change - read-before-write, file changed, verification command erforderlich
- research - file read, web fetch, grounding evidence
- file_task - file changed, artifact emitted
- text_answer - grounding evidence
Alle Profile enthalten die Bedingungen „intent resolved“ und „keine hard failures“.
Zielgruppe und Nutzen
- Entwickler, die Agent-Pipelines in Produktion bringen müssen: Bedingungen wie „tests pass“ werden als explizite Verträge definiert, um Regressionen zu verhindern
- Teams, die mehrere Agent-Frameworks vergleichen und evaluieren: Durch Adapter für LangChain/LangGraph/Google ADK bleiben dieselben Bewertungskriterien auch bei einem Framework-Wechsel erhalten
- Betreiber von Eval-/Regression-Pipelines: Frühere Ausführungen lassen sich über JSON-Logs in
.bracket/runs/*gesammelt neu bewerten
Installation und Beispiel
pip install bracket
from bracket import Harness, ExecutionContract
contract = ExecutionContract.code_change(goal="Fix failing test")
harness = Harness(app_name="my-agent", artifact_dir=".bracket")
run = harness.start_run(contract)
run.record_file_read("app.py", byte_count=1842)
run.record_file_changed("app.py")
run.record_command("pytest tests/", exit_code=0, kind="verification")
result = harness.finish_run_sync(run, final_output="Fixed the bug.")
print(result.verdict.outcome) # VERIFIED / BLOCKED / PARTIAL
Python 3.12+, der Kern hat keine externen Abhängigkeiten. Adapter für LangChain/LangGraph/Google ADK sind optional per extras installierbar.
Worauf Bracket bewusst verzichtet
- Kein Ersatz für ein Agent-Framework (wird zusammen mit LangGraph usw. verwendet)
- Keine Guardrails (keine Ein-/Ausgabefilterung, sondern Verifikation des Ausführungsprozesses)
- Kein Observability-Tool (kein Log-Viewer, sondern ein pass/fail-Bewerter)
- Keine Eval-Plattform (keine Bewertung der Antwortqualität, sondern Verifikation der Ausführungsintegrität)
Noch keine Kommentare.