إذا سبق لك استدعاء API متوافق مع OpenAI مع تمكين البث ولم يتِك شيء، فأنت لست وحدك. بعد تصحيح عشرات الحالات (وبناء أداة agent-stream-doctor لأتمتتها)، أرى دائماً نفس أنماط الفشل الأربعة.
١. الردود الاستدلالية فقط: بعض النماذج ترسل الإجابة كاملة في قناة reasoning وتترك قناة content فارغة. البث «يعمل» لكن واجهتك لا تعرض شيئاً. افحص حقول delta دائماً.
٢. غياب finish_reason: عندما يقتطع البروكسي القطعة الأخيرة يختفي finish_reason ويستكتب عملاء كثيرون الرسالة بصمت. اعتبر غيابه علامة خطر.
٣. تلف إطار SSE: انقسام أحرف UTF-8 متعددة البايتات عبر حدود القطع أو إعادة كتابة البادئة data: تكسر المحللات بصمت. سجّل الإطارات الخام قبل التحليل.
٤. استدعاءات أدوات مبتورة: دلتا tool_call الجزئية التي لا تكتمل تُعلّق الوكيل. جمّع الحجج وتحقق منها قبل التنفيذ.
الحل واحد دائماً: راقب البث الخام أولاً ثم فكّر في البروتوكول. هذا بالضبط ما تفعله أداتي التشخيصية — راجعها على GitHub.