В serverless-пайплайнах, где шаги выполняются в AWS Lambda, вызов агента ИИ может обходиться дороже, чем кажется. Проблема в том, что агент, в отличие от обычного шага, «думает» перед ответом: время обработки зависит от промпта, модели и документа, и оно редко бывает мгновенным. Пока агент работает, вызывающая Lambda-функция блокируется в ожидании ответа, и вы платите за каждую секунду её простоя. Это не проблема агента — Amazon Bedrock AgentCore взимает плату только за память в периоды ожидания, но не за CPU. Основные затраты ложатся на вызывающий сервис, который удерживает полный объём вычислительных ресурсов.

Чтобы устранить этот простой, AWS предлагает три паттерна асинхронного вызова: task-token callback, прямую интеграцию с сервисами и durable function. Все они позволяют вызывающему коду завершиться сразу после запуска агента и возобновить работу только когда агент вернёт результат. В качестве примера рассматривается пайплайн валидации документов для финансирования недвижимости: агент читает документ, проверяет его полноту и согласованность и возвращает вердикт, на основе которого принимается решение — одобрить или отправить на доработку. Пайплайн состоит из пяти этапов: извлечение текста, классификация документа, маршрутизация, параллельная обработка (организация документа и валидация агентом) и финальный шаг, обрабатывающий вердикт. Меняется только ветка валидации, что позволяет сравнивать паттерны на равных условиях.

ПаттернОписаниеОсобенности
Task-token callbackАгент вызывает Lambda, которая отправляет результат и task token в Step FunctionsТребует дополнительной Lambda; агент остаётся неизменным
Прямая интеграция с сервисамиStep Functions интегрируется с AgentCore напрямуюУстраняет необходимость в отдельной Lambda
Durable functionФункция сохраняет состояние и возобновляется после ответа агентаПозволяет длительные ожидания без блокировки ресурсов

Ключевой механизм — возврат управления через action group агента. Когда агент завершает рассуждения, он вызывает Lambda-функцию, которая отправляет результат и task token обратно в Step Functions. Для паттерна 2 эта Lambda не нужна: Step Functions интегрируется с AgentCore напрямую. Агент при этом остаётся одним и тем же для всех паттернов: он проверяет, передан ли ему task token или callback ID, и в зависимости от этого выбирает способ ответа. Это означает, что вы можете менять оркестрацию без изменения или переразвёртывания агента.

Amazon Bedrock AgentCore не взимает плату за CPU в периоды простоя, в отличие от вызывающего сервиса.

Figure 1: The example pipeline. The horizontal flow runs Start, Extract, Identify, Route (Choice), a parallel Organize-and-Validate stage, Result, and End. The Validate branch is highlighted as swappable, and a legend lists the four ways it
Figure 1: The example pipeline. The horizontal flow runs Start, Extract, Identify, Route (Choice), a parallel Organize-and-Validate stage, Result, and End. The Validate branch is highlighted as swappable, and a legend lists the four ways it · Источник: AWS Machine Learning Blog

Для разработчиков, строящих serverless-пайплайны с ИИ, эти паттерны — способ сократить расходы и повысить эффективность. Вместо того чтобы платить за простой Lambda, ожидающей ответа агента, вы освобождаете ресурсы и возобновляете выполнение только при наличии результата. Это особенно актуально для сценариев с длительными операциями, такими как анализ документов или обработка запросов с использованием инструментов и MCP.