LangChain يفقد محتوى الاستدلال في نماذج CoT: كيف نعالج خللًا في التكامل مع مزوّدي LLM
اكتشف مطوّرون خللًا خطيرًا في LangChain: فئات ChatOpenAI وChatDeepSeek وغيرها من فئات الدردشة لا تمرّر كتلة reasoning content عند التكامل مع مزوّدي LLM. وطوال الوقت الذي «يفكّر» فيه النموذج، لا يرى المستخدم سوى شاشة فارغة. حلّل المؤلف المشكلة عمليًا على نموذج stepfun/step-3.5-flash ومنصة polza.ai، واقترح حلًا عمليًا يقوم على توسيع الفئات القياسية.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
واجه المطوّرون الذين يعملون مع نماذج CoT عبر LangChain مفاجأة غير سارة: فئات الدردشة في الإطار، ومنها ChatOpenAI وChatDeepSeek وما يماثلها، لا تحتفظ بكتلة reasoning content في الإجابة النهائية. وهذا يعني أن المستخدمين ينتظرون ببساطة بينما «يفكّر» النموذج دون أي تغذية راجعة، فيما تختفي عملية الاستدلال نفسها دون أثر.
وتمسّ المشكلة التكامل مع معظم المزوّدين والمجمّعات الشائعة لنماذج LLM. فعندما يولّد نموذج مزوّد بخاصية الاستدلال، مثل نماذج عائلة DeepSeek-R1 أو step-3.5-flash من Stepfun، إجابةً ما، تُسجَّل عملية الاستدلال الداخلية في كتلة منفصلة باسم reasoning_content. وهذه الكتلة تحديدًا هي التي تضيع: فلا ChatOpenAI ولا غيرها من فئات الدردشة في LangChain تمرّرها إلى بقية سلسلة المعالجة.
لماذا يهم ذلك؟ نماذج CoT (Chain of Thought، أي سلسلة الاستدلال) مدرَّبة تحديدًا على صياغة خطوات تفكير صريحة قبل تقديم الإجابة النهائية. ويختارها المطوّرون من أجل هذه الشفافية بالذات: إمكانية أن يُعرض على المستخدم كيف توصّل النموذج إلى القرار، أو استخدام الخطوات الوسيطة في معالجة لاحقة داخل خط الإنتاج (pipeline). وحين تضيع كتلة الاستدلال، تفقد مقاربة CoT قيمتها.
وغياب بثّ reasoning content (streaming) يضرّ مباشرةً بتجربة المستخدم (UX). فالمستخدم يرى شاشة فارغة بينما يجري النموذج سلسلة استدلال يبلغ طولها عدة مئات من الرموز (tokens). ويرتفع زمن الاستجابة المحسوس بشكل حاد، مع أن النموذج يعمل فعليًا منذ البداية. وبالنسبة إلى المنتجات التي تُعدّ فيها سرعة الإدراك أمرًا حاسمًا، فهذا عيب ملموس.
اكتشف المؤلف المشكلة عمليًا أثناء عمله مع نموذج stepfun/step-3.5-flash عبر المزوّد الروسي polza.ai. فالمزوّد يمرّر reasoning content ضمن التدفق، لكن LangChain لا يلتقطه ولا يمرّره إلى ما بعده. ولم يعالج أي من المجمّعات التي جُرّبت المشكلة من جانبه.
وجاء الحل عبر توسيع فئات الدردشة القياسية في LangChain. وجوهر المقاربة هو إعادة تعريف الدالة التي تعالج الأجزاء المتدفقة (chunks) بحيث تستخرج صراحةً الحقل reasoning_content من ردّ المزوّد وتضيفه إلى بنية AIMessage الناتجة. وبهذا تصبح كتلة الاستدلال متاحة في وضع البثّ وفي الاستدعاء العادي للنموذج على حد سواء.
وعمليًا يعني ذلك إنشاء فئة دردشة مخصّصة ترث من ChatOpenAI، مع إعادة تعريف الدالة _stream ومنطق تجميع الرسالة النهائية. وأثناء البثّ يبدأ reasoning_content بالظهور فورًا، بالتوازي مع توليد النموذج لاستدلاله، وهو ما يحسّن استجابة الواجهة بصورة جوهرية.
وتكمن أهمية هذه الحالة في أنها ليست حلًا تقنيًا فحسب، بل عَرَضٌ لمشكلة أوسع: فالأُطر العامة الغرض مثل LangChain تتأخر في التكيّف مع خصوصيات الفئات الجديدة من النماذج. فمعايير API لنقل reasoning content تختلف من مزوّد إلى آخر، ولا يوجد نهج موحّد، وإلى أن يظهر، سيضطر المطوّرون إلى سدّ الثغرات بأنفسهم عبر التخصيص.
وبالنسبة إلى الفرق التي تبني منتجاتها على نماذج CoT وLangChain، يوفّر النهج الموصوف قالبًا جاهزًا للتوسيع. ويمكن تكراره مع أي مزوّد يعيد reasoning_content بصيغة متوافقة مع OpenAI API.
- 1 نوفمبر 2026Google تقرّ: وضع AI Mode يخفض إيرادات البحث، وأسهمها تهبط 15%
- 31 أكتوبر 2026مؤلف يعرض سيناريو على محكمة محلّفين من الذكاء الاصطناعي: الحكم كلّف 850 ألف توكن
- 31 أكتوبر 2026Anthropic: دمج الوكلاء الفرعيين في حلقة واحدة سرّع المهام لدى أحد العملاء إلى الضعف
- 30 أكتوبر 2026Claude Enterprise يحصل على تقارير ذكية: من يستخدم الذكاء الاصطناعي وكيف وبكم
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.