Как построить масштабируемые serverless-мультиагентные системы LangGraph в AWS с Amazon Bedrock AgentCore — ИИ для бизнеса

Как построить масштабируемые serverless-мультиагентные системы LangGraph в AWS с Amazon Bedrock AgentCore

Прослушать статью

Generative AI стремительно эволюционировал от экспериментальных прототипов к системам, которые должны надежно работать в production, в масштабе и в условиях реальных ограничений по производительности. По мере того как организации уходят от демонстраций и proof of concept, они все чаще сталкиваются с задержкой inference, масштабируемостью, управлением состоянием и операционной видимостью. Сегодня для создания высокопроизводительных AI-агентов уже недостаточно мощных моделей: нужна реализация, которая обеспечивает стабильную производительность, сохраняет контекст между взаимодействиями и дает глубокую observability того, как агенты рассуждают и ведут себя в production.

В этом материале мы показываем решение для построения высокомасштабируемых serverless мультиагентных generative AI-систем на AWS с использованием LangGraph Agents в роли orchestrators, интегрированных с Amazon Bedrock AgentCore Memory и Amazon Bedrock AgentCore Observability.

Наш подход к построению масштабируемых serverless multi-agent orchestrations сочетает serverless-технологии, такие как AWS Lambda и AWS Step Functions. Эти сервисы позволяют разработчикам строить LangGraph-агентов, которые автоматически масштабируются, реагируют на события в реальном времени и снимают с команды задачу управления инфраструктурой. Это делает их подходящими для динамических и всплесковых agent workloads. Объединяя эти сервисы, можно orchestrate сложные multi-tool agent workflows с надежным управлением состоянием, retries и тонким контролем затрат.

Явная графовая модель выполнения LangGraph обеспечивает детерминированную координацию, параллелизм и условную маршрутизацию между агентами, что упрощает понимание и отладку сложных multi-agent workflows. Разделяя логику orchestration и поведение агентов, вы можете добавлять, удалять или развивать специализированных агентов независимо, сохраняя при этом прозрачный и аудируемый путь выполнения. Это особенно важно для production-систем, где требуются предсказуемое поведение, расширяемость и структурированный контроль над multi-agent reasoning.

AgentCore Observability расширяет эти возможности, предоставляя подробную видимость каждого вызова: входы и выходы модели, latency и метрики tool-chain по распределенным serverless-компонентам. Интегрированные memory-сервисы из AgentCore Memory позволяют агентам сохранять краткосрочный conversational context и долгосрочные знания между сессиями.

Обзор решения

Наше решение на базе serverless LangGraph и AgentCore — это generative AI-решение для мультиагентной проверки маркетинговых кампаний, которое orchestrates human reviews с использованием разных персон, чтобы маркетинговые кампании звучали аутентично для целевой аудитории, сохраняя при этом юридическую корректность и соответствие brand standards. Оно состоит из трех специализированных AI-агентов, которые анализируют маркетинговую кампанию параллельно: persona reviewer agent оценивает контент с точки зрения разных демографических групп и формирует resonance scoring, validator agent проверяет соответствие законодательным требованиям и brand guidelines, а finalizer agent синтезирует обратную связь в практические рекомендации. Пользователи загружают документы кампании через React frontend, который также опрашивает систему о результатах и показывает проверки по мере их появления.

Мы используем LangGraph для реализации orchestrator и специализированных агентов, моделируя систему как stateful execution graph. Каждый узел представляет отдельную функцию агента — а именно persona review, compliance validation и feedback synthesis, — а ребра определяют контрольный поток между этими шагами. Orchestrator реализован как supervising graph, который маршрутизирует выполнение, запускает параллельные ветви для специализированных агентов и собирает их результаты для финальной агрегации. LangGraph orchestrator и специализированные агенты вместе упакованы в Docker container.

Мы используем AWS Lambda как serverless managed runtime в AWS для наших Strands agents, чтобы они автоматически масштабировались, реагировали на события в реальном времени и не требовали управления инфраструктурой. Функциональность нашего orchestrator agent доступна через REST-интерфейсы, предоставляемые Amazon API Gateway.

Наша реализация агента использует AgentCore Observability для подробной визуализации каждого шага в agent workflow, что позволяет разработчикам изучать пути выполнения, проверять промежуточные результаты и отлаживать узкие места производительности. В AgentCore Observability мы обеспечиваем видимость в реальном времени в Amazon CloudWatch по операционным панелям и telemetry для ключевых метрик, таких как traces, session count, latency, duration, token usage и error rates.

Мы используем AgentCore Memory для двух ключевых сценариев в нашей реализации агента: multi-agent shared memory для передачи контекста и общей памяти между независимыми запусками агента, а также поддержку multi-turn conversations. Вы можете расширить эту реализацию, чтобы добавить natural language interface для AI assistant, поскольку в ней уже есть встроенная поддержка хранения conversational state и history. Следующая архитектурная диаграмма показывает компоненты нашего решения.

architecture diagram describing the multi agent langgraph and agentcore deployment

Предварительные требования

Выполните следующие предварительные требования:

  1. Проверьте доступ к модели в Amazon Bedrock. В этом решении мы используем Anthropic’s Claude 4.5 Sonnet на Amazon Bedrock.
  2. Установите AWS Command Line Interface (AWS CLI).
  3. Установите AWS SAM CLI v1.100.0+
  4. Установите Docker v20.x+.
  5. Установите Node.js v18.x+
  6. Установите Docker v20.x+
  7. Установите Python v3.11+

Зависимости

Наша реализация Strands Agents имеет следующие зависимости, которые упакованы в Dockerfile:

  1. langchain>=0.2.0
  2. langgraph==0.3.31
  3. langgraph-prebuilt~=0.1.8
  4. langgraph-sdk~=0.1.61
  5. langchain-aws>=0.2.18
  6. langchain_tavily
  7. requests
  8. bedrock-agentcore
  9. boto3

Развертывание решения

Вы можете загрузить решение из нашего GitHub repo. Используйте следующую пошаговую инструкцию, которая также приведена в README GitHub repo, чтобы развернуть решение и получить к нему доступ в вашей AWS-среде:

Шаг 1: клонируйте репозиторий git clone <respository url>

cd aws-genai-campaign-review-langgraph

Шаг 2: настройте AWS credentials

Настройте AWS CLI:

aws configure

Проверьте credentials:

aws sts get-caller-identity

Шаг 3: создайте таблицу persona в Amazon DynamoDB

Сделайте скрипт исполняемым:

chmod +x scripts/setup_persona_table.sh

Запустите скрипт настройки:

./scripts/setup_persona_table.sh

Шаг 4: соберите AWS SAM application

sam build

Шаг 5: разверните инфраструктуру

Используйте guided deployment и следуйте подсказкам, чтобы указать имя стека, имя агента, регион AWS и принять значения по умолчанию для остальных параметров.

sam deploy --guided

Шаг 6: получите outputs развертывания

Получите API endpoints:

aws cloudformation describe-stacks --stack-name <your stack name> --query 'Stacks[0].Outputs' --output table

Сохраните следующие значения:

  • ApiEndpoint – API URL
  • CampaignOrchestratorApi – Agent API URL
  • CloudFrontURL – Front-end URL
  • FrontendBucket – S3 bucket для frontend

Шаг 8: настройте окружение front-end

Получите значения из CloudFormation outputs:

API_URL=$(aws cloudformation describe-stacks --stack-name <your stack name> --query 'Stacks[0].Outputs[?OutputKey==`ApiEndpoint`].OutputValue' --output text)

AGENT_API_URL=$(aws cloudformation describe-stacks --stack-name <your stack name> -review --query 'Stacks[0].Outputs[?OutputKey==`CampaignOrchestratorApi`].OutputValue' --output text)

Создайте .env файл:

cat > .env << EOF

VITE_API_URL=$API_URL

VITE_AGENT_API_URL=$AGENT_API_URL

VITE_AWS_REGION= <your AWS region>

EOF

Шаг 9: соберите и разверните frontend

Установите зависимости:

npm install

Соберите frontend:

npm run build

Получите имя frontend bucket:

FRONTEND_BUCKET= $(aws cloudformation describe-stacks --stack-name <your stack name> --query 'Stacks[0].Outputs[?OutputKey==`FrontendBucket`].OutputValue' --output text)

Разверните в S3:

aws s3 sync dist/ s3://$FRONTEND_BUCKET --delete

Сделайте инвалидацию CloudFront cache (необязательно, для обновлений):

DISTRIBUTION_ID=$(aws cloudfront list-distributions --query "DistributionList.Items[?Origins.Items[0].DomainName=='${FRONTEND_BUCKET}.s3.us-west-2.amazonaws.com'].Id" --output text)

aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths "/*"

Шаг 10: откройте приложение

Получите CloudFront URL:

aws cloudformation describe-stacks --stack-name <your stack name> --query 'Stacks[0].Outputs[?OutputKey==`CloudFrontURL`].OutputValue' --output text

Откройте URL в браузере, чтобы получить доступ к приложению. Используйте этот файл campaign_brief.md как пример документа кампании и загрузите его в левую панель. После этого вы сможете увидеть результат campaign review от multi-agent orchestration в правой панели. Перейдите в консоль Bedrock AgentCore Observability и выберите своего агента, чтобы получить подробную визуализацию каждого шага agent workflow, как показано ниже

agentcore observability dashboard describing the spans, traces and sessions for the agent invocations

Очистка

Чтобы избежать повторных списаний, очистите аккаунт после проверки решения.

  1. Удалите CloudFormation stack

sam delete --stack-name <your stack name>

  1. Удалите таблицу DynamoDB

aws dynamodb delete-table --table-name PersonaTable --region <your aws region>

Заключение

В этом материале мы показали, как сочетание LangGraph, Amazon Bedrock AgentCore и serverless-сервисов AWS помогает командам строить высокомасштабируемые, production-ready multi-agent generative AI-системы. Используя явную graph-based execution model LangGraph для orchestration и AWS Lambda-based runtimes для выполнения, разработчики могут координировать сложные параллельные agent workflows с детерминированным control flow, автоматическим масштабированием и минимальными операционными накладными расходами. Интегрированные AgentCore Memory и Observability решают две самые частые проблемы реальных внедрений агентов — управление состоянием и видимость — обеспечивая общий, долговечный контекст между запусками агентов и глубокое понимание поведения, производительности и стоимости агентов.

Вместе эти возможности формируют повторяемый архитектурный паттерн для создания enterprise-grade AI-агентов на AWS. Независимо от того, реализуете ли вы системы проверки кампаний, цифровых ассистентов или другие multi-agent reasoning workflows, такой подход позволяет отделить orchestration от execution, эластично масштабироваться под спрос и сохранять полную прозрачность того, как агенты рассуждают и взаимодействуют. Используя LangGraph для структурированной orchestration и Amazon Bedrock AgentCore для managed runtime, memory и observability, вы можете уверенно перейти от экспериментальных прототипов к надежным и масштабируемым generative AI-системам в production.


Материал — перевод статьи с английского.

Оригинал: Build highly scalable serverless LangGraph multi-agent systems in AWS with Amazon Bedrock AgentCore