بناء فريق وكلاء AI (Multi-Agent System) بكلود — الدليل العربي الأول

تخيّل أن لديك فريق عمل كامل يعمل على مدار الساعة بلا كلل: باحث يجمع المعلومات، كاتب يصوغ المحتوى، محلل SEO يُحسّن النص، ومحرر يمرّر كل شيء قبل النشر — كل ذلك يحدث تلقائياً، بتنسيق تام، خلال دقائق. هذا ليس مستقبلاً بعيداً، هذا ما يمكنك بناؤه اليوم باستخدام كلود AI وإطار عمل CrewAI.
الوكلاء المتعددون (Multi-Agent Systems) هم الجيل القادم من أتمتة الذكاء الاصطناعي. بدلاً من وكيل واحد يُحاول فعل كل شيء، تُقسّم المهام المعقدة بين متخصصين رقميين لكل منهم دور محدد وأدوات خاصة ومعرفة متخصصة. النتيجة: أعلى جودة، أسرع تنفيذ، وتكلفة أقل.
ما هو الوكيل AI وكيف يختلف عن الاستدعاء العادي؟
الاستدعاء العادي لكلود هو: سؤال واحد ← إجابة واحدة. الوكيل AI هو كيان يمتلك ثلاثة عناصر محورية:
الهدف (Goal): مهمة محددة يسعى لإنجازها مثل "اكتب مقالاً شاملاً عن الذكاء الاصطناعي في القطاع البنكي".
الأدوات (Tools): قدرات يستطيع استخدامها مثل البحث في الإنترنت، قراءة الملفات، استدعاء APIs، كتابة الأكواد وتشغيلها.
الذاكرة (Memory): قدرة الاحتفاظ بسياق العمل عبر خطوات متعددة — تذكّر ما اكتشفه في الخطوة 1 واستخدامه في الخطوة 5.
وكيل واحد مقابل نظام وكلاء متعددين
الوكيل الواحد يصطدم بحدود: السياق ينتهي قبل إكمال المهمة المعقدة، والنموذج يُحاول التخصص في كل شيء فيكون متوسطاً في كل شيء. نظام الوكلاء المتعددين يحل هذه المشكلة بتقسيم العمل بين متخصصين.
| المعيار | وكيل واحد | وكلاء متعددون |
|---|---|---|
| المهام البسيطة | ممتاز | زيادة تعقيد غير ضرورية |
| المهام المعقدة متعددة الخطوات | ضعيف | ممتاز |
| الجودة | متوسطة | عالية (مراجعة متعددة) |
| سهولة الصيانة | بسيطة | تحتاج تخطيطاً |
| التكلفة | أقل | أعلى (لكن أفضل ROI) |
CrewAI — إطار العمل الأمثل للوكلاء المتعددين
CrewAI هو إطار عمل Python مفتوح المصدر يُبسّط بناء أنظمة وكلاء متعددين بشكل جذري. اسمه مستوحى من "Crew" أي طاقم العمل — مجموعة وكلاء يعملون معاً كفريق متناسق.
pip install crewai crewai-tools anthropic
import os
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool, WebsiteSearchTool
from langchain_anthropic import ChatAnthropic
# إعداد نموذج كلود
claude_opus = ChatAnthropic(
model="claude-opus-4-5",
anthropic_api_key=os.environ["ANTHROPIC_API_KEY"]
)
claude_haiku = ChatAnthropic(
model="claude-haiku-4-5",
anthropic_api_key=os.environ["ANTHROPIC_API_KEY"]
)تعريف الوكلاء — فريق إنتاج المحتوى
سنبني خط إنتاج محتوى متكامل: باحث يجمع المعلومات، كاتب يصوغ المقال، محلل SEO يُحسّنه، ومحرر يتحقق من الجودة النهائية.
# أداة البحث في الإنترنت
search_tool = SerperDevTool()
# الوكيل الباحث
researcher = Agent(
role="باحث محتوى متخصص",
goal="جمع معلومات دقيقة وموثوقة عن الموضوع المطلوب من مصادر متعددة",
backstory="""أنت باحث خبير في جمع المعلومات وتحليلها. تتقن البحث العميق
في الإنترنت وتمييز المصادر الموثوقة من غيرها. تنتج ملخصات شاملة ومنظمة.""",
tools=[search_tool],
llm=claude_opus,
verbose=True,
max_iter=5 # الحد الأقصى لمحاولات إكمال المهمة
)
# الوكيل الكاتب
writer = Agent(
role="كاتب محتوى احترافي",
goal="كتابة محتوى جذاب ومقنع يخدم القارئ ويحقق أهداف المنشأة",
backstory="""أنت كاتب محترف يمتلك أسلوباً سلساً وقادراً على تبسيط المعلومات
المعقدة. تُراعي القارئ العربي وتكتب بلغة واضحة ومؤثرة.""",
llm=claude_opus,
verbose=True
)
# وكيل SEO
seo_optimizer = Agent(
role="خبير SEO وتحسين محركات البحث",
goal="تحسين المحتوى لمحركات البحث مع الحفاظ على جودة القراءة",
backstory="""أنت خبير SEO متخصص في المحتوى العربي. تُتقن تحسين العناوين
والمقدمات والكلمات المفتاحية وبنية المحتوى لأعلى ترتيب في جوجل.""",
llm=claude_haiku, # Haiku يكفي لمهمة التحسين
verbose=True
)
# وكيل التحرير والجودة
editor = Agent(
role="محرر أول ومراقب جودة",
goal="التحقق من دقة المعلومات وجودة الأسلوب واتساق المحتوى",
backstory="""أنت محرر خبير بعين نقدية حادة. تُراجع المحتوى للتأكد من دقته
وسلاسته وخلوه من الأخطاء اللغوية والمعلوماتية.""",
llm=claude_opus,
verbose=True
)تعريف المهام وتسلسل التنفيذ
كل وكيل يحتاج مهمة واضحة بمخرجات محددة. هذه المخرجات تنتقل تلقائياً للوكيل التالي:
# مهمة البحث
research_task = Task(
description="""ابحث عن موضوع: {topic}
اجمع:
1. أهم 5 حقائق وإحصائيات حديثة
2. 3 مصادر موثوقة
3. أبرز التطورات الأخيرة خلال 6 أشهر الماضية
4. المخاوف والتحديات المرتبطة بالموضوع
""",
expected_output="ملخص منظم بنقاط واضحة مع روابط المصادر",
agent=researcher
)
# مهمة الكتابة
writing_task = Task(
description="""استناداً على نتائج البحث، اكتب مقالاً شاملاً عن {topic}:
- عنوان جذاب
- مقدمة تُشدّ الانتباه (150-200 كلمة)
- 4-5 أقسام رئيسية مع عناوين فرعية
- خاتمة تلخّص النقاط وتحث على الفعل
- الطول الإجمالي: 800-1200 كلمة
""",
expected_output="مقال كامل بتنسيق Markdown",
agent=writer,
context=[research_task] # يستخدم نتائج البحث كسياق
)
# مهمة تحسين SEO
seo_task = Task(
description="""حسّن المقال لمحركات البحث:
1. تحسين العنوان الرئيسي ليحتوي الكلمة المفتاحية الأساسية
2. إضافة كلمات مفتاحية ثانوية بشكل طبيعي
3. تحسين Meta Description (150-160 حرف)
4. تحسين العناوين الفرعية H2 وH3
5. إضافة روابط داخلية وخارجية مقترحة
""",
expected_output="المقال المحسّن مع تقرير SEO مختصر",
agent=seo_optimizer,
context=[writing_task]
)
# مهمة التحرير النهائي
editing_task = Task(
description="""راجع المقال النهائي وتأكد من:
- صحة المعلومات وتطابقها مع البحث الأصلي
- سلامة اللغة العربية والأسلوب
- الاتساق في التنسيق والعرض
- جاهزية المقال للنشر الفوري
أضف [تمت المراجعة] أو [يحتاج تعديلات] في البداية مع ملاحظاتك
""",
expected_output="المقال النهائي جاهز للنشر مع تقرير المراجعة",
agent=editor,
context=[research_task, writing_task, seo_task]
)تشكيل الفريق وتشغيل خط الإنتاج
# تجميع الفريق
content_crew = Crew(
agents=[researcher, writer, seo_optimizer, editor],
tasks=[research_task, writing_task, seo_task, editing_task],
process=Process.sequential, # تنفيذ متسلسل بالترتيب
verbose=2,
memory=True # تفعيل الذاكرة المشتركة
)
# تشغيل خط الإنتاج
result = content_crew.kickoff(
inputs={"topic": "تأثير الذكاء الاصطناعي على قطاع العقارات في السعودية"}
)
print("="*50)
print("المقال النهائي:")
print(result)
print("="*50)
# حفظ النتيجة
with open("article_output.md", "w", encoding="utf-8") as f:
f.write(result)تنفيذ متوازٍ لتسريع الإنتاج
حين تحتاج إنتاج عشرات المقالات، التنفيذ المتسلسل بطيء. CrewAI يدعم التنفيذ المتوازي للمهام المستقلة:
from crewai import Process
# تنفيذ متوازٍ — الباحث والمحلل التنافسي يعملان معاً
parallel_crew = Crew(
agents=[researcher, competitive_analyst, writer, editor],
tasks=[research_task, competitive_task, writing_task, editing_task],
process=Process.hierarchical, # مدير يُوزّع المهام
manager_llm=claude_opus,
verbose=True
)
# إنتاج 10 مقالات بالتوازي
import asyncio
from concurrent.futures import ThreadPoolExecutor
topics = [
"الذكاء الاصطناعي في البنوك",
"الأتمتة في التجزئة",
"AI في الرعاية الصحية",
# ... باقي المواضيع
]
def produce_article(topic):
crew_instance = content_crew.kickoff(inputs={"topic": topic})
return crew_instance
with ThreadPoolExecutor(max_workers=3) as executor:
results = list(executor.map(produce_article, topics))الذاكرة والسياق المشترك بين الوكلاء
أحد أقوى مزايا نظام الوكلاء هو قدرتهم على تشارك المعرفة. يمكن بناء ذاكرة مشتركة تُحوّل تعلّم وكيل واحد إلى ذكاء جماعي:
import json
from pathlib import Path
class SharedMemory:
"""ذاكرة مشتركة بسيطة لجميع الوكلاء"""
def __init__(self, memory_file="crew_memory.json"):
self.memory_file = Path(memory_file)
self.data = self._load()
def _load(self):
if self.memory_file.exists():
return json.loads(self.memory_file.read_text(encoding="utf-8"))
return {}
def remember(self, key: str, value: any):
self.data[key] = value
self.memory_file.write_text(
json.dumps(self.data, ensure_ascii=False, indent=2),
encoding="utf-8"
)
def recall(self, key: str):
return self.data.get(key)
# مثال: الباحث يحفظ ما تعلمه
memory = SharedMemory()
memory.remember("saudi_ai_market_size", "2.5 مليار دولار في 2026")
memory.remember("top_companies", ["STC", "Elm", "Saudi Aramco Digital"])
# الكاتب يسترجع هذه المعلومات
market_size = memory.recall("saudi_ai_market_size")Human-in-the-Loop — الإنسان في الحلقة
للمهام الحساسة، تُضيف نقطة توقف للموافقة البشرية قبل الانتقال للخطوة التالية:
from crewai import Task
# مهمة تحتاج موافقة بشرية قبل النشر
publishing_task = Task(
description="نشر المقال على منصة WordPress عبر API",
expected_output="رابط المقال المنشور",
agent=publisher_agent,
human_input=True # توقف وانتظار موافقة بشرية
)نصائح بناء أنظمة وكلاء احترافية
لا تبني فريقاً من 8 وكلاء في أول مشروع. ابدأ بباحث وكاتب، تأكد من عملهما بشكل مثالي، ثم أضف وكلاء إضافيين تدريجياً.
قصة الخلفية للوكيل (backstory) تُشكّل شخصيته وأسلوبه. كن محدداً وتفصيلياً — كلما كانت القصة أوضح، كانت نتائج الوكيل أفضل.
الوكيل الذي لا يعرف ما يُنتج بالضبط يُنتج كل شيء. اكتب expected_output محدداً للغاية: "JSON بمفاتيح محددة" أو "قائمة بـ 5 نقاط بالترتيب".
بدون حد أقصى للتكرارات، قد يدور الوكيل في حلقة إذا واجه مشكلة. دائماً حدّد max_iter بقيمة معقولة (3-10 حسب تعقيد المهمة).
الوكلاء الذين يُنجزون مهام تحليل بسيطة أو تنسيق يكفيهم Haiku. احتفظ بـ Opus للمهام الإبداعية والتحليل المعمق. هذا يُخفّض التكلفة 80%.
verbose=True ضروري أثناء التطوير لفهم ما يفعله كل وكيل بالضبط وأين تحدث المشاكل. أوقفه في الإنتاج لتوفير الموارد.
قبل تشغيل خط إنتاج كامل، اختبر كل وكيل منفرداً بمهمة صغيرة. هذا يكشف المشاكل في السياق المحدود ويُوفّر كثيراً من تكاليف API.
المقالة التي لم يراجعها وكيل محرر قد تحتوي أخطاء أو معلومات قديمة. وكيل QA في نهاية أي خط إنتاج ليس ترفاً بل ضرورة.
الجواهر الخمسة — أنظمة وكلاء جاهزة للتطبيق
وكيل يجمع بيانات المنافسين، وكيل يُحلل نقاط القوة والضعف، وكيل يُنتج تقرير مقارنة، ووكيل يقترح استراتيجية التميز. يعمل أسبوعياً تلقائياً ويُرسل التقرير للمدراء.
وكيل يُصنّف التذاكر حسب الأولوية والنوع، وكيل يبحث في قاعدة المعرفة عن الحلول، وكيل يصيغ الرد، ووكيل يتحقق من الجودة — 80% من التذاكر تُحلّ بدون تدخل بشري.
وكيل يجمع البيانات من Bloomberg وأخبار السوق، وكيل يُحلل الاتجاهات، وكيل يُنتج توصيات استثمارية، ووكيل يُراجع الامتثال التنظيمي — تقرير يومي جاهز قبل بداية التداول.
وكيل يُحلّل السيرة الذاتية، وكيل يُقيّم التطابق مع متطلبات الوظيفة، وكيل يُعدّ أسئلة مقابلة مخصصة، ووكيل يُصدر تقرير التوصية — يُعالج 100 طلب في ساعة بدلاً من أيام.
وكيل يُحلّل متطلبات المنتج، وكيل يكتب المواصفات التقنية، وكيل يُنشئ User Stories، وكيل يكتب حالات الاختبار — وثائق منتج كاملة في ساعات بدلاً من أسابيع.
الأسئلة الشائعة
🧭 اكتشف المزيد
مواضيع مرتبطة من أقسام أخرى تُكمّل ما تعلمته