
LLM एजेंट सुरक्षा के लिए डिफेंडर फ्रेमवर्क जो कार्य अनुबंधों को संकलित करता है, क्षमता मैनिफेस्ट को मान्य करता है, और बेंचमार्क हमले के मामलों के विरुद्ध PLANT/WRAP प्रमाण जाँच के माध्यम से प्रभावों की जाँच करता है।
रिपॉज़िटरी APEX डिफ़ेंडर, बेंचमार्क डेटा नॉर्मलाइज़ेशन, विश्वसनीय क्षमता मैनिफ़ेस्ट, और तुलना-विधि इंटीग्रेशन को अलग करती है ताकि प्रत्येक परत का स्वतंत्र रूप से निरीक्षण किया जा सके।
python -m venv .venv
source .venv/bin/activate
pip install -e '.[test]'
export PYTHONPATH="$PWD/src:$PWD"
मॉडल-आधारित घटक पर्यावरण से OPENAI_API_KEY और वैकल्पिक
OPENAI_BASE_URL पढ़ते हैं। .env.example को केवल संदर्भ के रूप में कॉपी करें;
कोड स्थानीय क्रेडेंशियल फ़ाइलें नहीं पढ़ता है।
| पथ | ज़िम्मेदारी |
|---|---|
src/apex/defender/ | APEX कार्य अनुबंध, टाइप्ड बाइंडिंग, रसीदें, प्रूफ जाँच, PLANT, WRAP, और निरंतरता प्रबंधन |
src/apex/core/ | साझा प्रोटोकॉल, परिणाम प्रकार, एग्रीगेशन, और प्रदाता-तटस्थ मॉडल सीमा |
benchmark/adapter/ | बेंचमार्क रिलीज़ का एक BenchmarkCase इंटरफ़ेस में केवल-पढ़ने योग्य रूपांतरण |
benchmark/registry/ | विश्वसनीय क्षमता पंजीकरण और बेंचमार्क-विशिष्ट मैनिफ़ेस्ट |
baseline/<name>/ | प्रति तुलना विधि एक कार्यान्वयन या रनटाइम एकीकरण |
tests/ | रिपॉज़िटरी अपरिवर्तनीय और तेज़ यूनिट जाँच |
घटक प्रवाह और एक्सटेंशन बिंदुओं के लिए STRUCTURE.md देखें।
सभी छह बेंचमार्क के लिए संक्षिप्त फ़्रोज़न केस विवरणक benchmark/data/ के अंतर्गत
शामिल हैं। पूर्ण अपस्ट्रीम रिपॉज़िटरी और रनटाइम सैंडबॉक्स वेंडर नहीं किए गए हैं।
None पास करने पर पैकेज्ड डेटा चुना जाता है; एक स्पष्ट data_root अभी भी इसे ओवरराइड कर सकता है।
from benchmark.adapter import adapter_for
adapter = adapter_for("scr", None)
attack_cases = list(adapter.cases("attack"))
The adapter केस पहचानकर्ताओं, split लेबल, suite लेबल, पात्रता और benchmark runtime को प्रस्तुत payload का स्वामित्व रखता है। यह benchmark सामग्री को परिवर्तित नहीं करता या tool authority को पंजीकृत नहीं करता।
from benchmark.registry import module_for
registry = module_for("mcptox")
environment_plan = registry.load("12306-mcp")
Capability मैनिफ़ेस्ट को डेटासेट एडाप्टर से अलग रखा जाता है क्योंकि बेंचमार्क टेक्स्ट अविश्वसनीय एपिसोड इनपुट है, जबकि मैनिफ़ेस्ट ऑपरेटर के स्वामित्व वाली निष्पादन सीमा का वर्णन करता है जो एपिसोड से पहले उपलब्ध होती है।
प्रत्येक benchmark/registry/data/<benchmark>/manifest.json एक अंतिम रजिस्ट्री आर्टिफ़ैक्ट है जो apex-benchmark-registry-v2 का उपयोग करता है। एक बंडल डीडुप्लिकेटेड capability_units, पुन: प्रयोज्य एनवायरनमेंट, और स्पष्ट केस बाइंडिंग संग्रहीत करता है। इस प्रकार, सैकड़ों केस वाला एक बेंचमार्क एक समान Tool मैनिफ़ेस्ट को सैकड़ों बार डुप्लिकेट नहीं करता है। प्रत्येक यूनिट सटीक इनपुट/आउटपुट स्कीमा, effect, observation, effect_return, रसीद भूमिका, और टाइप्ड एनोटेशन को बनाए रखता है। प्रत्येक एनवायरनमेंट अलग से स्रोत, Skills, और agent_visible_surface रिकॉर्ड करता है।
प्रयोग कार्यान्वयन से सटीक ऑडिट किए गए स्रोत इनपुट benchmark/registry/source/ के अंतर्गत रखे गए हैं। बिल्ड चरण उन मौजूदा रजिस्ट्रेशनों को सामान्यीकृत और डीडुप्लिकेट करता है; यह बेंचमार्क प्रॉम्प्ट से नई क्षमता अर्थ-विज्ञान का अनुमान नहीं लगाता है। सभी अंतिम आर्टिफ़ैक्ट को इसके साथ पुन: उत्पन्न करें:
pip install -e '.[registry]'
python scripts/build_registry_manifests.py
python scripts/audit_registry_coverage.py
स्थानीय अपस्ट्रीम चेकआउट से पैकेज किए गए केस डिस्क्रिप्टर को रीफ़्रेश करने के लिए, चलाएँ:
python scripts/import_benchmark_data.py \
--research-root <research-checkout> \
--scr-root <SCR_Bench-checkout>
SCR आयातकर्ता अपना कॉम्पैक्ट case/Skill एक्सपोज़र इंडेक्स प्राप्त करने से पहले पिन किए गए कमिट को सत्यापित करता है।
TaskContractor विश्वसनीय उपयोगकर्ता अनुरोध को एक टास्क कॉन्ट्रैक्ट में संकलित करता है।नियतात्मक जाँचें लक्ष्य मॉडल से स्वतंत्र रहती हैं। मॉडल-समर्थित भूमिकाएँ टाइप्ड उम्मीदवार जमा करती हैं जिन्हें समान सत्यापन सीमा से गुजरना होता है।
baseline/registry.py 13 तुलना विधियों को परिभाषित करता है। प्रत्येक विधि का विधि के नाम पर एक समर्पित फ़ोल्डर और एक implementation.py प्रवेश बिंदु है। अपने स्वयं के रनटाइम वाली निर्भरताएँ आलसी रूप से आयात की जाती हैं ताकि APEX कोर और डेटा एडाप्टरों का परीक्षण सभी बेंचमार्क वातावरणों को स्थापित किए बिना किया जा सके।
python -m compileall -q src benchmark baseline tests
pytest
रिलीज़ से पहले, ANONYMITY.md में दिए गए गुमनामी जाँचों को भी चलाएँ। सबमिशन में कोई भी क्रेडेंशियल, परिणाम फ़ाइलें, मशीन-विशिष्ट पथ, Git रिमोट, या लेखक मेटाडेटा नहीं जोड़ा जाना चाहिए।