Neon Functions תומכות כעת בחיבורי סטרימינג (streaming) ללא הגבלת זמן, מה שמאפשר לסוכני AI לשמור על ערוץ חי פעיל למשך שניות, דקות או אפילו יותר, מבלי להיתקל במגבלות ה-timeout שסוגרות את רוב עומסי העבודה ה-serverless. השינוי הזה חשוב לכל מי שבנה עוזרים בסגנון צ'אט או בוטים המשתמשים בכלים, מכיוון שסטרימינג שבור מעכב שיחה ופוגע בחוויית המשתמש.
למה serverless וסוכני AI היו תמיד בסתירה
רוב הפלטפורמות ה-serverless בנויות למשימות מהירות מסוג "שגר ושכח" (fire-and-forget). הן אוכפות מגבלות זמן ריצה קשיחות — לרוב 10 שניות במסלולים החינמיים ו-60 שניות במסלולים בתשלום — כדי לשמור על משאבים צפויים. סוכן AI, לעומת זאת, מבלה זמן בחשיבה, בקריאה לכלים חיצוניים ובהפקה של טוקנים (tokens) ברגע שהם נוצרים. שלב ה"חשיבה" הזה נמשך לעיתים קרובות עשרות שניות, וזרם הטוקנים יכול להימשך כל עוד המודל מייצר פלט. כשהטיימר של הפלטפורמה פוקע, היא סוגרת את החיבור והלקוח רואה סטרימינג שבור.
הפתרון של Neon: סטרימינג ארוך טווח כברירת מחדל
Neon Functions משנה את חוקי המשחק. קריאת פונקציה יכולה להישאר פתוחה ללא הגבלה, תוך אספקת נתונים באמצעות WebSockets או Server-Sent Events (SSE) ללא צורך בהגדרות מיוחדות. הפלטפורמה מתייחסת לסטרימינג ארוך כאל בקשה רגילה, כך שמפתחים כותבים את הלוגיקה שמייצרת את הסטרימינג ומשאירים ל-Neon לטפל בשאר.
בבדיקה שנערכה לאחרונה, שתי נקודות קצה (endpoints) הדגימו את ההתנהגות הזו:
- Heartbeat endpoint – הפונקציה הפיקה "tick" פעם בשנייה במשך 90 שניות. מסלולי serverless טיפוסיים היו מסיימים את הבקשה לאחר 10 או 60 שניות; Neon שמר על החיבור פעיל עד שהפונקציה הסתיימה מעצמה.
- Token-relay endpoint – הפונקציה הזרמה טוקנים ממודל AI ללקוח ברגע שכל טוקן נוצר. המשתמשים ראו את התשובה מופיעה מילה במילה במקום לחכות לכל גוש הטקסט.
שתי הדוגמאות דרשו רק בקשה אחת מהלקוח; לא נדרשו טכניקות של polling או keep-alive.
מי מרוויח, ומי צריך להישאר זהיר
צוותים שבונים עוזרים שיחתיים, סוכנים המשתמשים בכלים, או כל שירות שצריך לספק תוצאות הדרגתיות (incremental) מרוויחים רווח מיידי: ה-timeout נעלם. התוצאה היא קוד פשוט יותר, שיהוי (latency) נמוך יותר וחוויית משתמש חלקה יותר.
כדאי לשים לב להשלכות (trade-offs):
- Request-only model – Neon Functions מטפלת בסטרימינג שנשאר מחובר לבקשה פעילה. משימות רקע (background jobs) שחייבות להמשיך מעבר לבקשה עדיין זקוקות למתזמן נפרד כמו Inngest או מנוע workflow דומה.
- Cold starts – פונקציות שאינן בשימוש יכולות לצמצם את המשאבים לאפס (scale to zero), כך שהבקשה הבאה עשויה לסבול מעיכוב של cold-start. סטרימינג פעיל מונע צמצום משאבים, אך הבקשה הראשונה לאחר חוסר פעילות עדיין תשלם את עלות ההתנעה.
מה הלאה
השורה התחתונה: Neon Functions מסירה את תקרת ה-timeout שגרמה למפתחי AI להיסחב זמן רב מדי לפתרונות מעקף. על ידי מתן אפשרות לבקשה להישאר פתוחה כל עוד הסוכן צריך לחשוב ולדבר, Neon הופכת פריסה של סוכני AI בסטרימינג לפשוטה כמו כל פונקציית serverless אחרת.
