Міф про serverless, ніби «ви платите лише за мілісекунди роботи вашого коду», розбивається об реальність, коли ви намагаєтеся запустити AI-агента на AWS Lambda. На практиці найбільші витрати — це не плата за обчислення Lambda, а затримка холодного старту (cold-start latency), цикли повторних спроб (retry loops) та використання токенів, яке генерують ці цикли.

Чому звичне уявлення про serverless вводить в оману при роботі з AI-агентами

Більшість розробників ставляться до функції Lambda як до чистого обчислювального «пісочниці»: тримайте обробник (handler) швидким, встановіть помірний обсяг пам'яті та спостерігайте, як рахунок залишається стабільним. Це працює для простих HTTP-ендпоінтів, але агент, який викликає мовну модель, оцінює відповідь і, можливо, повторює весь цикл, не відповідає прямо одному виклику Lambda. Внутрішній робочий процес агента множить кількість викликів моделі, і кожен додатковий виклик додає витрати на токени, які можуть значно перевищити плату за обчислення.

Холодні старти — це прихована ціна

Коли контейнер Lambda вперше створюється (provisioned), він має розпакувати пакет розгортання (deployment package). Розгляданий агент залучає великий набір бібліотек Python, тому образ може бути досить великим. Видалення інструментів, призначених лише для розробки — наприклад, бібліотеки автоматизації браузера, що використовується тільки для локального тестування — зменшує розмір образу, що, своєю чергою, скорочує час розпакування. Менший пакет означає, що функція швидше буде готова до обробки запиту, скорочуючи час очікування прогріву контейнера.

Другий важіль впливу — це місце розташування коду ініціалізації. Якщо будувати граф агента під час імпорту модуля, основне навантаження відбуватиметься лише один раз при запуску контейнера, а не при кожному запиті. «Теплі» виклики (warm invocations) тоді повністю пропускатимуть цю роботу. Компромісом є дещо довший холодний старт, але вигодою є майже нульовий час налаштування для кожного запиту після того, як контейнер прогріється.

Пам'ять як регулятор затримки

У Lambda обсяг виділеної пам'яті також визначає частку CPU, яку отримує функція. Встановлення для функції 1 ГБ пам'яті надає їй повне ядро віртуального CPU. Додаткова потужність CPU прискорює імпорт бібліотек і створення графа агента, зменшуючи затримки як при холодному старті, так і при прогріві.

Вартість циклу: повторні спроби множать витрати на токени

Агент працює за циклом «виконавець-оцінювач» (worker-evaluator loop). Виконавець генерує відповідь, оцінювач перевіряє її, і якщо оцінювач виявляє помилку, завдання повертається виконавцю. Цикл може повторюватися до п'яти разів, перш ніж буде припинено спроби. Це означає, що один зовнішній запит може спровокувати:

  • до п'яти викликів моделі виконавця
  • до п'яти викликів моделі оцінювача
  • будь-яку кількість викликів інструментів, які вирішить зробити агент

Рахунок за Lambda залишається передбачуваним, оскільки AWS нараховує плату за мілісекунди виконання, але витрати на токени можуть різко змінюватися залежно від кількості необхідних повторних спроб.

Пастка тайм-ауту: API Gateway проти Lambda

API Gateway встановлює жорсткий тайм-аут у 29 секунд для HTTP-запитів, які він обслуговує. П'ятикратний цикл агента може легко перевищити цей ліміт, навіть якщо сама функція Lambda налаштована на п'ятихвилинне вікно виконання. Обхід API Gateway за допомогою Lambda Function URLs прибирає цей 29-секундний поріг, дозволяючи функції завершити свій цикл без переривання.

Що варто закладати в бюджет розробникам

Урок простий: планування бюджету для serverless AI-агента вимагає більшого, ніж просто підрахунок мілісекунд часу виконання Lambda. Вам потрібно врахувати:

  • розмір пакета розгортання та відповідну затримку холодного старту
  • налаштування пам'яті, що визначає потужність CPU і, відповідно, швидкість імпорту
  • очікувану кількість повторних спроб у циклі «виконавець-оцінювач», що безпосередньо впливає на використання токенів
  • вибір фронтенду (API Gateway проти Function URL), щоб уникнути передчасних тайм-аутів

Ігнорування будь-якої з цих змінних може призвести до того, що ваш рахунок зовсім не буде схожим на прогнозований.