title: “LangChain و LangGraph” sidebarTitle: “LangChain و LangGraph” description: “قم بتتبع الرسوم البيانية والعقد والأدوات والمسترجعات واستدعاءات النموذج برمز واحد.” icon: “/images/frameworks/langchain.svg”
محول واحد يخدم كليهما. يعمل LangGraph على مدير الاستدعاءات (callback manager) الخاص بـlangchain-core، لذا فإن تتبع أحدهما يتابع الآخر.
التثبيت
failproofai-sdk[langchain].
المدعوم: langchain-core 1.4.7 إلى 2.0، langgraph 1.2 إلى 2.0. خارج هذا النطاق، يتم تثبيت المحول وإصدار تحذير مرة واحدة.
التتبع
instrument() محلل التتبع عبر langchain_core.tracers.context.register_configure_hook. يقوم LangChain بحقنه في كل مدير استدعاءات يقوم ببنائه، بحيث يتم التقاط الرسوم البيانية والأدوات والنماذج دون تغيير موقع الاستدعاء — بما في ذلك تلك الموجودة داخل المكتبات التي لم تكتبها.
ما يتم تسجيله
تصبح العقدة hook وليس وكيلاً متداخلاً.
agent_id هي الجانب الأساسي عبر كل سطح لوحة التحكم — تعزيز retrieve و grade_documents و should_continue إلى وكلاء سيغرقها، ويعنون الجلسة بعد أي عقدة تحدث لتعمل أولاً.
تعرض رسوم Hook بنفس الطريقة وتعطيك عرض الكمون لكل عقدة.
سمّ عقدك كما تريد. يتم تحديد تشغيل العقدة من خلال شكلها — تشغيل غير ورقة يحمل LangGraph الخاص بـ step tag — لا من خلال اسمها أبداً.
استخدام اسم العقدة بعد الشيء الذي يعمل عليه قد يؤدي إلى اختفاء أحداث الشيء. لم يعد الحال كذلك.
البث
لا تصدر.stream() و .astream() أحداث لكل رمز. يتم طيها في model_response الختامي:
عدادات الرموز على استجابة مرسلة
مسألة منفصلة، وسهلة الإغفال: يرسل OpenAI الاستخدام على استجابة مرسلة عند طلبها فقط.model_response يصل بدون عدادات الرموز.
مثال
سمّ رسومك البيانية
بشكل افتراضي، تأخذ رسالة الجذر اسم الرسم البياني الخاص به. قم بلفها للحصول على تسمية اخترتها:parent_id:
agent_id بقليل من الاختلاف. استخدم دوراً أو اسم عقدة، أبداً UUID أو سلسلة نصية لكل تشغيل.
التحكم في الجلسة
معرّف الجلسة يتم حله بهذا الترتيب، المطابقة الأولى تفوز:instrument("langchain", session_id=...)config={"metadata": {"failproofai_sdk_session_id": ...}}- نطاق
failproofai_sdk.session()المحيط metadata["session_id"]أوmetadata["conversation_id"]أوmetadata["thread_id"]- معرّف التشغيل الجذري
الخيارات
capture_content=False للبيانات المنظمة. الهيكل والتوقيتات وعدادات الرموز وأسماء الأدوات والنتائج لا تزال مسجلة؛ أجسام الرسائل لا.
include_chains ينطبق على التشغيلات المتداخلة فقط. runnable الذي تستدعيه على المستوى الأعلى هو جذر الجلسة، بحيث يصبح رسمة الوكيل بدلاً من زوج hook، والتسمية هنا ليس لها تأثير.
الإنسان في الحلقة
interrupt() ينتج أربعة أحداث، وليس أي زوج مكرراً:
human_wait إلى human_input الأمر والإجابة (كلاهما مُسقط تحت capture_content=False، جنباً إلى جنب مع مصادر وثائق الاسترجاع — ينجو عدد الوثائق). agent_pause إلى agent_resume هو الزوج الوحيد الذي يعطي الوقت المتوقف، لذا بدونه فإن انتظار إنساني لمدة عشر دقائق يتم تحديده كوقت وكيل نشط. تبقى الرسالة الجذرية مفتوحة عبر الفجوة، مما يبقي كلا الاستدعاءات في جلسة واحدة.
المشاكل الشائعة
أداة رفع الأخطاء تحبط الرسم البياني بالكامل
أداة رفع الأخطاء تحبط الرسم البياني بالكامل
create_react_agent تنشر الاستثناء. للسماح للنموذج برؤية الفشل والمتابعة، قم بإنشاء عقدة الأداة بشكل صريح:tool_result يحمل خطأ في كلا الحالتين. هذا يقرر فقط ما إذا كان التشغيل ينجو منه.وكيل مسمى بعد فئة النموذج يظهر في التتبع
وكيل مسمى بعد فئة النموذج يظهر في التتبع
llm.invoke() مباشر خارج أي رسم بياني ليس له تشغيل أب، لذا فإنه يفتح رسمة جذرية ويصدر زوج النموذج الخاص به داخلها. لوحة التحكم تربط الأوراق بوكيل مفتوح، بحيث تكون الرسمة مقصودة. سمّها:كل حدث يظهر مرتين
كل حدث يظهر مرتين
لقد مررت معالج Failproof في
config={"callbacks": [...]} بالإضافة إلى استدعاء instrument(). قم بإزالته. يغطي خطاف التكوين بالفعل كل مدير استدعاءات في العملية.الموافقات البشرية تظهر كأخطاء
الموافقات البشرية تظهر كأخطاء
لا تفعل. يرفع LangGraph
GraphInterrupt عبر نفس المسار مثل استثناء حقيقي، لذا كل توقف يصل إلى المتتبع كرد استدعاء خطأ. يتم التعامل مع أي فئة فرعية من GraphBubbleUp كتدفق تحكم بدلاً من ذلك، لذا فإن موافقة لا تطلي خطأ أحمر.لا شيء مسجل
لا شيء مسجل
تحقق بهذا الترتيب:
instrument() تشغل قبل تنفيذ الرسم البياني؛ هناك with failproofai_sdk.session(): حول الاستدعاء؛ تم ضبط FAILPROOFAI_SDK_STRICT=1، لذا يرفع خطاف منخفض بدلاً من امتصاصه.التالي
كيف يعمل
الأزواج والمعرّفات ودورة حياة الجلسة والتسليم.
قراءة التتبع
اتبع السببية عبر الجلسة التي التقطتها للتو.
أطر عمل أخرى
CrewAI وLlamaIndex وPydantic AI والوكلاء المخصصون.

