الفكرة الأساسية: ثق بحكم الذكاء الاصطناعي؛ الكود يتولى التنفيذ والحواجز الوقائية فقط.
- قاعدة البيانات كمصدر وحيد للحقيقة — إعدادات وحالة المشروع في SQLite؛ YAML للحالة التشغيلية للوكلاء فقط
- عزل لكل مشروع — كل مشروع يحصل على بيئة conda خاصة، HOME معزول، و
PYTHONNOUSERSITE=1 - المهارات بدلاً من القواعد المُبرمجة — مجموعات تعليمات نمطية (skills) تُحمّل أثناء التشغيل لفرض أفضل الممارسات
يمرّ ARK بثلاث مراحل متتابعة:
┌─────────────────────────────────────────────────────────────────┐
│ ARK Pipeline │
├─────────────────────────────────────────────────────────────────┤
│ │
│ المرحلة ١: Research (٤ خطوات) │
│ ┌──────────────┐ ┌─────────────┐ ┌─────────┐ ┌──────────┐ │
│ │Deep Research │─▶│ المُهيّئ │─▶│ المخطط │─▶│ المُجرِّب │ │
│ │(Gemini) │ │(تمهيد) │ │(تخطيط) │ │(تشغيل) │ │
│ └──────────────┘ └─────────────┘ └─────────┘ └──────────┘ │
│ │
│ المرحلة ٢: Dev │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ تخطيط → تجارب Slurm → تحليل → كتابة مسودة │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
│ المرحلة ٣: Review (حلقة تكرارية) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ تجميع │─▶│ مراجعة │─▶│ المخطط │─▶│ تنفيذ │──┐ │
│ │ LaTeX │ │ تقييم │ │ قرار │ │ تشغيل │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ ▲ │ │
│ └──── تحقّق ◀───────────────────────────────────────┘ │
│ (إعادة تجميع) │
│ │
│ تكرار حتى الدرجة ≥ العتبة أو تدخل بشري │
└─────────────────────────────────────────────────────────────────┘
| الخطوة | الوكيل | ما يحدث |
|---|---|---|
| ١ | Deep Research | مسح أدبي بواسطة Gemini، جمع المعرفة الخلفية |
| ٢ | المُهيّئ | تمهيد بيئة conda، تثبيت المهارات المدمجة، تحضير الاستشهادات |
| ٣ | المخطط | توليد خطة بحث أولية من نتائج المسح |
| ٤ | المُجرِّب | تشغيل الجولة الأولى من التجارب بناءً على الخطة |
كل تكرار يمرّ بـ ٥ خطوات: تجميع → مراجعة → تخطيط → تنفيذ → تحقّق.
المخطط يُخرج خطط عمل منظّمة بصيغة YAML:
actions:
- agent: experimenter
task: "تشغيل تجربة التحقق من الحيرة"
priority: 1
- agent: writer
task: "تحديث القسم ٤.٢"
priority: 2يتتبع الدرجات، يكتشف الركود، ويمنع الإخفاقات المتكررة:
class SimpleMemory:
scores: List[float] # سجل الدرجات (آخر ٢٠)
best_score: float # أعلى درجة تاريخية
stagnation_count: int # عدد مرات الركود المتتالية
def record_score(score) # تسجيل درجة
def is_stagnating() # كشف الركود
def get_context() # الحصول على السياق (مرساة الهدف + اتجاه الدرجات)ميزات إضافية:
- تتبع المشكلات: إزالة التكرار بناءً على المحتوى — يحصي عدد مرات ظهور كل مشكلة عبر التكرارات
- التحقق من الإصلاح: يتأكد أن الإصلاحات المُجرّبة حلّت المشكلة فعلاً
- تصعيد الاستراتيجية: يحظر الأساليب غير الفعالة تلقائياً ويقترح بدائل
- التصحيح الفوقي: يُشغّل التشخيص عند توقف النظام
كل استدعاء لوكيل يتضمن "مرساة هدف" ثابتة تصف الأهداف الجوهرية للمشروع. هذا يمنع الوكلاء من الانحراف عن الموضوع عبر التكرارات المتعددة.
تصميم قائم على Mixin مع ٥ مزيجات:
class Orchestrator(ResearchMixin, DevMixin, ReviewMixin, FigureMixin, BaseMixin):
# يوزّع على المرحلة الصحيحة بناءً على الوضع
# يزامن الحالة مع قاعدة البيانات بعد كل خطوة
# يتعامل مع إشعارات Telegramمجموعات تعليمات نمطية تُحمّل أثناء التشغيل:
| المهارة | الغرض |
|---|---|
| research-integrity | مضاد للمحاكاة: الوكلاء يجب أن يُجروا تجارب حقيقية |
| human-intervention | بروتوكول التصعيد عبر Telegram |
| env-isolation | حدود بيئة لكل مشروع |
| figure-integrity | التحقق من تطابق الأشكال مع البيانات الفعلية |
| page-adjustment | التحكم في كثافة المحتوى ضمن حدود الصفحات |
تُثبّت المهارات تلقائياً أثناء مرحلة التمهيد (Research المرحلة ٢).
كل مشروع يحصل على بيئة conda معزولة:
provision_project_env()يستنسخ البيئة الأساسية إلى<project>/.env/project_env_ready()يتحقق من وجود البيئة- المُنسّق يعمل بـ
HOME=<project_dir>,PYTHONNOUSERSITE=1 - كل من CLI (
ark run) وبوابة الويب يكتشفان ويستخدمان بيئة المشروع تلقائياً
SQLite هو المصدر الوحيد للحقيقة لإعدادات وحالة المشروع:
- إنشاء المشروع، الإعدادات، حالة المرحلة
- سجل الدرجات، تتبع التكلفة
- CLI و webapp يقرآن ويكتبان في نفس قاعدة البيانات
- ملفات YAML تحت
auto_research/state/للحالة التشغيلية للوكلاء فقط
| الوكيل | الدور |
|---|---|
| المُهيّئ | تمهيد المشروع: بيئة conda، المهارات، الاستشهادات |
| المراجع | مراجعة وتقييم الورقة |
| المخطط | تحليل المشكلات، توليد خطة عمل (وضع الورقة والتطوير) |
| المُجرِّب | تصميم وتشغيل وتحليل التجارب |
| الباحث | البحث الأدبي وتحليل نتائج التجارب |
| الكاتب | كتابة/مراجعة أقسام الورقة |
| المُصوّر | فحص وإصلاح جودة الأشكال/الجداول |
| المُصحّح الفوقي | تشخيص على مستوى النظام |
| المُبرمج | تنفيذ تغييرات الكود (وضع التطوير) |
ARK/
├── ark/
│ ├── orchestrator.py # الحلقة الرئيسية (قائم على Mixin)
│ ├── pipeline.py # خط أنابيب Research من ٤ خطوات
│ ├── memory.py # تتبع الدرجات، إزالة تكرار المشكلات، كشف الركود
│ ├── agents.py # استدعاء الوكلاء
│ ├── execution.py # تنفيذ الوكلاء وحقن المهارات
│ ├── cli.py # أوامر CLI (ark new/run/status/...)
│ ├── compiler.py # تجميع LaTeX
│ ├── citation.py # التحقق من الاستشهادات عبر DBLP/CrossRef
│ ├── deep_research.py # تكامل Gemini Deep Research
│ ├── telegram.py # إشعارات Telegram + التدخل البشري
│ ├── compute.py # خلفيات الحوسبة Slurm/السحابة
│ ├── templates/agents/ # قوالب موجّهات الوكلاء
│ │ ├── initializer.prompt
│ │ ├── reviewer.prompt
│ │ ├── planner.prompt
│ │ ├── experimenter.prompt
│ │ ├── researcher.prompt
│ │ ├── writer.prompt
│ │ ├── visualizer.prompt
│ │ └── coder.prompt
│ └── webapp/
│ ├── app.py # تطبيق Flask
│ ├── db.py # نماذج SQLite + إدارة الحالة
│ ├── jobs.py # إطلاق المهام، توفير بيئة conda
│ ├── routes.py # مسارات API + SSE
│ └── static/app.html # واجهة SPA
├── skills/
│ ├── index.json # سجل المهارات
│ └── builtin/ # المهارات المدمجة
│ ├── research-integrity/
│ ├── human-intervention/
│ ├── env-isolation/
│ ├── figure-integrity/
│ └── page-adjustment/
├── venue_templates/ # قوالب LaTeX لكل مؤتمر
├── tests/ # ١١٥ اختبار
└── projects/ # مجلدات المشاريع (gitignored)
events.py— نظام مدفوع بالأحداث (استُبدل بقرارات المخطط)- تتبع ذاكرة معقد (issues, effective_actions, failed_attempts) — تم تبسيطه