
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"))
एडाप्टर केस पहचानकर्ताओं, स्प्लिट लेबल, सूट लेबल, पात्रता, और बेंचमार्क रनटाइम को प्रस्तुत पेलोड का स्वामी है। यह बेंचमार्क सामग्री को नहीं बदलता या टूल प्राधिकार पंजीकृत नहीं करता।
from benchmark.registry import module_for
registry = module_for("mcptox")
environment_plan = registry.load("12306-mcp")
क्षमता मैनिफ़ेस्ट को डेटासेट एडाप्टर से अलग रखा जाता है क्योंकि बेंचमार्क टेक्स्ट अविश्वसनीय एपिसोड इनपुट है, जबकि मैनिफ़ेस्ट एपिसोड से पहले उपलब्ध ऑपरेटर-स्वामित्व वाली निष्पादन सीमा का वर्णन करता है।
प्रत्येक 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 इम्पोर्टर अपने कॉम्पैक्ट केस/Skill एक्सपोज़र इंडेक्स को प्राप्त करने से पहले पिन किए गए कमिट को सत्यापित करता है।
TaskContractor विश्वसनीय उपयोगकर्ता अनुरोध को एक कार्य अनुबंध में संकलित करता है।नियतात्मक जाँचें लक्ष्य मॉडल से स्वतंत्र रहती हैं। मॉडल-आधारित भूमिकाएँ टाइप्ड उम्मीदवार जमा करती हैं जिन्हें समान सत्यापन सीमा से गुजरना होता है।
baseline/registry.py 13 तुलना विधियों को परिभाषित करता है। प्रत्येक विधि का विधि के नाम पर एक समर्पित फ़ोल्डर और एक implementation.py प्रवेश बिंदु है। अपने स्वयं के रनटाइम वाली निर्भरताएँ आलसी रूप से आयात की जाती हैं ताकि APEX कोर और डेटा एडाप्टर सभी बेंचमार्क वातावरणों को इंस्टॉल किए बिना परीक्षण किए जा सकें।
python -m compileall -q src benchmark baseline tests
pytest
रिलीज़ से पहले, ANONYMITY.md में दी गई अनामता जाँचें भी चलाएँ। सबमिशन में कोई क्रेडेंशियल, परिणाम फ़ाइलें, मशीन-विशिष्ट पथ, Git रिमोट, या लेखक मेटाडेटा नहीं जोड़ा जाना चाहिए।