Bracket : contract-आधारित तरीके से LLM agent execution completeness को जज करने वाली Python लाइब्रेरी
(github.com/dybala-21)LLM agent अक्सर "फ़ाइल पढ़ ली", "टेस्ट चला लिए" जैसी रिपोर्ट देते हैं, लेकिन वास्तव में कभी-कभी वे उन स्टेप्स को छोड़ देते हैं। LangGraph, Google ADK जैसे agent frameworks execution तो अच्छी तरह कराते हैं, लेकिन यह verify नहीं करते कि ज़रूरी स्टेप्स वास्तव में पूरे हुए या नहीं.
Bracket इस गैप को भरने वाली एक छोटी Python लाइब्रेरी है। यह execution के दौरान evidence इकट्ठा करती है—जैसे फ़ाइल पढ़ना, फ़ाइल बदलना, command चलाना, LLM call आदि—और उन्हें पहले से परिभाषित contract conditions से मिलाकर pass/fail का machine-based फ़ैसला देती है। फ़ैसला LLM नहीं करता; code में परिभाषित rules करते हैं.
यह जिन समस्याओं को हल करता है
- ऐसे मामलों को पकड़ता है जहाँ agent ने फ़ाइल पढ़े बिना ही उसे modify करने का दावा किया हो (read-before-write)
- "test pass की पुष्टि" जैसे verification steps को pipeline में अनिवार्य रूप से inject करता है
- execution logs को store करके रखता है और जब judgment rules बदलें तो पुराने runs को फिर से judge (replay) किया जा सकता है
- कई frameworks को साथ में इस्तेमाल करने पर verification logic को एक जगह standardize करता है
अंतर्निहित प्रोफ़ाइल
code_change- read-before-write, file changed, verification command अनिवार्यresearch- file read, web fetch, grounding evidencefile_task- file changed, artifact emittedtext_answer- grounding evidence
सभी profiles में "intent resolved" और "hard failure नहीं" की conditions शामिल हैं.
लक्षित उपयोगकर्ता और प्रभाव
- वे developers जिन्हें agent pipeline को production में डालना है: "tests pass" जैसी शर्तों को explicit contract बनाकर regression से बचाव
- कई agent frameworks की तुलना और evaluation कर रही teams: LangChain/LangGraph/Google ADK adapters उपलब्ध हैं, इसलिए framework बदलने पर भी वही judgment criteria बनाए रखे जा सकते हैं
- Eval/regression pipeline operators:
.bracket/runs/*JSON logs के आधार पर पुराने executions का bulk re-judgment संभव
इंस्टॉलेशन और उदाहरण
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+, core में कोई external dependency नहीं। LangChain/LangGraph/Google ADK adapters extras के रूप में वैकल्पिक installation के लिए उपलब्ध हैं.
Bracket किन चीज़ों से बचता है
- यह agent framework का replacement नहीं है (LangGraph आदि के साथ इस्तेमाल किया जाता है)
- यह Guardrails नहीं है (input/output filtering नहीं, बल्कि execution process verification)
- यह Observability tool नहीं है (log viewer नहीं, बल्कि pass/fail judge)
- यह Eval platform नहीं है (response quality नहीं, बल्कि execution completeness verification)
अभी कोई टिप्पणी नहीं है.