بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و DeepSeek R1: دليل عملي

⏱️ مدة القراءة: 2 دقيقة

ستجد في هذا المقال شرحًا مباشرًا وخطوات عملية مختصرة تساعدك على التطبيق بسرعة.

المحتويات

  1. لماذا DeepSeek R1 و LangGraph؟
  2. المتطلبات المسبقة
  3. الخطوة 1: إعداد النموذج محلياً
  4. الخطوة 2: تصميم هيكل النظام (The Graph)
  5. الخطوة 3: برمجة الوكلاء
  6. الخطوة 4: بناء الرسم البياني (The Graph)
  7. الخطوة 5: التشغيل والتجربة
  8. تحديات وحلول عملية
  9. الخاتمة

في عالم الذكاء الاصطناعي المتسارع، لم يعد بناء الأنظمة الذكية حكراً على الشركات العملاقة. اليوم، بفضل أدوات مفتوحة المصدر مثل LangGraph ونماذج قوية وخفيفة مثل DeepSeek R1، يمكن لأي مطور بناء “فريق” من الوكلاء الأذكياء (AI Agents) يعملون معاً على جهازه المحلي تماماً، دون الحاجة لإرسال بيانات حساسة إلى السحابة أو دفع تكاليف API باهظة.

في هذا الدليل التطبيقي، سنقوم ببناء نظام متعدد الوكلاء (Multi-Agent System) يقوم بمهمة بحثية متكاملة: وكيل يبحث عن المعلومات، وآخر يصيغها في تقرير احترافي، وكل ذلك يعمل محلياً.

لماذا DeepSeek R1 و LangGraph؟

قبل أن نبدأ في الكود، دعونا نفهم لماذا هذا المزيج تحديداً يعتبر “صفقة رابحة” للمطورين في 2026:

  1. DeepSeek R1: يتميز بقدرات “تفكير” (Reasoning) متقدمة جداً مقارنة بحجمه. النسخ المقطرة (Distilled) منه التي تعمل على Ollama توفر أداءً مذهلاً في المنطق والبرمجة، مما يجعله مثالياً ليكون “عقل” الوكيل.
  2. LangGraph: ليست مجرد مكتبة لبناء الشات بوت، بل هي إطار عمل (Framework) يسمح ببناء تدفقات عمل معقدة (Workflows) حيث يمكن للوكلاء التفاعل، وتذكر الحالة (State)، واتخاذ قرارات بناءً على مخرجات بعضهم البعض. إنها تمنحك السيطرة الكاملة على “الحلقات” (Loops) في التفكير.

المتطلبات المسبقة

للبدء، تأكد من تثبيت الأدوات التالية على جهازك:

  • Python 3.10+
  • Ollama: لتشغيل النماذج محلياً.
  • مكتبات Python الضرورية:
pip install langgraph langchain-ollama langchain-community duckduckgo-search

الخطوة 1: إعداد النموذج محلياً

أولاً، نحتاج لسحب نموذج DeepSeek R1 وتشغيله عبر Ollama. سنستخدم نسخة 7B أو 8B لأنها متوازنة بين السرعة والدقة للأجهزة الشخصية.

ollama pull deepseek-r1

تأكد من أن النموذج يعمل عن طريق اختباره في التيرمينال قبل دمجه في الكود.

الخطوة 2: تصميم هيكل النظام (The Graph)

في LangGraph، نفكر في النظام كـ “رسم بياني” (Graph) يتكون من عقد (Nodes) وحواف (Edges).

  • State (الحالة): الذاكرة المشتركة بين الوكلاء.
  • Researcher Node: وكيل البحث.
  • Writer Node: وكيل الكتابة.
  • Supervisor (اختياري): لتوجيه العمل (سنبسط الأمر هنا ليعمل بتسلسل مباشر).

تعريف الحالة (State)

from typing import TypedDict, Annotated, List, Union

from langgraph.graph import StateGraph, END

class AgentState(TypedDict):

task: str

search_results: List[str]

final_report: str

الخطوة 3: برمجة الوكلاء

سنستخدم ChatOllama لربط LangChain مع نموذجنا المحلي.

from langchain_ollama import ChatOllama

from langchain_community.tools import DuckDuckGoSearchRun

from langchain_core.messages import HumanMessage, SystemMessage

إعداد النموذج

llm = ChatOllama(model="deepseek-r1", temperature=0)

أدوات البحث

search_tool = DuckDuckGoSearchRun()

def researcher_agent(state: AgentState):

print(f"🔎 جاري البحث عن: {state['task']}")

# في تطبيق حقيقي، قد نطلب من LLM صياغة استعلامات البحث

# هنا للتبسيط سنبحث عن المهمة مباشرة

results = search_tool.invoke(state['task'])

return {"search_results": [results]}

def writer_agent(state: AgentState):

print("✍️ جاري كتابة التقرير...")

search_data = "\n".join(state['search_results'])

prompt = f"""

أنت كاتب تقني محترف. بناءً على معلومات البحث التالية، اكتب تقريراً موجزاً حول:...

بيانات البحث:

{search_data}

التقرير:

"""

response = llm.invoke([HumanMessage(content=prompt)])

return {"final_report": response.content}

الخطوة 4: بناء الرسم البياني (The Graph)

الآن نربط العقد ببعضها لتشكيل سير العمل.

إنشاء الرسم البياني

workflow = StateGraph(AgentState)

إضافة العقد

workflow.add_node("researcher", researcher_agent)

workflow.add_node("writer", writer_agent)

تحديد نقطة البداية

workflow.set_entry_point("researcher")

إضافة الحواف (المسار)

workflow.add_edge("researcher", "writer")

workflow.add_edge("writer", END)

تشغيل النظام

app = workflow.compile()

الخطوة 5: التشغيل والتجربة

لنقم بتجربة النظام لطلب تقرير عن موضوع تقني حديث.

inputs = {"task": "مستقبل الوكلاء المستقلين Autonomous Agents في 2026"}

result = app.invoke(inputs)

print("\n--- التقرير النهائي ---\n")

print(result['final_report'])

عند التشغيل، ستلاحظ في التيرمينال كيف ينتقل النظام من مرحلة البحث (حيث يستدعي DuckDuckGo) إلى مرحلة الكتابة (حيث يقوم DeepSeek R1 بصياغة المعلومات)، كل ذلك يتم بتنسيق آلي.

تحديات وحلول عملية

أثناء بناء هذا النظام، قد تواجه بعض التحديات الشائعة:

  1. هلوسة النموذج (Hallucination): نظراً لأننا نستخدم نماذج محلية أصغر، قد يختلق النموذج معلومات. الحل هو إجبار النموذج على الالتزام بـ Context المزود من نتائج البحث فقط عبر الـ System Prompt.
  2. حلقات لا نهائية: في الأنظمة الأعقد التي تعيد التقييم، قد يعلق الوكيل في حلقة بحث لا تنتهي. في LangGraph، يمكنك وضع حد أقصى للخطوات (maximum iterations) لمنع ذلك.
  3. تنسيق المخرجات: DeepSeek R1 يميل أحياناً للإسهاب في “التفكير” (سلسلة الأفكار تظهر في الرد). يمكنك استخدام StrOutputParser أو معالجة النصوص لتنظيف الرد النهائي من وسوم <think>.

الخاتمة

إن الجمع بين LangGraph لإدارة الحالة والتدفق، و DeepSeek R1 للقدرات الاستنتاجية، يفتح الباب واسعاً أمام تطبيقات لا حصر لها: من المساعدين الشخصيين الذين يديرون ملفاتك المحلية، إلى أدوات تحليل الكود، وحتى أنظمة خدمة العملاء الآلية التي تعمل بالكامل داخل بنية مؤسستك التحتية. المستقبل محلي، وذكي، ومترابط.

عن الكاتب

علي – خبير تحسين محركات البحث (SEO) ومطور مهتم بالذكاء الاصطناعي.
يدير موقع Lira Now المتخصص في أخبار وشروحات AI،
ويساعد المواقع العربية على تحسين ترتيبها في نتائج البحث. شغوف باستكشاف أدوات
الذكاء الاصطناعي الجديدة وتطبيقها عملياً.

المصادر

  1. LangChain Docs: LangGraph Documentation
  2. Hugging Face: DeepSeek R1 Technical Report
  3. WellsR Tutorials: Multiagent Workflow in LangGraph
  4. LangChain Blog: The Future of Local Agents
  5. Ollama Blog: Running DeepSeek R1 Locally
  6. FSDL Course: Patterns for Building LLM Agents
  7. GitHub: Local RAG Researcher with DeepSeek
  8. Substack: Building Autonomous Agents

Comments

6 ردود على “بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و DeepSeek R1: دليل عملي”

  1. […] كيفية بناء أول فريق وكلاء AI خطوة بخطوة (مثل دليلنا عن بناء نظام وكلاء بـ LangGraph) […]

  2. […] هذا مهم بشكل خاص لأنظمة الوكلاء المتعددة التي تعتمد على تبادل المعلومات بين وكلاء متخصصين. بدون معيار موحد، كل وكيل يحتاج ترجمة مختلفة للتواصل مع كل أداة. (اقرأ أيضاً: بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و …) […]

  3. […] 📚 مقال ذو صلة: بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و DeepSeek R1: دليل… […]

  4. […] Phoenix قد يكون منصة رئيسية للتتبع والتقييم خصوصاً مع OpenInference، ويمكن تشغيله جنباً إلى جنب مع بنية OTel. (مصدر: Phoenix Docs + OpenInference) (اقرأ أيضاً: بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و …) […]

  5. […] إذا كان وكيلك يعتمد على RAG، ركّز على المقاييس المرتبطة بالاسترجاع (Recall@k، relevance) قبل أن تلوم النموذج. (اقرأ أيضاً: بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و …) […]

  6. […] بناء نظام وكلاء باستخدام DeepSeek R1 (تطبيق عملي): بناء نظام وكلاء ذكي محلياً باستخدام LangGraph و DeepSeek R1: دليل… […]

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *