
قياس الامتيازات المفتوحة في دفاعات الوكيل
يُبلّغ معيار أمان الوكلاء عن رقمين، نجاح الهجوم والمنفعة الحميدة، وكلاهما يُقرأ من عمليات جرت بالفعل. لا يقول أيٌّ منهما ما كان الدفاع مستعدًّا للسماح به على المسارات التي لم يسلكها أي تشغيل. يسأل Ajar عن ذلك مباشرةً: لكل مهمة حميدة يبني استدعاءات أدوات مرشّحة لا تحتاجها المهمة، ويعرض كلًّا منها على الدفاع عند كل نقطة يمكن للوكيل أن يتصرف فيها، ويحتسب الحصة الموزونة بالضرر التي يسمح بها الدفاع.
يرتبط بمعيار موجود بالفعل ويعيد استخدام ما يحمله ذلك المعيار بالفعل ليقيّم نفسه — مهامه، ومخططات أدواته، وحلوله المرجعية وحالات أهدافه — لذا يحتاج مضيف جديد إلى محوّل واحد ويحتاج دفاع جديد إلى غلاف واحد.
يصدّر المحوّل ما يحمله معيار المضيف بالفعل. يحوّل المولّد ذلك إلى استدعاءات مرشّحة عند كل نقطة قرار، ويعطي المُحكِّم كل مرشّح تصنيفه وطبقة الضرر الخاصة به، ويسلّم الغلاف كلًّا منها إلى مسار التنفيذ الخاص بالدفاع نفسه. تقارن التقييمات الأحكام مع التصنيفات.
ajar/core/ the intermediate form: candidates, probes, labels, harm tiers
ajar/adapters/ host-benchmark adapters; agentdojo/ is the reference one
ajar/generate/ the fault families that build candidate calls from a task
ajar/score/ leakage, sufficiency, over-restriction, attack admission
ajar/defenses/ Ajar's own reference baselines, from allow-all to an exact oracle
ajar/llm/ the model seam, for defenses and generators that call one
tests/
scripts/
git clone https://github.com/reSHARMA/Ajar.git
cd Ajar
pip install -e .
bash scripts/bootstrap.sh # reports what is present and what is missing
يقيّم Ajar مقابل معيار مضيف لا يضمّنه. بالنسبة للمحوّل المرجعي، وجّهه إلى نسخة AgentDojo:
git clone https://github.com/ethz-spylab/agentdojo.git bench/agentdojo
python scripts/export_probes.py --benchmark agentdojo
يكتب ذلك مجموعة الفحوص: المهام، والاستدعاءات المرشّحة المبنية منها، وتصنيف كل مرشّح وطبقة الضرر الخاصة به.
تسريب الصلاحيات الزائدة هو الحصة الموزونة بالضرر من الاستدعاءات الزائدة التي يسمح بها الدفاع. يحمل كل استدعاء زائد وزنًا ينمو مع ما يمكن أن يفعله إذا نُفّذ، من قراءة قابلة للعكس لحالة المستخدم نفسه إلى إجراء غير قابل للعكس على طرف ثالث أو على الأموال.
الكفاية هي حصة الاستدعاءات التي تحتاجها المهمة فعليًّا والتي يسمح الدفاع بمرورها. الإبلاغ عنها إلى جانب التسريب يمنع التلاعب بأيٍّ منهما: فالدفاع الذي يرفض كل شيء لا يسرّب شيئًا، والذي يسمح بكل شيء لا يرفض شيئًا تحتاجه المهمة.
يأتي معهما رقمان آخران. الفرط في التقييد يحتسب الاستدعاءات المستحقة التي يرفضها الدفاع، وقبول الهجوم يحتسب الهجمات التي يسمح بكل استدعاءات مصارفها.
ينفّذ الدفاع قرارًا واحدًا: بالنظر إلى استدعاء مقترح والاستدعاءات المنفّذة بالفعل،
اسمح به أو ارفضه. نفّذ ذلك مقابل ajar.defenses.base، وسجّله، وسيُبلّغ Ajar
عن الأرقام الأربعة كلها على نفس الفحوص التي يراها كل دفاع آخر.
يحتوي ajar/defenses/baselines.py على أربعة إجراءات مرجعية — السماح بالكل، وقائمة
أسماء أدوات مسموحة، ومُحكِّم مطابق للوسائط، والرفض للكل — وهي تحدّ المقياس من الطرفين
وتمنح دفاعًا جديدًا شيئًا يستقر بينهما.
MIT. انظر LICENSE.