Neon Functions тепер підтримують стрімінгові з'єднання без обмеження тривалості, що дозволяє ШІ-агентам тримати канал відкритим протягом секунд, хвилин або навіть довше, не стикаючись із лімітами тайм-аутів, які переривають роботу більшості serverless-навантажень. Ця зміна є важливою для всіх, хто розробляє чат-асистентів або ботів, що використовують інструменти, оскільки розірваний стрім зупиняє розмову та псує користувацький досвід.
Чому serverless-платформи та ШІ-агенти не ладнали
Більшість serverless-платформ створені для швидких завдань за принципом «виконав і забув». Вони встановлюють жорсткі ліміти на виконання — часто 10 секунд на безкоштовних тарифах і 60 секунд на платних планах — щоб забезпечити передбачуваність ресурсів. Однак ШІ-агент витрачає час на «роздуми», виклик зовнішніх інструментів та генерацію токенів у міру їх створення. Ця фаза «роздумів» часто триває десятки секунд, а потік токенів може продовжуватися доти, доки модель генерує вихідні дані. Коли таймер платформи вичерпується, вона закриває з'єднання, і клієнт бачить розірваний стрім.
Відповідь Neon: тривале стрімінгове з'єднання за замовчуванням
Neon Functions змінює правила гри. Виклик функції може залишатися відкритим необмежений час, передаючи дані через WebSockets або Server-Sent Events (SSE) без будь-якої спеціальної конфігурації. Платформа розглядає тривалий стрім як звичайний запит, тому розробники пишуть логіку генерації стріму, а Neon бере на себе все інше.
У нещодавньому тесті два ендпоінти продемонстрували цю поведінку:
- Heartbeat endpoint — функція видавала «тік» раз на секунду протягом 90 секунд. Типові serverless-тарифи перервали б запит через 10 або 60 секунд; Neon підтримував з'єднання відкритим, поки функція не завершила роботу самостійно.
- Token-relay endpoint — функція передавала токени від ШІ-моделі клієнту одразу після їх створення. Користувачі бачили, як відповідь з'являється слово за словом, замість того щоб чекати на весь блок тексту.
Обидва приклади потребували лише одного запиту від клієнта; жодних методів опитування (polling) чи хитрощів із keep-alive не знадобилося.
Кому це вигідно, а кому варто бути обережним
Команди, які створюють розмовних асистентів, агентів з використанням інструментів або будь-який сервіс, що потребує передачі інкрементальних результатів, отримують миттєву перевагу: тайм-аут зникає. Результатом є простіший код, менша затримка та плавніший користувацький досвід.
Варто звернути увагу на компроміси:
- Модель лише для запитів — Neon Functions обробляє стріми, які залишаються прив'язаними до активного запиту. Для фонових завдань, які мають виконуватися довше за запит, все ще потрібен окремий планувальник, такий як Inngest або подібний двигун робочих процесів (workflow engine).
- Холодні старти — функції, які не використовуються, можуть масштабуватися до нуля, тому наступний запит може супроводжуватися затримкою на «холодний старт». Активний стрім запобігає масштабуванню вниз, але перший запит після періоду бездіяльності все одно потребуватиме витрат на запуск.
На що звернути увагу далі
Підсумок: Neon Functions усуває обмеження тайм-ауту, яке довгий час змушувало розробників ШІ шукати обхідні шляхи. Дозволяючи запиту залишатися відкритим стільки, скільки потрібно агенту для «роздумів» та спілкування, Neon робить розгортання стрімінгових ШІ-агентів таким же простим, як і будь-якої іншої serverless-функції.
