تدعم Neon Functions الآن اتصالات البث غير محدودة المدة، مما يتيح لوكلاء الذكاء الاصطناعي إبقاء قناة مباشرة مفتوحة لثوانٍ أو دقائق أو لفترات أطول دون الاصطدام بحدود المهلة الزمنية التي تؤدي إلى إيقاف معظم أعباء العمل عديمة الخادم (serverless). هذا التغيير مهم لأي شخص يقوم ببناء مساعدين بأسلوب الدردشة أو بوتات تستخدم الأدوات، لأن انقطاع البث يؤدي إلى توقف المحادثة وإفساد تجربة المستخدم.

لماذا كانت الأنظمة عديمة الخادم ووكلاء الذكاء الاصطناعي في حالة تعارض

تُبنى معظم المنصات عديمة الخادم لمهام سريعة تنتهي بمجرد تنفيذها (fire-and-forget). فهي تفرض حدوداً صارمة للتنفيذ — غالباً ما تكون 10 ثوانٍ في الفئات المجانية و60 ثانية في الخطط المدفوعة — للحفاظ على قابلية التنبؤ بالموارد. ومع ذلك، يقضي وكيل الذكاء الاصطناعي وقتاً في التفكير، واستدعاء الأدوات الخارجية، وإصدار الرموز (tokens) فور توليدها. وغالباً ما تمتد مرحلة "التفكير" هذه لعشرات الثواني، ويمكن أن يستمر تدفق الرموز طالما أن النموذج ينتج مخرجات. وعندما تنتهي المهلة الزمنية للمنصة، يتم إغلاق الاتصال ويرى العميل بثاً مقطوعاً.

رد Neon: بث طويل الأمد بشكل افتراضي

تقلب Neon Functions الموازين. حيث يمكن أن تظل استدعاءات الدوال مفتوحة إلى أجل غير مسمى، مما يوفر البيانات عبر WebSockets أو Server-Sent Events (SSE) دون أي تكوين خاص. تتعامل المنصة مع البث الطويل كطلب عادي، لذا يكتب المطورون المنطق الذي يولد البث ويتركون لـ Neon التعامل مع الباقي.

في اختبار حديث، أظهرت نقطتا نهاية (endpoints) هذا السلوك:

  • نقطة نهاية نبض القلب (Heartbeat endpoint) – أصدرت الدالة "نبضة" (tick) مرة واحدة في الثانية لمدة 90 ثانية. كانت الفئات عديمة الخادم التقليدية ستنهي الطلب بعد 10 أو 60 ثانية؛ لكن Neon أبقت الاتصال حياً حتى انتهت الدالة من تلقاء نفسها.
  • نقطة نهاية ترحيل الرموز (Token-relay endpoint) – قامت الدالة ببث الرموز من نموذج ذكاء اصطناعي إلى العميل بمجرد إنتاج كل رمز. رأى المستخدمون الإجابة تظهر كلمة بكلمة بدلاً من الانتظار حتى اكتمال كتلة النص بالكامل.

تطلب كلا المثالين طلباً واحداً فقط من العميل؛ ولم تكن هناك حاجة لتقنيات الاستطلاع (polling) أو حيل الحفاظ على الاتصال (keep-alive).

من المستفيد، ومن يجب أن يظل حذراً

تحقق الفرق التي تبني المساعدين الحواريين، أو الوكلاء الذين يستخدمون الأدوات، أو أي خدمة تحتاج إلى دفع نتائج تدريجية، مكسباً فورياً: اختفاء مهلة الانتظار (timeout). والنتيجة هي كود أبسط، وزمن انتقال أقل، وتجربة مستخدم أكثر سلاسة.

هناك بعض المقايضات التي تستحق الملاحظة:

  • نموذج الطلب فقط (Request-only model) – تتعامل Neon Functions مع التدفقات التي تظل مرتبطة بطلب نشط. أما المهام التي تعمل في الخلفية والتي يجب أن تستمر لفترة أطول من الطلب، فلا تزال بحاجة إلى مجدول منفصل مثل Inngest أو محرك سير عمل مماثل.
  • البدايات الباردة (Cold starts) – يمكن للدوال الخاملة أن تتوسع إلى الصفر، لذا قد يتسبب الطلب التالي في تأخير بسبب البداية الباردة. يمنع البث النشط تقليص الموارد (scaling down)، ولكن الطلب الأول بعد فترة الخمول لا يزال يتحمل تكلفة بدء التشغيل.

ما يجب مراقبته لاحقاً

الخلاصة: تزيل Neon Functions سقف المهلة الزمنية الذي أجبر مطوري الذكاء الاصطناعي لفترة طويلة على استخدام حلول بديلة. ومن خلال السماح للطلب بالبقاء مفتوحاً طالما احتاج الوكيل للتفكير والتحدث، تجعل Neon نشر وكلاء الذكاء الاصطناعي الذين يعتمدون على البث أمراً بسيطاً مثل أي دالة أخرى عديمة الخادم.