الفصل الخامس : من سلسلة ” الذكاء الصناعي التعاوني CrewAI – دليل المطور العربي لبناء وكلاء ذكيين يعملون معًا ” .
تعرف على كيفية دمج مكتبة CrewAI مع نماذج OpenAI وLangChain وOllama لتشغيل الوكلاء (Agents) بذكاء كامل، سواء عبر الإنترنت أو بشكل محلي بدون اتصال في بايثون.
في هذا المقال :
مقدمة
حتى الآن، تعرّفنا على:
- كيف ننشئ الوكلاء (Agents).
- وكيف نكتب المهام (Tasks).
- وكيف نجمعهم داخل طاقم (Crew).
لكن كل هذا لا يكتمل بدون “العقل” الذي يفكر وينفذ الأوامر فعليًا.
هذا العقل هو النموذج اللغوي LLM (Large Language Model).
مكتبة CrewAI لا تحتوي على نموذج ذكاء صناعي بداخلها،
بل تعمل كمنصة تنظيمية تتكامل مع مزودين خارجيين مثل OpenAI وOllama وLangChain لتشغيل الوكلاء.
أولاً: التكامل مع OpenAI
الإعداد
قبل كل شيء، تحتاج إلى تثبيت مكتبة OpenAI الرسمية:
pip install openai
ثم عليك إضافة مفتاح الـ API إلى متغيرات البيئة:
في Windows:
setx OPENAI_API_KEY "sk-xxxxxxxxxxxxxxxx"
في Linux/macOS:
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
إنشاء وكيل يستخدم نموذج OpenAI
from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini") # يمكنك اختيار أي نموذج متاح
researcher = Agent(
role="AI Researcher",
goal="جمع وتحليل معلومات حول الذكاء الصناعي التعاوني CrewAI",
backstory="باحث تقني يستخدم OpenAI لاستخراج المعرفة الدقيقة.",
llm=llm
)
task = Task(description="اشرح فكرة CrewAI باختصار للمطورين الجدد.", agent=researcher)
crew = Crew(agents=[researcher], tasks=[task])
result = crew.run()
print(result)
هنا يعمل وكيلك عبر نموذج OpenAI الذي يتكفل بتوليد الاستجابات والتحليل.
ثانيًا: التكامل مع LangChain
مكتبة LangChain تُستخدم كطبقة وسيطة بين CrewAI ومقدمي النماذج المختلفة.
ميزة LangChain أنها تتيح لك:
- اختيار أي نموذج (OpenAI, Anthropic, Gemini…).
- إضافة أدوات مثل الذاكرة أو البحث أو قواعد المعرفة.
تثبيت LangChain:
pip install langchain
مثال: استخدام LangChain مع CrewAI
from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI
# LangChain يوفر واجهة موحدة للنماذج
llm = ChatOpenAI(model="gpt-4o")
developer = Agent(
role="Developer Assistant",
goal="مساعدة المطورين على كتابة أكواد CrewAI.",
backstory="مساعد ذكي يعتمد على LangChain لتحليل الأكواد واقتراح التحسينات.",
llm=llm
)
task = Task(description="اكتب مثالاً على إنشاء طاقم CrewAI بثلاثة وكلاء.", agent=developer)
crew = Crew(agents=[developer], tasks=[task])
print(crew.run())
ميزة هذا التكامل أنك تستطيع تبديل النموذج بسهولة دون تغيير الكود الأساسي:
فقط استبدل ChatOpenAI بـ ChatAnthropic أو ChatGoogleGenerativeAI — وسيعمل النظام بنفس الطريقة.
ثالثًا: التكامل مع Ollama (النماذج المحلية)
ما هو Ollama؟
Ollama هو محرك تشغيل للنماذج اللغوية محليًا على جهازك،
يسمح لك بتشغيل نماذج مثل Llama 3 أو Mistral أو Phi-3 دون إنترنت.
هذا مثالي عندما:
- تريد الخصوصية الكاملة (لا تُرسل بياناتك إلى الإنترنت).
- أو عند غياب اتصال إنترنت دائم.
التثبيت على كل نظام
على Windows
قم بزيارة الموقع الرسمي: https://ollama.com/download
ونزّل المثبّت المناسب، ثم شغّل:
ollama run llama3
على Linux
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3
على macOS
brew install ollama
ollama run llama3
استخدام Ollama داخل CrewAI
from crewai import Agent, Task, Crew
from langchain.llms import Ollama
local_model = Ollama(model="llama3")
offline_agent = Agent(
role="Offline Researcher",
goal="تحليل المفاهيم دون الحاجة للاتصال بالإنترنت.",
backstory="باحث يعتمد على نماذج محلية عبر Ollama.",
llm=local_model
)
task = Task(description="اشرح مفهوم CrewAI باختصار.", agent=offline_agent)
crew = Crew(agents=[offline_agent], tasks=[task])
print(crew.run())
هنا يتم تشغيل كل شيء محليًا 100٪ — لا حاجة لأي API Key ولا اتصال بالإنترنت.
مقارنة بين OpenAI وOllama
| العنصر | OpenAI | Ollama |
|---|---|---|
| التشغيل | سحابي (Cloud) | محلي (Local) |
| الاتصال بالإنترنت | مطلوب | غير مطلوب |
| الخصوصية | يعتمد على مزود الخدمة | محفوظة تمامًا على الجهاز |
| النماذج المتاحة | GPT-4, GPT-3.5, GPT-4o… | Llama, Mistral, Phi, Gemma… |
| الأداء | أسرع في التحليل المعقد | أسرع في المهام البسيطة |
| التكلفة | مدفوعة حسب الاستخدام | مجانية بعد التنزيل |
الجمع بين أكثر من مزود في نفس النظام
يمكنك استخدام أكثر من مزود نموذج داخل طاقم واحد!
مثلاً: وكيل يستخدم OpenAI وآخر يعمل عبر Ollama:
from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI
from langchain.llms import Ollama
openai_llm = ChatOpenAI(model="gpt-4o")
ollama_llm = Ollama(model="llama3")
analyzer = Agent(role="Analyzer", goal="تحليل النصوص", backstory="يستخدم OpenAI للتحليل العميق.", llm=openai_llm)
summarizer = Agent(role="Summarizer", goal="تلخيص النتائج.", backstory="يعمل على Llama3 محليًا.", llm=ollama_llm)
task1 = Task(description="حلل الاتجاهات الحديثة في الذكاء الصناعي.", agent=analyzer)
task2 = Task(description="لخّص النتائج بأسلوب موجز.", agent=summarizer)
crew = Crew(agents=[analyzer, summarizer], tasks=[task1, task2])
print(crew.run())
💡 بهذا الشكل، يمكنك الدمج بين دقة النماذج السحابية وسرعة النماذج المحلية،
لبناء بيئة ذكاء صناعي هجينة قوية وفعالة.
نصائح عملية للتكامل السلس
- احتفظ بمفاتيح API في متغيرات البيئة، لا تضعها داخل الكود.
- استخدم LangChain كطبقة موحدة لإدارة تعدد النماذج بسهولة.
- استخدم Ollama للنماذج التجريبية المحلية أو عند غياب الإنترنت.
- جرب الجمع بين مزودين أو أكثر حسب نوع المهمة (تحليل – تلخيص – إنشاء).
- استخدم virtualenv أو conda لعزل بيئة العمل وتنظيم الحزم.
الخلاصة
تكمن قوة CrewAI في قدرتها على الاندماج مع أنظمة النماذج اللغوية الكبرى.
فهي لا تُعيد اختراع العجلة، بل تبني فوقها:
تستخدم OpenAI للذكاء السحابي،
وLangChain لإدارة المنطق والذاكرة،
وOllama لتشغيل النماذج محليًا دون قيود.
بهذا يصبح بإمكانك بناء فرق ذكاء صناعي تعمل عبر الإنترنت أو داخل جهازك،
بذكاء، تعاون، ومرونة لا مثيل لها.
في الفصل السادس والأخير سنتناول:
نصائح وأفكار متقدمة لبناء أنظمة تعاونية احترافية باستخدام CrewAI،
مثل بناء “مساعد برمجي متكامل” أو “نظام كتابة محتوى ذكي”.

