
إطار عمل Defender لأمن وكلاء 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 منزوعة التكرار، وبيئات قابلة لإعادة الاستخدام، وارتباطات حالات صريحة. وبذلك فإن اختبارًا معياريًا يضم مئات الحالات لا يكرّر بيانات تعريف أداة متطابقة مئات المرات. تحتفظ كل وحدة بمخطط الإدخال/الإخراج الدقيق، وeffect، وobservation، وeffect_return، ودور الإيصال، والتعليقات التوضيحية المُنمّطة. وتسجّل كل بيئة على حدة المصادر، والمهارات، وagent_visible_surface.
تُحفظ مُدخلات المصدر المدقّقة الدقيقة من تنفيذ التجربة تحت benchmark/registry/source/. وتقوم خطوة البناء بتطبيع تلك التسجيلات الموجودة ونزع تكرارها؛ ولا تستنتج دلالات قدرات جديدة من مطالبات الاختبار المعياري. أعد توليد جميع الآثار النهائية باستخدام:
pip install -e '.[registry]'
python scripts/build_registry_manifests.py
python scripts/audit_registry_coverage.py
لتحديث واصفات الحالات المُحزَّمة من نسخ upstream المحلية، شغّل:
python scripts/import_benchmark_data.py \
--research-root <research-checkout> \
--scr-root <SCR_Bench-checkout>
يتحقق مستورد SCR من الـ commit المثبّت قبل اشتقاق فهرسه المدمج لتعرض الحالات/المهارات.
TaskContractor طلب المستخدم الموثوق في عقد مهمة.تظل الفحوصات الحتمية مستقلة عن النموذج المستهدف. تُقدِّم الأدوار المدعومة بالنموذج مرشّحين مُنمّطين يجب أن يجتازوا نفس حدود التحقق.
يُعرِّف baseline/registry.py طرق المقارنة الـ 13. لكل طريقة مجلد
مخصص يحمل اسم الطريقة ونقطة دخول implementation.py.
تُستورد التبعيات التي تمتلك بيئة تشغيل خاصة بها بشكل كسول حتى يمكن اختبار
نواة APEX ومحوّلات البيانات دون تثبيت جميع بيئات المعايير.
python -m compileall -q src benchmark baseline tests
pytest
قبل الإصدار، شغّل أيضًا فحوصات إخفاء الهوية الموجودة في ANONYMITY.md. لا ينبغي إضافة أي بيانات اعتماد، أو ملفات نتائج، أو مسارات خاصة بالجهاز، أو Git remotes، أو بيانات وصفية للمؤلف إلى الطلب المقدَّم.