البناء الواقعي وتحقيق الدخل
المشروع النهائي: خط أنبوب محتوى متعدد الوكلاء
النتيجة: بنهاية هذا الدرس ستكون قد شحنت خط أنبوب CrewAI يعمل بـ 4 وكلاء متخصصين — باحث ← كاتب ← مدقق حقائق ← ناشر — يأخذ موضوعاً كمدخل، يجمع المصادر، يصيغ منشوراً، يتحقق من كل ادعاء واقعي، ويحفظ الـ markdown النهائي (أو ينشره عبر webhook). هذا هو التنسيق متعدد الوكلاء الذي بنيت نحوه عبر خمس وحدات.
ما ستشحنه — هذا الأمر يشغّل الفريق كاملاً:
python pipeline.py --topic "حالة أطر الوكلاء مفتوحة المصدر في الربع الثاني 2026"
المعمارية التي تبنيها
خط أنبوب محتوى متعدد الوكلاء — عملية CrewAI المتسلسلة
الجزء 1 — إعداد المشروع (5 دقائق)
content-crew/
├── pipeline.py
├── agents/
│ ├── researcher.py
│ ├── writer.py
│ ├── fact_checker.py
│ └── publisher.py
├── tools/
│ ├── web_search.py
│ └── cms_webhook.py
├── requirements.txt
└── .env.example
requirements.txt:
ثبّت الإصدارات الحالية يوم بنائك للمشروع ثم اتركها مثبّتة. الحدود الدنيا أدناه مثال وليست توصية — راجع crewai على PyPI ودليل التثبيت الرسمي لمعرفة نطاق Python المدعوم حالياً:
crewai>=1.14.0
crewai-tools>=1.14.0
anthropic>=0.99.0
tavily-python>=0.7.24
httpx>=0.27.2
python-dotenv>=1.0.1
.env.example:
ANTHROPIC_API_KEY=sk-ant-...
TAVILY_API_KEY=tvly-... # راجع صفحة أسعار Tavily لحدود الطبقة المجانية الحالية
CMS_WEBHOOK_URL=https://your-cms.com/api/drafts
CMS_WEBHOOK_TOKEN=
الجزء 2 — الأدوات المخصصة (10 دقائق)
وكلاء CrewAI يستخدمون نمط @tool من الوحدة 3. أداتان تُشغّلان هذا الفريق: بحث الويب (الباحث) و CMS webhook (الناشر). راجع tools/web_search.py و tools/cms_webhook.py في النسخة الإنجليزية.
الجزء 3 — الوكلاء الأربعة (15 دقيقة)
لكل وكيل مهمة واحدة — هذه هي فكرة التنسيق. وكيل بثلاث مسؤوليات سرعان ما يصبح وكيلاً لا يؤدي أياً منها جيداً.
# agents/researcher.py
researcher = Agent(
role="Research Analyst",
goal="Gather 6-10 authoritative, recent sources on the assigned topic",
backstory="أنت محلل بحوث مخضرم. تثق بالمصادر الأولية (وثائق البائعين، "
"مستودعات GitHub، الإعلانات الرسمية) أكثر من الملخصات الثانوية. "
"تشك في الأرقام المستديرة والتواريخ الحديثة — كلاهما علامات حمراء.",
tools=[web_search],
llm="anthropic/claude-sonnet-5",
verbose=True,
allow_delegation=False,
)
# agents/fact_checker.py — استخدم Opus للدقة العالية
fact_checker = Agent(
role="Fact Checker",
goal="تحقق من كل ادعاء رقمي، رقم إصدار، تاريخ، و'الأول/الوحيد/الأكبر'...",
backstory="أنت بارانوي بالمهنة. تفترض كل إحصائية خاطئة حتى تجد مصدراً موثوقاً. "
"تعامل الادعاءات السلبية ('X ليس لديه Y') بشك إضافي — هذه المصدر الأول للأخطاء.",
tools=[web_search],
llm="anthropic/claude-opus-5",
verbose=True,
allow_delegation=False,
)
# publisher: استخدم Haiku (رخيص، مهمة ميكانيكية)
publisher = Agent(
role="Publisher",
goal="احفظ المنشور النهائي وادفعه إلى webhook الـ CMS",
llm="anthropic/claude-haiku-4-5",
...
)
قرار التصميم هو توزيع الطبقات، لا أسماء النماذج:
| الوكيل | الطبقة | لماذا |
|---|---|---|
| الباحث | متوسطة | استدلال واسع مع استخدام موثوق للأدوات؛ نتائج البحث تحمل العبء الأكبر |
| الكاتب | متوسطة | جودة الصياغة والأسلوب مهمة؛ الصحة مسؤولية الوكيل التالي |
| مدقق الحقائق | عليا | الموضع الوحيد الذي يكون فيه الخطأ غير قابل للاسترداد — ادفع هنا |
| الناشر | صغيرة | إضافة frontmatter واستدعاء أداة واحدة. النموذج الكبير لا يضيف شيئاً |
أسماء النماذج تتغير كل بضعة أشهر؛ الطبقات لا تتغير. بدّل المعرّفات بما هو حالي على صفحة نماذج Anthropic واحتفظ بالتوزيع نفسه.
التوفير من التوزيع حقيقي لكن قِسه بنفسك بدل أخذ رقم من درس: شغّل الفريق مرة بكل الوكلاء على الطبقة المتوسطة، ومرة بالتوزيع أعلاه، وقارن الفاتورتين. تلك المقارنة تخص عبء عملك أنت.
الجزء 4 — الفريق المُنسِّق (10 دقائق)
pipeline.py يبني 4 مهام مُسلسلة مع Process.sequential. كل مهمة لاحقة تستقبل مخرجات السابقة عبر context=[...]. انظر النسخة الإنجليزية للكود الكامل.
النقاط الرئيسية:
research_task→ يُخرج موجز بحث مع مصادر ومؤشرات ادعاءاتwrite_task→ يستخدمcontext=[research_task]، يصيغ مسودة مع اقتباسات[^N]factcheck_task→context=[research_task, write_task]، يصحح ويُسجل التعديلاتpublish_task→context=[factcheck_task]، يضيف frontmatter ويدفع للـ CMS
الجزء 5 — شغّله (دقيقتان)
python pipeline.py --topic "حالة أطر الوكلاء مفتوحة المصدر في الربع الثاني 2026"
زمن التشغيل يحكمه زمن استجابة البحث وعدد الادعاءات التي يعيد مدقق الحقائق التحقق منها، فيتفاوت كثيراً حسب الموضوع. والتكلفة تعتمد على النماذج التي أسندتها وعلى الأسعار الحالية لكل رمز — راجع صفحة أسعار Anthropic ولوحة مزودك بعد أول تشغيل بدل الاعتماد على تقدير مطبوع هنا.
الجزء 6 — ما يتغير عند تبديل الموضوع
خط الأنبوب محايد موضوعياً:
| التغيير | أين |
|---|---|
| تركيز بحث مختلف | backstory الوكيل + description مهمة البحث |
| طول منشور مختلف | وصف مهمة الكاتب (1500-2000 → 800-1200) |
| CMS مختلف | بدّل publish_to_cms في tools/cms_webhook.py |
| أضف وكيل SEO قبل الناشر | Agent(...) جديد + Task(...) جديد |
| اجعله مهمة مجدولة | غلّف pipeline.py في GitHub Actions cron |
إضافة وكيل خامس ~15 سطر كود — هذه قوة بنية CrewAI.
الجزء 7 — قائمة استكشاف الأخطاء
| العرض | أول شيء تتحقق منه | السبب المعتاد |
|---|---|---|
| الباحث يُرجع 0 نتائج | لوحة Tavily | الطبقة المجانية مستنفدة، أو days=90 مقيد جداً |
| مخرج الكاتب قصير جداً | backstory الكاتب | الهدف مُصاغ كـ "ملخص" بدل "منشور 1500-2000 كلمة" |
| مدقق الحقائق لا يصحح المسودة فعلاً | إصدار CrewAI | الإصدارات الأقدم لا تمرر مخرجات المهام كسياق قابل للتحرير — رقّ إلى إصدار 1.x الحالي — راجع crewai على PyPI |
| الناشر يفشل في webhook | CMS_WEBHOOK_URL | نقطة نهاية خاطئة، ترويسة مصادقة ناقصة |
| كل الوكلاء يستخدمون نفس النموذج | تجاوز env | CREWAI_DEFAULT_MODEL يتفوق على تكوين لكل وكيل |
| الفريق يتعلق للأبد | أوصاف المهام | expected_output غامض يُبقي الوكلاء يكررون |
نقطة تحقق — أنجز هذا قبل ادعاء الشهادة
- شحن الفريق.
python pipeline.py --topic "أي شيء"يمر عبر 4 وكلاء بلا أخطاء. - شحن مسار الكتابة. الـ markdown النهائي في
./output/له frontmatter صحيح ومحتوى حقيقي. - شحن الصيد. شغّل على موضوع من المحتمل أن يهلوس فيه الكاتب إحصائيات. تأكد من أن سجل تغييرات مدقق الحقائق يُظهر تصحيحاً واحداً على الأقل.
- شحن الـ webhook. وجّه
CMS_WEBHOOK_URLإلى نقطة نهاية حقيقية. تأكد من أن الناشر يرسل POST ويسجل الاستجابة. - التقط الفريق يعمل + الـ markdown النهائي + استجابة الـ webhook — كإثبات عملك.
الآن شحنت خط أنبوب متعدد الوكلاء يقوم بعمل تحريري حقيقي على أساس محايد موضوعياً. كل نمط تنسيق من الوحدات الخمس السابقة — تخصص الوكلاء، تسلسل المهام، توجيه الأدوات، مطابقة تكلفة النموذج، حواجز تدقيق الحقائق — يعمل الآن في الإنتاج.
التالي (اختياري): أضف تكامل Slack ليُسقط الفريق ملخصاً يومياً في قناة فريقك، أو اربطه بخلاصة RSS لتُحوّل إعلانات التقنية الجديدة إلى مسودات تلقائياً. :::
سجّل الدخول للتقييم