
سقالة أبحاث المحاذاة (على غرار الأبحاث التلقائية) لحواجز نماذج اللغات الكبيرة: البحث عبر سطح سياسة واحدة policy.md
مصدر مفتوح من Santander AI Lab. مكتبة بحثية / أداة تقييم لأمان LLM/الذكاء الاصطناعي (على نمط autoresearch): تبحث في سطح وحيد قابل للتعديل
policy.mdلتقليل معدل نجاح الهجوم (ASR) مقابل مجموعة تقييم ثابتة، مع حد أدنى لتمرير الحالات الحميدة.
جزء من Santander AI Open Source — مشاريع ذكاء اصطناعي مفتوحة المصدر من Banco Santander (santander.com).
autoguardrails هو scaffold أبحاث محاذاة صغير مستوحى من autoresearch الخاص بـ Karpathy.
بدلاً من البحث في train.py، يبحث هذا المستودع في policy.md.
الفكرة هي نفسها:
في هذا المستودع، المقياس الرئيسي هو معدل نجاح الهجوم (ASR، الأقل أفضل)، مع حد أدنى لتمرير الحالات الحميدة حتى لا يفوز النظام برفض كل شيء.
بالنسبة للتجارب اليومية، هناك ثلاثة ملفات هي الأكثر أهمية:
program.md: التعليمات التي يملكها البشر للحلقةpolicy.md: الملف الوحيد الذي يجب تعديله بين عمليات التشغيلresults.tsv: سجل التشغيل الإضافي فقطكل شيء آخر هو كود أداة تقييم ثابت أو بيانات تقييم ثابتة.
policy.mdeval_suite.jsonljudge_prompt.mdautoguardrails/ASR ولم ينخفض تمرير الحالات الحميدة بأكثر من نقطتين مئويتينإذا كنت تريد نموذجًا ذهنيًا أقرب إلى autoresearch الأصلي، فاعتبر autoguardrails/ كطبقة مساعدة ثابتة وpolicy.md كالملف الوحيد الخاضع للبحث.
قم بالتشغيل من جذر المستودع.
python -m autoguardrails baseline --reset --repeat 2 --notes "initial baseline"
قم بتعديل policy.md فقط.
قم بتقييم المرشح الجديد.
python -m autoguardrails candidate --repeat 2 --notes "cover jailbreak and obfuscation"
python -m autoguardrails status
cat results.tsv
إذا تم رفض المرشح، يقوم الإطار تلقائيًا باستعادة policy.md إلى آخر نسخة مقبولة.
إذا كنت تفضل نقطة دخول واحدة، استخدم run_autoguardrails.sh:
sh run_autoguardrails.sh status
sh run_autoguardrails.sh evaluate
sh run_autoguardrails.sh baseline "initial baseline" 2
sh run_autoguardrails.sh candidate "cover jailbreak and obfuscation" 2
على Windows، شغّل الغلاف من Git Bash أو أي قشرة متوافقة مع POSIX.
الإعداد الافتراضي يستخدم نموذجًا محليًا حتميًا (stub) ليعمل المستودع دون اتصال. لتشغيل تجارب حقيقية، وجّه نموذج الهدف ونموذج القاضي إلى نقاط نهاية متوافقة مع OpenAI.
متغيرات نموذج الهدف:
AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatibleAUTOGUARDRAILS_TARGET_MODELAUTOGUARDRAILS_TARGET_API_BASEAUTOGUARDRAILS_TARGET_API_KEYمتغيرات نموذج القاضي:
AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatibleAUTOGUARDRAILS_JUDGE_MODELAUTOGUARDRAILS_JUDGE_API_BASEAUTOGUARDRAILS_JUDGE_API_KEYمثال:
export AUTOGUARDRAILS_TARGET_PROVIDER=openai_compatible
export AUTOGUARDRAILS_TARGET_MODEL=gpt-4.1-mini
export AUTOGUARDRAILS_TARGET_API_BASE=https://your-endpoint.example/v1
export AUTOGUARDRAILS_TARGET_API_KEY=your-target-key
export AUTOGUARDRAILS_JUDGE_PROVIDER=openai_compatible
export AUTOGUARDRAILS_JUDGE_MODEL=gpt-4.1-mini
export AUTOGUARDRAILS_JUDGE_API_BASE=https://your-endpoint.example/v1
export AUTOGUARDRAILS_JUDGE_API_KEY=your-judge-key
python -m autoguardrails baseline --reset --repeat 2 --notes "real-model baseline"
استخدم إعداد قاضي مجمّد خلال تسلسل التشغيل. لا تقم بتبديل موجهات القاضي أو نماذج القاضي في منتصف التجربة.
دورة محاكاة بسيطة دون اتصال بالإنترنت تبدو كالتالي:
policy.md.candidate.أحد الأمثلة على تغيير مرشح يحسن من النموذج المحلي المرفق هو إضافة معالجة صريحة لـ:
يمنحك هذا منحنى تحسين أولي واقعي دون تغيير أداة التقييم.
program.md: تعليمات التجربة وقيودهاpolicy.md: سياسة الحماية القابلة للتعديل الخاضعة للبحثjudge_prompt.md: موجه القاضي المجمّدeval_suite.jsonl: حالات التقييم الثابتة للهجوم والحميدةresults.tsv: سجل التشغيلrun_autoguardrails.sh: غلاف مناسب لواجهة سطر الأوامرautoguardrails/: إطار Python الثابتtests/: فحوصات الانحدار والأمان للإطارانظر autoguardrails/README.md لمعمارية الكود وtests/README.md لاستراتيجية الاختبار.
ruff، black، mypy، pytest، pytest-cov (انظر CONTRIBUTING.md).AUTOGUARDRAILS_* المذكورة أعلاه).نرحب بالمساهمات! يرجى قراءة إرشادات المساهمة وقواعد السلوك قبل البدء.
ruff check . و black --check . و mypy autoguardrails و pytest قبل فتح PR.policy.md هو السطح القابل للتعديل الوحيد؛ eval_suite.jsonl و judge_prompt.md مجمّدان.يرجى الإبلاغ عن الثغرات الأمنية بمسؤولية. راجع سياسة الأمان الخاصة بنا لمعرفة كيفية الإبلاغ (لا تفتح مشكلة عامة للثغرات). الاتصال: [email protected] أو استخدم تنبيهات أمان GitHub.
هذا البرنامج هو مشروع مفتوح المصدر من Santander AI Lab، يتم توفيره "كما هو" بموجب ترخيصه، دون ضمانات أو شروط من أي نوع. إنه ليس منتجًا أو خدمة رسمية من Banco Santander، ولا يحمل أي التزام بدعم إنتاجي، ولا يشكل نصيحة مالية أو قانونية أو مهنية.
"Santander" وشعارها هما علامتان تجاريتان مسجلتان لـ Banco Santander, S.A. لا يمنح ترخيص المشروع أي حق في استخدامهما بما يتجاوز الإسناد الواقعي.
إذا كنت تعتقد أنك وجدت ثغرة أمنية، اتبع سياسة الأمان الخاصة بنا — لا تفتح مشكلة عامة. أنت مسؤول عن تقييم مدى ملاءمة هذا البرنامج لحالة استخدامك وعن الحفاظ على تحديث عمليات النشر الخاصة بك.
هذا المشروع مرخص بموجب رخصة Apache 2.0 — راجع ملفي LICENSE و NOTICE للحصول على التفاصيل.
Copyright (c) 2026 Santander Group
SPDX-License-Identifier: Apache-2.0
إذا استخدمت autoguardrails في بحثك، يرجى الاقتباس منه:
@software{autoguardrails2026,
author = {{Santander AI Lab}},
title = {autoguardrails: an autoresearch-style guardrail policy loop},
year = {2026},
url = {https://github.com/SantanderAI/autoguardrails},
license = {Apache-2.0}
}