
Z3 प्रमेय सिद्धांत, CTL मॉडल जाँच, और प्रमाणित रूप से सही डेटा निष्कर्षण के लिए कंफर्मल भविष्यवाणी के माध्यम से औपचारिक सत्यापन के साथ LLM वर्कफ़्लो को स्टेट मशीन के रूप में बनाने के लिए पायथन फ्रेमवर्क।
साबित करें कि आपका AI एजेंट injection-safe, in-spec है, और सीमाओं से बाहर नहीं जाएगा — इसे शिप करने से पहले।
LLM एजेंट्स के लिए एक design-time verifier — runtime guardrail नहीं। अपने LangGraph / CrewAI / AutoGen / MCP एजेंट को import करें और Aura उस एजेंट के बारे में पाँच बातें साबित करता है जो आपने पहले ही लिखा है, फिर आपको सटीक counterexample या एक certificate देता है। Z3 · CTL model checking · information-flow/taint · conformal calibration। लोकली चलता है, CI में, कोई API key नहीं।
एक design verify करें → उसके code से एक असली एजेंट import करें → lethal trifecta सटीक path के साथ प्रकाशित होता है → एक baseline सेव करें और gate regressions करें। · ▶ पूरा walkthrough देखें
pip install aura-state # or: uv pip install aura-state · uv add aura-state
$ aura-state demo # no keys, no config, no agent of your own needed
aura-state check · support-ticket-agent · 4 nodes
✗ trifecta [send]: lethal trifecta closed — prompt injection at 'fetch' (untrusted)
can reach external sink 'send' unsanitized while 'draft' brings private data into
scope. Path: fetch → lookup → draft → send. Break it with a sanitizer between
'fetch' and 'send', or remove one of the three capabilities.
✗ NOT PROVEN — 1 blocking finding(s) # exit 1 → CI fails
checked: trifecta closed · taint proven · reachability proven · obligations proven · policy 0 flagged
प्रॉम्प्ट इंजेक्शन उनमें से केवल एक है।
| गुण | सरल शब्दों में | |
|---|---|---|
| 🔒 | सुरक्षित — taint + lethal trifecta | डेटा लीक करने के लिए बहकाया नहीं जा सकता |
| ✅ | सही — Z3/SMT obligations | आउटपुट आपके नियमों का पालन करते हैं (amount ≤ limit) |
| ♻️ | जीवंत — CTL model checking | समाप्त होता है, हर चरण पहुँच योग्य है, कोई डेड एंड नहीं |
| 📊 | कैलिब्रेटेड — split-conformal intervals | जानता है कि वह वास्तव में कितना आश्वस्त है |
| 🛑 | शासित — risk-controlled abstention | अनिश्चित होने पर कार्य करने से इनकार कर देता है |
aura-state check my_agent.json # a studio export
aura-state check your_agent.py # a LangGraph / CrewAI / AutoGen source file — parsed, never executed
aura-state check ./my-agent-repo/ # a whole directory
uvx aura-state check agents/*.json # zero-install via uv — perfect for CI
त्रिफेक्टा से परे, check यह भी सिद्ध करता है:
"manifest": { "side_effects": ["read"] } जोड़ें:
✗ least-privilege [Pay]: 'Pay' can external 'payment.charge', outside the declared manifest
~/.cursor/mcp.json and pass it as a parameter")। स्थिर — यह कभी किसी सर्वर से कनेक्ट नहीं होता।इसे सिद्ध करें — फिर सिद्धांत को सिद्ध करें। एक सत्यापन योग्य प्रमाणपत्र जारी करें और इसे जारीकर्ता पर भरोसा किए बिना पुनः जाँचें:
aura-state certify your_agent.py --out cert.json # design + verdict, content-hashed
aura-state verify-cert cert.json # re-runs the verifier — catches any tamper
EU AI Act Art. 12 / ISO 42001 (साक्ष्य, केवल दस्तावेज़ीकरण नहीं) से मैप होता है।
इसे बेंचमार्क करें। aura-state bench एक लेबल किए गए कॉर्पस को चलाता है (safe/vulnerable जोड़ों पर सटीकता — sound, इसलिए recall निर्माण से 100% है; मापी गई संख्या precision है) साथ ही वास्तविक MCP/framework एजेंट्स पर import coverage जिन्हें बिना संशोधन के ingest किया गया है।
Pre-execution एजेंट verifiers मौजूद हैं — लेकिन प्रत्येक एक काम करता है और आपको अपने एजेंट को उनके formalism में फिर से लिखने पर मजबूर करता है। Aura की बढ़त यह है कि यह वह shipped tool है जो आपके द्वारा पहले से लिखे गए एजेंट को ingest करता है और पूरा सेट चलाता है:
| Static (चलने से पहले)? | Security dataflow? | आपके वास्तविक एजेंट को import करता है? | |
|---|---|---|---|
| AgentProof | ✅ | ❌ केवल topology | ✅ |
| AgentFlow | ✅ | ✅ | ❌ इसका अपना policy DSL |
| FIDES (Microsoft) | ❌ runtime | ✅ | ❌ इसके साथ बनाया गया planner |
| Aura-State | ✅ | ✅ | ✅ LangGraph / CrewAI / AutoGen / MCP |
हमने इन विधियों का आविष्कार नहीं किया — शोध समृद्ध है और इसका कुछ हिस्सा हमसे अधिक कठोर है। हम वह हैं जिसे आप pip install करके आज अपने मौजूदा एजेंट पर लागू कर सकते हैं। और यह sound / fail-closed है: एक अज्ञात capability को advisory के रूप में सामने लाया जाता है, कभी चुपचाप पास नहीं किया जाता।
इसे CI में डालें और हर PR जाँचा जाता है:
# .github/workflows/aura.yml
- uses: your-org/aura-state@v0
with: { paths: "agents/*.json" }
घातक त्रयी एक टूल-उपयोग करने वाले एजेंट के लिए सबसे डरावना विफलता मोड है: जिस क्षण वह (1) निजी डेटा पढ़ सकता है, (2) अविश्वसनीय सामग्री ग्रहण कर सकता है, और (3) बाहरी रूप से संवाद कर सकता है — सब एक ही पहुँच योग्य पथ पर — उस सामग्री में छिपा एक प्रॉम्प्ट इंजेक्शन आपका डेटा पढ़ सकता है और उसे बाहर भेज सकता है। हर कोई इसके बारे में चेतावनी देता है। Aura साबित करता है कि आपका एजेंट इसे बंद नहीं कर सकता, स्थिर रूप से, आपके शिप करने से पहले:
$ aura-state check dev_assistant.tools.json # ← your MCP tools/list export
✗ trifecta [slack_post_message]: lethal trifecta closed — prompt injection at 'fetch'
(untrusted) can reach external sink 'slack_post_message' unsanitized while 'read_file'
brings private data into scope. Path: fetch → Agent → slack_post_message.
Break it with a sanitizer between 'fetch' and 'slack_post_message'.
इसे सीधे अपने MCP सेटअप पर लक्षित करें। अपने एजेंट का tools/list निर्यात करें (या इसे अपना क्लाइंट कॉन्फ़िग सौंपें) और Aura सबसे बुरे परिदृश्य का मॉडल बनाता है — LLM किसी भी क्रम में किसी भी टूल को कॉल कर सकता है — फिर तय करता है कि क्या fetch + filesystem + slack मिलकर एक exfiltration चैनल बनाते हैं। यह कभी किसी सर्वर से कनेक्ट या उसे रन नहीं करता।