LangGraph أم LangChain؟ كيف تختار الأنسب لتطبيقك
قارن بين LangChain و LangGraph لبناء وكلاء الذكاء الاصطناعي، وتعرّف على حدود التحكم وأمثلة Python وتكاليف LangSmith وخطوات الانتقال دون إعادة كتابة التطبيق.
نُشر في

عند المفاضلة بين LangChain وLangGraph، ابدأ بـ LangChain إذا كان تطبيقك يقوم على نموذج يستدعي الأدوات؛ أما إذا كانت قواعد العمل هي التي يجب أن تحدد الخطوة التالية، فصمّم سير عمل مخصصًا باستخدام LangGraph. يعمل وكلاء LangChain أصلًا فوق LangGraph، لذا فإن حفظ الحالة والحصول على موافقة بشرية لا يفرضان وحدهما إعادة كتابة التطبيق. المكتبتان مجانيتان، وتبدأ خطة LangSmith Plus الاختيارية من $39 لكل مستخدم شهريًا، تضاف إليها تكلفة الاستخدام.
الفرق بين LangChain و LangGraph: أيهما تختار؟
اختر LangChain لحلقة وكيل قابلة للتهيئة. واستخدم LangGraph مباشرة عندما تحتاج إلى تصميم العملية المحيطة بهذه الحلقة. يتوقف القرار على الجهة التي تحدد الخطوة التالية، والبيانات التي يجب الاحتفاظ بها عند انقطاع التنفيذ، والمسؤوليات التشغيلية التي تريد تولّيها.
إذا كنت تبني مساعد دعم يستعلم عن الطلبات ويجيب عن الأسئلة، فاستخدم create_agent في LangChain. تحدد النموذج والأدوات والتعليمات، وتتولى طبقة الوكيل تكرار التفاعل بين النموذج والأدوات. وعندما تحتاج إلى التحقق من سياسة أو طلب موافقة، أضف برمجيات وسيطة، أي شيفرة تعمل حول هذا التفاعل.
إذا كان لديك تطبيق LangChain قائم، فاحتفظ به حتى تحدد متطلبًا في سير العمل يصعب التعبير عنه من خلال هذه الطبقة. إضافة ذاكرة للمحادثة أو مراجعة استدعاء مقترح لأداة لا تكفي وحدها لتبرير الانتقال؛ فوكلاء LangChain الحاليون يتيحون الإمكانيتين بالاعتماد على LangGraph. راجع توثيق وكلاء LangChain.
أما إذا كان على التطبيق التحقق من طلب، وجمع الأدلة، وانتظار مسؤول التشغيل، وتنفيذ إجراء مصرح به، ثم مطابقة النتيجة مع السجل، ففكّر في سير عمل مخصص باستخدام LangGraph. هذه المراحل قواعد عمل يمكن تعريفها صراحة، مع ترك المهام المرنة داخل كل مرحلة للوكيل.
ترد شروط استخدام المكتبتين في صفحة منتج LangChain وصفحة منتج LangGraph. وتستند مقارنة الإمكانات إلى نظرة المطوّر العامة على بيئة التشغيل وتوثيق البرمجيات الوسيطة للموافقة. هذه توصية بشأن معمارية التطبيق، وليست ترتيبًا بحسب السرعة.
ما دور LangChain وLangGraph اليوم؟
يوفر LangChain المكونات وطبقة الوكيل، بينما يوفر LangGraph بيئة التشغيل التي تنسّق التنفيذ وتحفظ حالته تحت تلك الطبقة. التعامل معهما كبديلين متنافسين يؤدي إلى أعمال انتقال لا حاجة إليها.
LangChain: طبقة وكيل قابلة للتهيئة
يصف LangChain الدالة create_agent بأنها «بنية تشغيل مبسطة وقابلة للتهيئة بدرجة كبيرة». والمقصود بهذه البنية ما يحيط بالنموذج من تعليمات وأدوات قابلة للاستدعاء وضوابط للسلوك. وتذكر النظرة العامة نفسها صراحة أن «وكلاء LangChain مبنيون على LangGraph». راجع نظرة عامة على LangChain.
ميزته أنه يمنحك بنية مفيدة للبدء. ففي مساعد دعم الطلبات، يمكنك إتاحة دالة الاستعلام الموجودة لديك كأداة، ثم وضع سياسة تضبط استخدامها. لست مضطرًا إلى بناء الحلقة يدويًا قبل أن تبدأ العمل على المنتج.
وتظهر حدوده عندما لا تعود هذه البنية ملائمة للمهمة. فقد تصعب قراءة عملية طويلة الأمد ذات مراحل عمل محددة إذا كانت كل انتقالاتها مدفونة في التعليمات الموجهة للنموذج، وأعراف استخدام الأدوات، والبرمجيات الوسيطة. هذا حكم يتعلق بقابلية الصيانة، ولا يعني أن وكلاء LangChain لا يستطيعون التفرع أو الاحتفاظ بالحالة. المكتبة مجانية، لكن الوصول إلى النماذج والبنية التحتية التي تختارها لهما تكاليف منفصلة.
LangGraph: بيئة تشغيل تمنحك التحكم في سير العمل
يصف LangGraph نفسه بأنه «إطار وبيئة تشغيل لتنسيق التنفيذ على مستوى منخفض» للوكلاء طويلي التشغيل الذين يحتفظون بالحالة. العقدة وحدة عمل، والحافة تحدد وجهة التنفيذ التالية، والحالة هي المعلومات التي تنتقل بين هذه الخطوات. ويمكنك الجمع بين منطق التطبيق المعتاد والقرارات التي يتخذها النموذج. راجع نظرة عامة على LangGraph.
تظهر أفضلية LangGraph عندما يكون سير العمل نفسه جزءًا من المنتج. فقد تترك للنموذج صياغة مسودة رد، بينما تحدد شيفرة التطبيق ما إذا كانت الموافقة مطلوبة، وما إذا كان الإجراء المعتمد قد نُفّذ بالفعل.
أما حدوده فتتمثل في المسؤولية التي تقع عليك. عليك تصميم حالة ذات معنى، وانتقالات واضحة، وسلوك محدد عند الفشل. والرسم البياني ذو الحدود المربكة يظل برنامجًا مربكًا. LangGraph أيضًا مكتبة مجانية، ويمكن استخدامه من دون LangChain؛ لكن الاحتفاظ بمكونات النماذج والأدوات في LangChain يكون مفيدًا في كثير من الأحيان.

الحل الوسط العملي هو وضع وكيل LangChain داخل عملية أوسع. احتفظ بهذه الطبقة المفيدة للمهام المرنة التي تستخدم الأدوات، وحدد تسلسل العمل المحيط بها صراحة حيث تدعو الحاجة فقط.
مقارنة LangChain و LangGraph: أين تقع حدود التحكم؟
يتميز LangChain بسهولة العمل داخل حلقة الوكيل، بينما يمنحك LangGraph تحكمًا صريحًا بين مراحل العمل. استمرارية التنفيذ والمراجعة البشرية إمكانيتان مشتركتان، وتظل طريقة تهيئتهما مؤثرة.
حلقات الوكلاء والموافقة على الأدوات: الأفضلية لـ LangChain
المساعد الذي يقرأ طلبًا ويشرح حالته ويقترح ردًا ينسجم مع حلقة النموذج والأدوات. وإضافة مراجعة قبل أن ترسل أداة ذلك الرد تظل ضمن هذا النمط: تستطيع HumanInTheLoopMiddleware إيقاف استدعاءات الأدوات التي تحددها مؤقتًا، ثم قبول الموافقة أو تعديل الوسيطات أو الرفض. وهي تستخدم آليات حفظ الحالة في LangGraph للاحتفاظ بالحالة عند التوقف. راجع توثيق إدخال المراجعة البشرية في سير التنفيذ.
وهذا يجعل الخطوة التالية لتطبيق LangChain قائم محدودة نسبيًا: اضبط سياسة الموافقة وآلية دائمة لحفظ نقاط التحقق، ثم اربط القرار المعلّق بتطبيقك. البرمجيات الوسيطة لا تبني لك صندوق طلبات المراجعة، ولا تحدد الموظف المخوّل بالموافقة؛ فهاتان مسؤوليتان تقعان على التطبيق.
مراحل العمل المحددة صراحة: الأفضلية لـ LangGraph
اختر رسمًا بيانيًا مخصصًا عندما تحدد بيانات سجل العمل الخطوة الصحيحة التالية، بدلًا من اقتراح النموذج للأداة التالية. خذ مثلًا عملية تسجيل مورّد: جمع الأدلة، والتحقق من الحقول المطلوبة، وإحالة الحالة الاستثنائية إلى مسؤول التشغيل، ثم تفعيل المورّد بعد الموافقة فقط.
يستطيع الرسم البياني تمثيل هذه الانتقالات مباشرة. ويمكن لعقدة جمع الأدلة أن تستدعي وكيل LangChain، بينما تكون مرحلتا التحقق والتفعيل دالتين عاديتين لهما نتائج محددة. الفارق المفيد هنا هو قدرة LangGraph الموثقة على الجمع بين الخطوات الحتمية والخطوات التي ينفذها الوكيل. راجع نظرة عامة على LangGraph.
قاعدة الانتقال واضحة: انتقل إلى الطبقة الأدنى عندما يزيل التعريف الصريح للحالة والانتقالات الغموض المتكرر بشأن ما يُسمح للتطبيق بفعله تاليًا. طول التعليمات، أو زيادة عدد الأدوات، أو بطء استجابة النموذج لا يثبت وحده الحاجة إلى ذلك.
استمرارية التنفيذ: أساس مشترك ومسؤوليات تصميم مختلفة
تحفظ آلية نقاط التحقق حالة سير العمل الخاصة بسياق تنفيذ، بحيث يمكن مواصلة التنفيذ لاحقًا. أما المخزن فيحتفظ بالمعلومات التي يعرّفها التطبيق عبر سياقات التنفيذ، مثل تفضيل يُستخدم في محادثات منفصلة. كل منهما يعالج حاجة مختلفة لحفظ البيانات. راجع توثيق حفظ الحالة.
في كلا الخيارين، اختر وسيلة تخزين تناسب نوع العطل الذي يجب أن يصمد تطبيقك أمامه. يحتفظ InMemorySaver بنقاط التحقق داخل العملية الجارية ويفقدها عند إعادة تشغيلها. يصلح لعرض حالة المحادثة أو نقطة توقف، لكنه لا يثبت إمكان استعادة التنفيذ بعد تعطل عملية التنفيذ. وتلبي هذا المتطلب آلية حفظ مناسبة للإنتاج تستند إلى قاعدة بيانات، أو آليات حفظ الحالة التي يديرها Agent Server.
كذلك، ميّز بين نقطة التحقق وإثبات تنفيذ إجراء خارجي. حفظ حالة «جاهز لتفعيل المورّد» لا يثبت أن نظام المورّدين قد قبل التفعيل. احتفظ بالمعرّف الخارجي والنتيجة في سجل داخل التطبيق تستطيع مراجعته ومطابقته.
يوثّق المطوّر هذا السلوك والحاجة إلى جعل الآثار الجانبية قابلة للتكرار من دون تكرار أثرها على العمل. استخدم، مثلًا، معرّف عملية ثابتًا حتى لا تتمكن مهمة مستأنفة من إنشاء المورّد نفسه مرتين. راجع قواعد التوقف وإعادة التنفيذ.

LangChain وLangGraph مع Python: المهمة البسيطة نفسها
في استعلام بسيط عن حالة طلب، يعبّر LangChain عن المطلوب بشيفرة أقل لتنسيق التنفيذ. أما الرسم البياني المخصص فيجعل المسار بين النموذج والأدوات ظاهرًا، وتبرز فائدته حين تحتاج إلى تغيير هذا المسار.
يشترك المثالان في النموذج والتعليمات والأداة المخصصة للقراءة فقط والمدخلات. وسجل الطلب بيانات اختبار محلية وهمية صراحة. ثبّت langchain[anthropic] وlanggraph؛ ويتطلب استدعاء نموذج فعليًا ضبط ANTHROPIC_API_KEY الخاص بتطبيقك. معرّف النموذج في المثال مأخوذ من نظرة LangChain العامة الحالية ودليل البدء السريع لـ LangGraph. خضع المثالان لفحص محلي باستخدام نموذج ذي استجابات مبرمجة للتحقق من تنفيذ الأداة وحفظ الحالة. يتحقق هذا الفحص من ترابط المكونات، ولا يقيس سلوك النموذج الفعلي أو أداءه.
احفظ الإعداد المشترك التالي في common.py:
from langchain.chat_models import init_chat_model
from langchain.tools import tool
model = init_chat_model("claude-sonnet-4-6", temperature=0)
prompt = "Use lookup_order for order status. Do not invent a status."
request = {"messages": [{"role": "user", "content": "Status of order demo?"}]}
config = {"configurable": {"thread_id": "order-demo"}}
@tool
def lookup_order(order_id: str) -> str:
"""Read an order's status from a fictional local fixture."""
return {"demo": "shipped"}.get(order_id, "unknown order")LangChain: استخدم الحلقة الجاهزة
شغّل الشيفرة التالية في ملف مستقل بجوار common.py:
from common import model, prompt, request, config, lookup_order
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
agent = create_agent(
model, tools=[lookup_order], system_prompt=prompt,
checkpointer=InMemorySaver(),
)
print(agent.invoke(request, config)["messages"][-1].content)يعتمد هذا الوكيل أصلًا على بيئة تشغيل الرسم البياني. وتمرير آلية لحفظ نقاط التحقق لا يتطلب استبدال create_agent برسم بياني تكتبه يدويًا. راجع تهيئة الوكيل.
LangGraph: عرّف الحلقة نفسها صراحة
شغّل هذه الشيفرة البديلة بجوار ملف common.py نفسه:
from common import model, prompt, request, config, lookup_order
from langchain.messages import SystemMessage
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.graph import StateGraph, MessagesState, START
from langgraph.prebuilt import ToolNode, tools_condition
bound_model = model.bind_tools([lookup_order])
def call_model(state: MessagesState):
reply = bound_model.invoke([SystemMessage(prompt)] + state["messages"])
return {"messages": [reply]}
builder = StateGraph(MessagesState)
builder.add_node("model", call_model)
builder.add_node("tools", ToolNode([lookup_order]))
builder.add_edge(START, "model")
builder.add_conditional_edges("model", tools_condition)
builder.add_edge("tools", "model")
agent = builder.compile(checkpointer=InMemorySaver())
print(agent.invoke(request, config)["messages"][-1].content)توجّه الحافة الشرطية استدعاء الأداة المطلوب إلى tools، أو تنهي التنفيذ عندما ينتج النموذج ردًا نهائيًا. ثم تعيد عقدة الأدوات التحكم إلى النموذج. هذا هو نمط الحلقة المعرّفة صراحة في دليل البدء السريع لـ LangGraph، باستخدام المكونات المساعدة الجاهزة لعقدة الأدوات.
يستخدم المثالان عمدًا ذاكرة محصورة في العملية الجارية، ويعرضان مسار القراءة الناجح فقط. ولا يقدم أي منهما وصفة للنشر، أو إعدادًا لقاعدة بيانات تحفظ الحالة بصورة دائمة، أو سياسة متكاملة لمعالجة الأخطاء. كما أن تطابق الإعدادات لا يضمن أن تكون مخرجات النموذج متطابقة حرفيًا.
لهذه المهمة، اختر LangChain. يصبح الرسم البياني المخصص مفيدًا عندما يغيّر المتطلب التالي سير العملية: تحقق إلزامي قبل الاستعلام، أو قائمة انتظار منفصلة للحالات الاستثنائية، أو مرحلة موافقة تحتاج إلى حالة ونتائج تخصها.
أسعار LangSmith ونشر تطبيقات LangGraph
اختيار المكتبة لا يعني اختيار تعرفة استضافة مستقلة. القرار المدفوع هو تحديد خدمات LangSmith وبيئة النشر التي تحتاجها. جرى التحقق من الأسعار وتوثيق المنتجات الواردين أدناه بالرجوع إلى صفحات المطوّر المنشورة، بتاريخ 13 أكتوبر 2026.
ما الفرق بين LangChain وLangGraph وLangSmith؟
LangSmith هي المنصة المحيطة بتطبيقك للتتبع والتقييم والنشر. يسجل أثر التتبع تنفيذًا للتطبيق، وقد يتضمن استدعاءات النماذج والخطوات الأخرى. وهو يختلف عن نقطة التحقق المستخدمة لاستئناف التطبيق. راجع أسعار LangSmith وتعريفات الاستخدام.
المكتبتان مجانيتان. وتشغيل أي منهما على بنية تحتية تديرها بنفسك يستلزم احتساب تكاليف استدعاءات النماذج والحوسبة والتخزين والتشغيل. الاشتراك في LangSmith قرار منفصل؛ ويذكر توثيق النشر صراحة دعم تطبيقات LangGraph وLangChain.
هذه شروط الخطط المنشورة على langchain.com/pricing. تصف حاسبة الصفحة حصة التتبع المشمولة في Plus بأنها 10K أثر تتبع إجمالًا؛ فلا تعني إضافة مستخدمين منح حصة إضافية لكل مستخدم. وتعرض الحاسبة 0.005 LSU لكل أثر تتبع إضافي ضمن إعداد المراقبة المعروض. ولا ينبغي تعميم هذه القيمة على جميع خيارات الاحتفاظ بآثار التتبع.
تُحفظ آثار التتبع الأساسية لمدة 14 يومًا، والممتدة لمدة 180 يومًا مقابل رسم إضافي. إطالة مدة الاحتفاظ وخدمات التقييم قرارات مستقلة في الميزانية، وليست مزايا مجانية تأتي تلقائيًا مع اختيار الرسم البياني. راجع الأسئلة الشائعة عن الأسعار.
خيارات النشر وحدود كل منها
Cloud هو الخيار المُدار، وهو متاح ضمن Plus أو الخطط الأعلى. تتولى LangChain تشغيل البنية التحتية. وتعرض صفحة الأسعار العامة داخل Cloud خيارَي Serverless وDedicated بالأحجام Small وMedium وLarge. راجع بيئات النشر.
يناسب Serverless المهام المتقطعة أو التي تعمل في الخلفية أو تتحمل التأخير. فهو يخفض الموارد إلى الصفر عند الخمول، وتشمل Plus بيئة نشر صغيرة. ويناسب Dedicated التطبيقات الموجهة للعملاء التي تحتاج إلى توافر مستقر، مع بنية تحتية تعمل باستمرار، وتوسع تلقائي، ونسخ احتياطية، وتوافر عالٍ. هذه الاستخدامات التي يحددها المطوّر نفسه، وليست قياسات أداء أجرتها هذه المقارنة. راجع الأسئلة الشائعة عن أسعار النشر.
ثمة قيد عملي يؤثر في خطة الانتقال: يمكنك تغيير حجم بيئة النشر، لكن لا يمكنك تغيير نوعها بعد إنشائها. لذا فإن الانتقال من Serverless إلى Dedicated يتطلب الانتقال إلى بيئة نشر أخرى، ولا يكفي تعديل الحجم. كذلك تُحتسب رسوم موارد Serverless ما دامت مخصّصة، بما في ذلك وقت الخمول قبل خفض الموارد. عبارة «يخفض الموارد إلى الصفر» لا تعني أن كل ثانية لا يُعالَج فيها طلب مجانية. راجع ميزات منصة Cloud.
يحتفظ النشر الهجين بطبقة تحكم مُدارة، بينما تتولى أنت تشغيل البنية التحتية للوكلاء. طبقة التحكم هي الخدمة التي تدير عمليات النشر، وطبقة البيانات تشغّل الوكلاء والخدمات المساندة لهم. أما الاستضافة الذاتية مع طبقة تحكم فتضع الطبقتين داخل بيئتك. وتُدرج صفحة الأسعار خياري النشر الهجين والاستضافة الذاتية ضمن Enterprise، مع تسعير مخصص. ولا يوجد مبلغ شهري ثابت معلن لخطة المؤسسات يمكن استخدامه بدلًا منه. راجع الأسعار وبيئات النشر.
تشغيل Agent Server بصورة مستقلة خيار تشغيلي آخر، من دون طبقة تحكم، ومع تولّيك الخدمات المساندة. ويشترط توثيقه ترخيص LangSmith وPostgreSQL وRedis. وهو يختلف عن تضمين مكتبة LangGraph المجانية داخل تطبيقك. كذلك يحذّر توثيق التشغيل المستقل من نشر ذلك الخادم في بيئة Serverless تخفض مواردها إلى الصفر؛ فمنتج Cloud Serverless المُدار إعداد مختلف. راجع تشغيل Agent Server بصورة مستقلة.
عبء العمل نفسه يكلّف المبلغ نفسه مع كلا الإطارين
تحدد الصفحة العامة قيمة $1.00 لكل LSU، أي LangChain Standard Unit، وتعرض معدلات احتساب موارد النشر التالية:
- حوسبة بيئة التشغيل: 0.0675 LSU / vCPU-hr.
- ذاكرة بيئة التشغيل: 0.0090 LSU / GiB-hr.
- حوسبة قاعدة البيانات: 0.177 LSU / vCPU-hr.
- ذاكرة قاعدة البيانات: 0.025 LSU / GiB-hr.
تنطبق هذه المعدلات على استهلاك الموارد الخاضع للفوترة في بيئات النشر الإضافية من نوعَي Serverless وDedicated. راجع أسعار موارد النشر المعلنة.
سواء استخدمت وكيل LangChain أو تطبيق LangGraph مخصصًا، فإن الصيغة الشهرية الموحدة لخطة Plus هي $39 × عدد المستخدمين، مضافًا إليها عدد ساعات كل مورد خاضع للفوترة مضروبًا في سعره أعلاه، ثم تكاليف النماذج والتتبع وأي استخدام آخر تنطبق عليه رسوم. اخصم حصة النشر المشمولة قبل احتساب الموارد المدفوعة. ولا تحوّل عدد الطلبات أو عقد الرسم البياني إلى ساعات موارد من دون قياسات.
فيما يلي حسابات تستند إلى الأحجام التي ينشرها المطوّر، وهي صراحة قيم محسوبة وليست أسعار خطط منقولة. تتضمن بيئة نشر Serverless إضافية بحجم Small موارد تشغيل تبلغ 1 vCPU و2 GiB، ما يعطي 1 × 0.0675 + 2 × 0.0090 = $0.0855 لكل ساعة تخصيص للموارد. أما بيئة Dedicated بحجم Small فتتضمن 3 vCPU و6 GiB للتشغيل، إضافة إلى 1 vCPU و4 GiB لقاعدة البيانات، ما يعطي 3 × 0.0675 + 6 × 0.0090 + 1 × 0.177 + 4 × 0.025 = $0.5335 لكل ساعة تخصيص للموارد. هذه تقديرات للموارد بحسب الحجم قبل أي توسع إضافي أو خدمات أخرى، استنادًا إلى جدول الأحجام والأسعار المعلنة.
لمستخدم واحد في Plus، مع بقاء موارد Dedicated السابقة ثابتة، يكون المجموع الشهري الجزئي $39 + $0.5335 × ساعات تخصيص الموارد، قبل الرسوم الأخرى المذكورة. الصيغة واحدة لكلا الإطارين. ولتحديد فاتورة شهرية مضمونة، تحتاج إلى معرفة المدة الفعلية لاستخدام موارد بيئة النشر وتوسعها.
لا توجد نقطة يصبح عندها أحد الإطارين أوفر من الآخر مع تساوي عبء العمل. الفارق المحسوب هو $0 عندما يتساوى عدد المستخدمين والموارد الخاضعة للفوترة واستخدام النماذج والأدوات وسياسة التتبع. قد تؤدي إعادة تصميم سير العمل إلى تغيير هذه الكميات، لكن اسم المكتبة لا يمنح خصمًا ولا يثبت انخفاض فاتورة الرموز.
الانتقال من LangChain إلى LangGraph من دون إعادة كتابة التطبيق
انقل الجزء الذي يحتاج إلى تحكم أدق في تنسيق التنفيذ، واحتفظ بالمكونات التي ما زالت تؤدي الغرض. الكلفة الفعلية للانتقال هي إعادة تصميم الحالة والسلوك واستعادة التنفيذ، وليست تغيير سطر الاستيراد.
ميّز أولًا بين تحديث واجهة API قديمة وقرار بناء رسم بياني مخصص. يوصي دليل الانتقال الحالي باستخدام langchain.agents.create_agent بدلًا من المُنشئ السابق langgraph.prebuilt.create_react_agent. اتباع هذا التحديث لا يعني التخلي عن LangGraph في الطبقة الأساسية، وقد يستفيد تطبيق قديم من إمكانات LangChain الحالية قبل أن يحتاج إلى تنسيق مخصص. راجع دليل الانتقال في LangChain.
حدد المتطلب الذي تعجز الحلقة الحالية عن التعبير عنه بوضوح
اكتب التسلسل المطلوب بدقة، أو القرار المعلّق، أو مشكلة استعادة التنفيذ. قد تناسب البرمجيات الوسيطة متطلب «انتظر الموافقة قبل استدعاء هذه الأداة». أما «تابع حالة تسجيل مورّد عبر مراحل الأدلة والمراجعة والتفعيل ومطابقة النتائج» فيرجّح الحاجة إلى سير عمل صريح.
حافظ على استقرار واجهات النماذج والأدوات
أعد استخدام موائمات النماذج والتعليمات والدوال الخاصة بمجال العمل التي ما زالت تخدم المهمة. أضف رسمًا بيانيًا حول العملية المحدودة التي تحتاج إليه. تجنّب استبدال النموذج وتغيير سلوك الأدوات وتنسيق التنفيذ في الوقت نفسه، لأن ذلك يصعّب تحديد مصدر الأعطال الجديدة.
عرّف الحالة الدائمة وسجلات إثبات الإجراءات الخارجية
افصل بين رسائل المحادثة وحالة المعاملة والقرارات المعلّقة والإجراءات الخارجية المنجزة. حدد ما يجب حفظه في نقاط التحقق، وما ينتمي إلى مخزن مشترك، وما يبقى في سجل التطبيق المرجعي. حفظ نص المحادثة لا يعني تلقائيًا اكتمال نقل سير عمل تجاري.
ضع خطة للمهام التي بدأ تنفيذها بالفعل
لا تفترض أن الرسم البياني المعدّل يستطيع تفسير كل نقطة تحقق قديمة. حدد ما إذا كانت المهام المعلّقة ستكتمل بالتنفيذ السابق، أم ستخضع حالتها لعملية نقل صريحة. حافظ على معرّفات المهام الثابتة وسجلات إثبات الإجراءات الخارجية اللازمة لمنع تكرارها.
تحقق من سلوك التوقف والاستئناف قبل توسيع نطاق الانتقال
اختبر سير العمل المحدود مع الرفض، وإعادة تشغيل عملية التنفيذ، وتكرار طلب الاستئناف. افحص سجل التطبيق الناتج، لا الإجابة النهائية وحدها. وسّع نطاق الانتقال عندما تجعل الحدود الجديدة السلوك أسهل في الشرح والتشغيل.
لا تنقل مساعد LangChain يعمل جيدًا لمجرد أن الرسوم البيانية تبدو أكثر ملاءمة لبيئات الإنتاج. إذا كانت الحلقة والبرمجيات الوسيطة والتخزين الدائم تلبي المتطلبات، فإن الرسم البياني المخصص يضيف عملًا تصميميًا من دون فائدة مثبتة.
والارتباط التقني بمنظومة معينة له طبقات أيضًا. يمكن أن تبقى مكونات النماذج والأدوات القابلة لإعادة الاستخدام بينما تتغير حالة الرسم البياني وتدفق التحكم فيه. أما البنية التحتية المستضافة فتضيف قيودها الخاصة: يجري الوصول إلى آليات حفظ الحالة في Cloud عبر Agent Server، ولا يمكن الوصول إلى قاعدة البيانات المستضافة مباشرة. ضع هذا القيد في الحسبان عند أي تصدير للبيانات أو انتقال لاحق إلى استضافة أخرى. راجع تفاصيل حفظ الحالة في Cloud.
إذا كان قرارك يتعلق بالمقارنة بين التنسيق عبر الرسوم البيانية وبنية فريق من الوكلاء المتخصصين، فاقرأ مقارنة LangGraph وCrewAI. وللاطلاع على خيارات خارج هذه المنظومة، راجع المقارنة الأوسع لأطر عمل وكلاء الذكاء الاصطناعي.
أسئلة شائعة عند الاختيار بين الإطارين
هل أحتاج إلى LangGraph لمجرد إضافة الذاكرة أو الموافقة البشرية؟
تحتاج إلى الإمكانات الأساسية التي يوفرها، لكنك لا تحتاج بالضرورة إلى كتابة رسم بياني مخصص. يستخدم وكلاء LangChain الحاليون LangGraph بالفعل، ويدعمون آليات حفظ نقاط التحقق والبرمجيات الوسيطة للموافقة. اختر تخزينًا دائمًا عندما يجب أن تبقى الحالة محفوظة بعد إعادة تشغيل العملية.
هل LangGraph بديل لـ LangChain؟
يمكن أن يكون مدخلك المباشر لتنسيق التنفيذ، مع بقاء مكونات LangChain داخل التطبيق. إنهما طبقتان متكاملتان. يغيّر الرسم البياني المخصص طريقة تعريف سير العمل، ولا يستلزم بالضرورة استبدال موائمات النماذج أو الأدوات.
هل ينبغي نقل تطبيق LangChain الذي يعمل لديّ؟
انقل سير العمل المعني عندما تحل المراحل الصريحة أو التفرعات أو حدود استعادة التنفيذ مشكلة محددة. واحتفظ بالطبقة الحالية عندما تعبّر حلقة الوكيل والبرمجيات الوسيطة عن متطلباتك بوضوح.
هل يلزمني LangSmith لاستخدام أي من المكتبتين؟
المكتبتان مجانيتان ويمكن استخدامهما بصورة مستقلة عن المنصة المدفوعة. ولخدمات النشر المُدار والتتبع والتقييم الاختيارية شروط منفصلة. كذلك يختلف Agent Server المستقل الذي يتطلب ترخيصًا عن تشغيل المكتبة مفتوحة المصدر داخل خدمتك.
أيهما أسرع أو أقل تكلفة؟
لا تثبت هذه المقارنة تفوقًا عامًا في السرعة. عبء العمل نفسه الخاضع للفوترة يستخدم أسعار LangSmith المعلنة نفسها. قارن المهام المكتملة، بما يشمل استدعاءات النماذج وإعادات المحاولة ووقت استخدام الموارد، قبل نسبة فارق في التكلفة إلى تغيير المعمارية.
استخدم قائمة تدقيق سير العمل التجاري بالذكاء الاصطناعي لتحديد المهمة وحدود مراجعتها والمسؤول عن تشغيلها قبل تغيير طريقة تنسيق التنفيذ.
- تاريخ النشر
- التصنيف
- Build
- اللغة










