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

Почему привычное представление о serverless вводит в заблуждение при работе с AI-агентами

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

Холодные старты — скрытая статья расходов

Когда контейнер Lambda разворачивается впервые, ему необходимо распаковать пакет развертывания (deployment package). Агент, о котором идет речь, подтягивает большой набор библиотек Python, поэтому образ может быть довольно объемным. Удаление инструментов, предназначенных только для разработки (например, библиотеки автоматизации браузера, используемой только для локального тестирования), уменьшает размер образа, что, в свою очередь, сокращает время распаковки. Более компактный пакет означает, что функция быстрее будет готова к обработке запроса, сокращая время ожидания прогрева контейнера.

Второй рычаг управления — место размещения кода инициализации. Если конструировать граф агента во время импорта модуля, то основная нагрузка будет выполняться один раз при запуске контейнера, а не при каждом запросе. При «теплых» вызовах (warm invocations) эта работа будет полностью пропускаться. Компромиссом является чуть более длительный холодный старт, но выигрышем становится почти нулевое время настройки на каждый запрос после того, как контейнер прогреется.

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

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

Стоимость цикла: повторные попытки умножают расход токенов

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

  • до пяти вызовов модели исполнителя
  • до пяти вызовов модели оценщика
  • любое количество вызовов инструментов (tool calls), которые решит сделать агент

Счет за Lambda остается предсказуемым, так как AWS берет плату за миллисекунды выполнения, но счет за токены может сильно колебаться в зависимости от того, сколько повторных попыток потребуется.

Ловушка таймаута: API Gateway против Lambda

API Gateway накладывает жесткое ограничение по времени (timeout) в 29 секунд на HTTP-запрос, который он обслуживает. Цикл агента из пяти итераций может легко превысить этот предел, даже если сама функция Lambda настроена на пятиминутное окно выполнения. Обход API Gateway с помощью Lambda Function URLs снимает ограничение в 29 секунд, позволяя функции завершить цикл без принудительного прерывания.

Что следует закладывать в бюджет разработчикам

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

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

Игнорирование любой из этих переменных может привести к тому, что итоговый счет будет совершенно не похож на ваш прогноз.