لمن هذا الدليل
لباحثي الذكاء الاصطناعي والمطوّرين الذين يرغبون في استكشاف التجارب في Agent-Lab وإعادة إنتاجها وتوسيعها. إذا كنت تكتب بلغة Python، وتستخدم Jupyter، وتفكّر بمنطق التجارب والوكلاء ومسارات المعالجة، فستشعر بالألفة هنا. الإلمام بأساسيات LLM وRAG والحاويات مفيد لكنه ليس شرطاً.
يوفّر Agent-Lab مكونات قابلة لإعادة الاستخدام (أنواع الوكلاء، والأدوات، والتكاملات) إضافة إلى مجموعة من دفاتر Jupyter مع أمثلة خطوة بخطوة، لتصبح منتجاً بسرعة.
البدء السريع — تشغيل الأمثلة
المتطلبات: Python 3.12+، وبيئة Jupyter عاملة (JupyterLab أو Notebook)، واختيارياً Docker محلي للتكاملات من طرف إلى طرف. عند العمل في نسخة مستنسخة من المستودع:
uv sync --group notebooks # runtime + notebook dependencies in one virtualenv
jupyter lab # from the repository rootافتح notebooks/ وابدأ بـ 01_…، ثم تقدّم عبر الدفاتر التي تهمّك.
ملاحظات:
- الدفاتر مستقلة بذاتها في الغالب؛ ويذكر رأس كل دفتر متغيرات البيئة المطلوبة والخدمات الخارجية (مفاتيح API، ونقاط النهاية).
- توجد المفاتيح المطلوبة في
.env— انسخ.env.exampleواملأه (راجع مرجع الإعدادات). - لإجراء التجارب على Agent-Lab من مشروعك الخاص بدلاً من المستودع،
نفّذ
pip install btech-agent-labوجمّع التطبيق باستخدامcreate_app()— راجع توسيع الإطار في دليل المطوّر.
بنية المشروع — جولة سريعة
notebooks/— أمثلة تفاعلية لأنواع الوكلاء والتقييم والتكاملات. ابدأ من هنا.agent_lab/— حزمة الإطار:app_factory.py— جذر التركيب:create_app().core/— مصادر الإعدادات، وحاوية DI، وحلextra_deps.domain/— النماذج، وواجهات المستودعات، والاستثناءات (نموذج نطاق الكيانات).services/— منطق الأعمال وتنفيذاتagent_types/.interface/—api/(موجّهات HTTP) وmcp/(خادم MCP).infrastructure/— محوّلات قاعدة البيانات، والمصادقة، والمقاييس/التتبّع.
tests/— حزمunit/وintegration/وtemplate/وsimulation/(راجع الاختبارات والمحاكاة).doc/— التوثيق الذي تقرؤه الآن.
يوضّح لك فهم هذه الطبقات أين يقع كل سلوك: الأمثلة في notebooks،
والعقود الأساسية في core/ وdomain/، والمحوّلات في infrastructure/.
الدفاتر — مسار التعلّم الأساسي
التسلسل المعتاد:
| الدفتر | ما يوضّحه |
|---|---|
| 01_setup_embeddings_service.ipynb | إعداد مزوّد التضمينات والتحقق منه (ابدأ من هنا) |
| 02_test_agent_type-adaptive_rag.ipynb | RAG التكيّفي: مقيّم الاسترجاع، ومعيد صياغة الاستعلام، ومقيّم الإجابة |
| 03_test_agent_type-react_rag.ipynb | نمط ReAct مع الاسترجاع واستخدام الأدوات |
| 04_test_agent_type-vision_document.ipynb | الرؤية + استرجاع المستندات |
| 05_test_agent_type-multiagent-coder.ipynb | تعاون متعدد الوكلاء لمهام البرمجة |
| 06_test_agent_type-multiagent-researcher.ipynb | سير عمل بحثي متعدد الوكلاء |
| 07_test_agent_type-multiagent-browser.ipynb | وكلاء تصفّح الويب |
| 08_test_agent_type-multiagent-voice-assistant.ipynb | وكيل صوتي (والنسختان 09/10: Azure Entra ID، والسريعة) |
| 11_mcp_client-openai-responses.ipynb | التواصل مع خادم MCP من OpenAI Responses API |
يحتوي كل دفتر على: وصف موجز لهدف التجربة، و متغيرات البيئة والأسرار المطلوبة، ودوال مساعدة، ومخرجات مطبوعة/مرئية لفحص قرارات الوكيل ومقاييسه.
نصيحة احترافية: شغّل الدفاتر بالترتيب لمنحنى تعلّم تدريجي. واستخدم مجموعات بيانات وأحجام عيّنات أصغر أثناء التكرار للحفاظ على سرعة التشغيل.
المفاهيم الأساسية
- الوكيل (Agent) — تنفيذ مسجّل ضمن
agent_lab/services/agent_types/(@discoverable_agent). يحلّه السجل بشكل كسول (lazily) عبر حاوية DI، مع حقنextra_depsالمُعلَنة. - الأدوات (Tools) — قدرات منفصلة يمكن للوكيل استدعاؤها (البحث، والتصفّح، وTTS/ASR)،
مُنفَّذة بوصفها محوّلات في
agent_lab/infrastructure/أوagent_lab/interface/. - الحاوية (Container) — كائن تركيب DI (
agent_lab/core/container.py)؛ أنشئ فئة فرعية منه لإضافة مزوّدات لتجاربك. - المستودعات (Repositories) — واجهات الوصول إلى البيانات في
agent_lab/domain/repositories/. - ConfigSource — مصدر الإعدادات؛ استخدم مصادر YAML في التجارب، وVault في بيئة الإنتاج.
عندما تريد تعديل السلوك، حدّد ما إذا كان التغيير: تجريبياً
(في الدفتر فقط)، أو معمارياً (core/domain/services)، أو
على مستوى التكامل (محوّل في infrastructure). فضّل التغييرات الصغيرة القابلة للاختبار —
وأضف دفتراً أو حدّث دفتراً قائماً لعرض السلوك الجديد.
تشغيل التجارب وتسجيل النتائج
تطبع الدفاتر الخطوات الوسيطة؛ وللحصول على تجارب أكثر متانة:
استخدم بذوراً (seeds) حتمية حيثما تكون العشوائية مؤثرة.
سجّل المقاييس ذات الصلة بسؤالك — زمن الاستجابة، واستهلاك الرموز، وعدد استدعاءات الأدوات، ودرجات المُحكِّم. تصدّر طبقة قابلية المراقبة كل شيء عبر OpenTelemetry (راجع قابلية المراقبة)؛ وتسجّل بيئة المحاكاة درجات المُحكِّم في Langfuse/LangWatch (راجع الاختبارات والمحاكاة).
للحصول على تشغيلات قابلة للتكرار، صدّر خلايا الدفاتر إلى سكربتات وشغّلها في CI أو على عُقد الحوسبة:
jupyter nbconvert --to script notebooks/02_test_agent_type-adaptive_rag.ipynbيبني
docker/app/Dockerfileصورة تشغيل مثبّتة الإصدارات لتنفيذ قابل لإعادة الإنتاج.
بناء نماذج أولية لسلوكيات جديدة
- أضف نوع وكيل جديداً: أنشئ الفئة ضمن
agent_lab/services/agent_types/، وزخرفها بـ@discoverable_agent("your_type")، وأضف دفتراً يركّبها عبر حاوية DI ويختبرها بسيناريو صغير. يتوفر الشرح الكامل في بناء سير العمل الوكيلي. - استبدل مزوّد التضمينات: نفّذ محوّلاً متوافقاً ضمن
agent_lab/infrastructure/وتحقّق منه باستخدام الدفتر 01. - أضف مخزن استرجاع أو قاعدة بيانات متّجهية: نفّذ دوال المستودع في
agent_lab/domain/repositories/ومحوّلاً فيagent_lab/infrastructure/database/؛ واملأه بالبيانات عبر دفتر تحميل صغير واعرض الاسترجاع في دفتر استعلام.
نصيحة تصميمية: اجعل واجهات المحوّلات ضيقة النطاق واختبرها بمعزل عن غيرها باستخدام اختبارات وحدة صغيرة.
الاختبار والتقييم
make test_unit # unit tests — no infrastructure needed
make test # unit + integration with coverage
make test_simulations # LLM-as-judge agent simulations (live LLMs)عندما تغيّر السلوك الأساسي، أضف اختبار وحدة ودفتراً قصيراً يوضّح التغيير — فهذا الاقتران هو ما يجعل البحث قابلاً لإعادة الإنتاج هنا. تتناول صفحة الاختبارات والمحاكاة بيئة الاختبار الكاملة، وإعداد المُحكِّم، ومنصات التقييم.
قائمة التحقق من قابلية إعادة الإنتاج
- ثبّت إصدارات بيئتك (uv +
pyproject.toml/uv.lock). - سجّل البذور وملفات الإعدادات (
config-dev.yml، وconfig-test.yml). - احفظ نقطة حفظ الدفتر وأي مخرجات (CSV/JSON) إلى جانب تجربتك.
- دوّن نقاط نهاية التتبّع التي صدّرت إليها — فالتتبّعات هي سجل تجربتك.