
محرك بحث عام للفضاء الحالاتي يعمل بالذكاء الاصطناعي، تم التحقق منه أولاً على الاختبار الاختراقي الذاتي.
Cairn هو محرك حل مشكلات عام الاستخدام.
لا يحدد أدوارًا أو سير عمل. يُعطى نقطة بداية وهدفًا، ويبحث عن مسار عبر فضاء حالة غير معروف.
اختبار اختراق الذكاء الاصطناعي هو أحد هذه المشكلات — وقد تم إثباته.
اختبار الاختراق هو في الأساس بحث موجه عبر فضاء حالة لا نهائي تقريبًا:
هذا الهيكل ليس فريدًا لاختبار الاختراق. أبحاث الثغرات، البراهين الرياضية، تحديات CTF — أي مشكلة ذات نقطة بداية واضحة، شرط نجاح واضح، ومسار غير معروف بينهما تشترك في نفس الشكل.
Cairn مصمم لهذه الفئة من المشكلات. اختبار الاختراق هو أول مجال تم التحقق من صحته فيه.
المحرك مبني على هندسة اللوحة السوداء مع رسم بياني صريح للحقائق والنوايا. يحتاج فقط إلى ثلاث بدائيات:
| المفهوم | المعنى |
|---|---|
| Fact | اكتشاف موضوعي مؤكد مكتوب على اللوحة |
| Intent | اتجاه مستكشف معلن، لم يُنفذ بعد |
| Hint | حكم بشري يُحقن في أي وقت؛ تمتصه الوكلاء في القراءة التالية |
ينمو الرسم البياني من origin نحو goal. كل Fact جديد هو حجر خطوة؛ كل Intent هو خطوة نحو المجهول.
وكلاء العامل (Agent Workers) يديرون حلقة OODA — لاحظ (Observe) الرسم البياني الكامل، توجه (Orient) إلى الحالة الحالية، قرر (Decide) النوايا التالية، تصرف (Act) للاستكشاف — ويكتبون نتائجهم كحقائق جديدة. ليس لدى العمال أدوار ثابتة. تُولد المهام في وقت التشغيل من الحالة الحالية للرسم البياني، وليس من توصيفات وظيفية محددة مسبقًا.
يتنسق الوكلاء حصريًا من خلال اللوحة المشتركة (Stigmergy). لا اتصال مباشر. لا صوامع معلومات.
https://github.com/user-attachments/assets/e557b1ac-dda4-41cb-87dd-9d56dbf05133
ثلاثة أنواع من المهام، جميعها ينفذها نفس العامل:
| المهمة | ما تفعله | المخرجات |
|---|---|---|
هندسة النظام:
┌──────────────────────────────────┐
│ خادم Cairn │
│ Facts + Intents + Hints │
└─────────────────┬────────────────┘
│
Read / Write API
│
┌─────────────────┴────────────────┐
│ الموزع (Dispatcher) │
│ يجدول المهام، يدير الحاويات، │
│ يكتب البروتوكول │
└──────────┬───────────────┬───────┘
│ │
┌───────────────┴──┐ ┌──────┴──────────────┐
│ حاوية العامل │ │ حاوية العامل │
│ (المشروع أ) │ │ (المشروع ب) │
│ ┌────┐ ┌────┐ │ │ ┌────┐ ┌────┐ │
│ │ و. │ │ و. │ │ │ │ و. │ │ و. │ │
│ └────┘ └────┘ │ │ └────┘ └────┘ │
└──────────────────┘ └─────────────────────┘
خادم Cairn يحافظ فقط على تناسق الرسم البياني.
موزع Cairn يقرأ الرسم البياني، يجدول المهام، يشغل ويطفئ حاويات العمال، وهو الكاتب الوحيد للبروتوكول. كل مشروع يحصل على حاوية عامل خاصة به؛ تعمل وكلاء عاملون متعددون بشكل متزامن داخلها. يتلقى وكلاء العاملون فقط تعليمات (prompt) ويعيدون مخرجات منظمة.
الخلفيات المدعومة للعمال: Claude Code، Codex، و Pi.
هاكاثون سحابة تينسنت · تحدي اختبار اختراق الذكاء الاصطناعي · الإصدار الثاني
610 فرق · 1,345 مشاركًا · أفضل الجامعات وشركات الأمن في الصين
| المقياس | القيمة |
|---|---|
| المشكلات التي تم حلها | 54 / 54 — الفريق الوحيد الذي حقق AK |
| الترتيب النهائي | الثالث |
لم يتم اختبار النظام مطلقًا قبل المنافسة. تم تشغيل خط الأنابيب الكامل لأول مرة في الساعة 4 صباحًا يوم السباق. لا تدريب، لا ضبط، لا أدوات خاصة بالمجال. صفر أدوات MCP، صفر RAG، صفر أدوار وكيل محددة مسبقًا.
المتطلبات الأساسية
كلا طريقتي الإعداد تتطلبان صورة حاوية العامل:
docker pull --platform=linux/amd64 ghcr.io/oritera/cairn-worker-container:latest
أنشئ ملف التكوين المحلي للموزع واملأ نقاط نهاية LLM ومفاتيح API الخاصة بك:
cp dispatch.example.yaml dispatch.yaml
اسحب الصورة الأساسية المستخدمة لبناء Cairn:
docker pull ghcr.io/astral-sh/uv:python3.13-trixie
docker compose up --build
يؤدي هذا إلى تشغيل cairn-server على المنفذ 8000 و cairn-dispatcher بمجرد اجتياز الخادم لفحص الصحة. يقوم الموزع بتحميل dispatch.yaml من جذر المشروع ويتصل بـ Docker عبر مقبس المضيف. يتم حفظ البيانات في ./datas/cairn/.
# شغّل الخادم
uv run --project cairn cairn serve
# شغّل الموزع
uv run --project cairn cairn dispatch --config dispatch.yaml
# تشغيل فحوصات الصحة عند بدء التشغيل فقط
uv run --project cairn cairn dispatch --config dispatch.yaml --startup-healthcheck-only
شغّل مجموعة الانحدار السريعة بدون Docker أو نقاط نهاية النموذج المباشرة:
uv run --project cairn --group dev pytest
## إخلاء مسؤولية
Cairn هو محرك حل مشكلات عام الاستخدام. على الرغم من أنه يدعم سير عمل اختبار الاختراق وحل CTF وتقييم الأمان وأبحاث الثغرات، إلا أنه يُقصد استخدامه فقط في البيئات التي لديك فيها إذن صريح بالتشغيل.
أنت وحدك المسؤول عن كيفية استخدام هذا المشروع. لا تستخدم Cairn ضد أنظمة أو شبكات أو تطبيقات أو بيانات دون إذن مسبق واضح من المالك أو المشغل. قد يكون اختبار الأمان غير المصرح به أو الاستغلال أو الوصول إلى البيانات غير قانوني وقد يسبب ضررًا.
لا يؤيد مطورو هذا المشروع والمساهمون فيه ولا يتحملون أي مسؤولية عن أي سوء استخدام أو إساءة أو ضرر أو خسارة أو عواقب قانونية ناتجة عن استخدامه. باستخدام هذا المشروع، فإنك توافق على ضمان امتثال أنشطتك لجميع القوانين واللوائح والالتزامات التعاقدية والسياسات المهنية أو التنظيمية السارية في نطاق اختصاصك.
## تاريخ النجوم
<a href="https://www.star-history.com/#oritera/Cairn&Date" target="_blank" rel="noopener noreferrer">
<img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt="Star History Chart" />
</a>
## ⚖️ الترخيص
هذا المشروع مرخص بموجب **GNU AGPLv3** للاستخدام الشخصي والتعليمي.
**الاستخدام التجاري**: إذا كنت ترغب في استخدام هذا المشروع في بيئة تجارية أو مملوكة بدون التزامات المصدر المفتوح لـ AGPL-3.0، **يرجى الاتصال بي للحصول على ترخيص تجاري.**
**المساهمات**: بتقديم طلب سحب (Pull Request)، فإنك توافق على أنه يمكن استخدام مساهماتك بموجب كل من AGPL-3.0 والترخيص التجاري للمشروع.
| Bootstrap |
| في بداية المشروع، يحاول حل المشكلة مباشرة |
| Fact + احتمال Complete |
| Reason | يقرأ الرسم البياني الكامل: هل تم تحقيق الهدف؟ ما الذي يجب استكشافه بعد ذلك؟ | Complete / Intents جديدة / no-op |
| Explore | يطالب بـ Intent واحد، وينفذ الاستكشاف، ويبلغ عن النتائج | Fact واحد |