Field Advisor на Amazon Bedrock AgentCore: как AWS выстроила оркестрацию AI-агентов для отдела продаж — ИИ для бизнеса

Field Advisor на Amazon Bedrock AgentCore: как AWS выстроила оркестрацию AI-агентов для отдела продаж

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

По мере роста использования агентов AWS заметила типичную для многих компаний картину: отдельные специализированные агенты дают пользу, но без оркестрации пользователю приходится самому решать, к какому из них обращаться. В отделе продаж AWS это означало более 20 предметно-ориентированных агентов, развернутых по всей глобальной организации, и постоянное переключение между системами вместо общения с клиентами. В этом материале AWS рассказывает, как построила Field Advisor на Amazon Bedrock AgentCore, какие архитектурные решения приняла и каких измеримых результатов добилась.

Проблема: рост числа агентов без оркестрации

Сотрудники отдела продаж AWS столкнулись с серьезной проблемой на фоне масштабирования ИИ. Более 20 специализированных агентов занимались операциями в CRM, планированием встреч, сведениями о клиентах, рекомендациями по продуктам и проверками соответствия, а представителям нужно было понимать, какого агента запускать для каждой задачи. Кроме того, им приходилось сохранять контекст в разрозненных диалогах и вручную объединять результаты из разных систем. Эта дополнительная нагрузка отнимала время, которое можно было бы потратить на понимание потребностей клиентов и подготовку решений.

Почему Bedrock AgentCore: основа для оркестрации на уровне enterprise

Команда AWS Sales выбрала Amazon Bedrock AgentCore, потому что он дает возможности, необходимые для production-решений agentic AI в большом масштабе:

  • изолированные среды выполнения для безопасной работы в multi-tenant-сценариях;
  • единый gateway для доступа к инструментам и агентам между AWS accounts;
  • постоянная память для session и долгосрочного контекста;
  • сквозная передача идентификации с интеграцией OAuth;
  • встроенная observability для сложных потоков запросов;
  • интегрированная оценка для постоянного контроля качества.

Эти возможности избавили команду от необходимости строить собственную инфраструктуру, позволив сосредоточиться на предметной логике, улучшающей клиентские результаты, а не на базовых сервисах. Field Advisor решает задачу оркестрации как центральный слой, который направляет запросы к специализированным агентам и при этом сохраняет единый интерфейс общения. Сотрудники продаж задают вопросы на естественном языке, а Field Advisor передает запрос нужному агенту или инструменту, удерживает контекст между взаимодействиями, координирует согласования для чувствительных операций и возвращает единый ответ. Это ускоряет и делает точнее реакции на запросы глобального отдела продаж.

Что Field Advisor дает командам продаж

Field Advisor работает как внутренний разговорный ассистент и закрывает шесть ключевых сценариев AWS Sales, каждый из которых помогает тратить больше времени на общение с клиентами:

  1. Оркестрация нескольких агентов снимает когнитивную нагрузку, связанную с выбором агента для проверок соответствия, рекомендаций по продуктам или технического анализа. Сотрудник взаимодействует с одним интерфейсом, а Field Advisor маршрутизирует запросы в фоне, чтобы человек мог сосредоточиться на разговоре с клиентом, а не на навигации по системам.
  2. Встроенный доступ переносит ИИ-возможности прямо в инструменты, которыми отдел продаж пользуется каждый день. Field Advisor работает внутри CRM-систем, Slack и внутренних приложений, что убирает разрывы в рабочем процессе и удерживает фокус на клиентских взаимодействиях.
  3. Сценарии human-in-the-loop сохраняют контроль над критически важными бизнес-действиями и одновременно ускоряют рутинные задачи. Когда Field Advisor нужно обновить данные в CRM, он показывает предложенные изменения и ждет явного подтверждения перед внесением правок. Это помогает поддерживать точность данных, предотвращать нежелательные изменения и сохранять ответственность за критические обновления за сотрудником продаж.
  4. Контекст и память убирают повторный сбор одной и той же информации. Field Advisor запоминает предпочтения и прошлые разговоры с помощью AgentCore Memory, который сочетает краткосрочную историю session и долгосрочную семантическую память. Сотрудники могут продолжать с того места, где остановились, тратя меньше времени на переключение контекста и больше — на работу с клиентом.
  5. Извлечение из базы знаний дает мгновенный доступ к внутренним базам знаний AWS с документацией по продуктам, конкурентной аналитикой, правилами ценообразования и организационными сведениями без выхода из рабочего процесса и переключения между системами. Это позволяет быстрее отвечать клиентам и делать ответы точнее.
  6. Проактивные рекомендации дополняют разговорные возможности push-уведомлениями через Slack. Сотрудники продаж получают ИИ-аналитику по использованию клиентского сервиса, трендам бизнес-данных и предупреждениям о гигиене CRM. Эти сигналы помогают переходить от реактивной работы к проактивному контакту с клиентами.
Field Advsor

С момента запуска сотрудники продаж отправили более 120K prompts во всех модальностях — это снизило необходимость навигации по внутренним системам и позволило больше времени уделять пониманию потребностей клиентов. Компонент human-in-the-loop, который отвечает за создание и обновление записей, экономит крупным представителям продаж до 2 часов в неделю — это время перенаправляется на разговоры с клиентами и стратегическое планирование. Переход на Amazon Bedrock AgentCore дал измеримые улучшения: снижение задержки на 41% по сравнению с прежней инфраструктурой, консолидацию с семи отдельных AWS accounts до одного AgentCore Runtime и отказ от собственных систем для памяти, observability и аутентификации. Теперь инженерная команда сосредоточена на функциональности продукта, которая напрямую улучшает результаты для клиентов, а не на поддержке инфраструктуры. Вот что говорят пользователи:

«Построение агента команды на Bedrock AgentCore и его интеграция в Field Advisor означали, что аутентификация, память, сохранение диалога и богатые UI-компоненты стали сервисными возможностями, а не кастомной разработкой. Поскольку агент был встроен прямо в CRM как панель справа, команда полностью избежала инфраструктурной работы и сосредоточилась на предметной логике, которая помогает продавцам закрывать сделки, — в итоге клиенты получили более быстрые и точные цены».

— AWS AI Builder team

«Field Advisor создавал задачи CRM из файла с заметками встречи с помощью подтверждения в один клик, а затем я спросил о незакрытых возможностях по моему клиенту, не переключая системы. Это сэкономило мне как минимум 15 минут только для одного клиента — время я потратил на подготовку более полной коммерческой предложения, учитывающего его конкретные технические требования».

— AWS Solutions Architect

«Field Advisor улучшил процесс валидации учетных записей в масштабе enterprise. Команде AWS Sales нужно было проверить почти 450 accounts. Раньше этот процесс требовал большого объема ручной работы и исправления ошибок после массовой разметки или загрузки. Field Advisor выполнил валидацию эффективно, сократил число ошибок и сэкономил время, позволив команде сосредоточиться на стратегическом планировании по accounts и работе с клиентами, а не на очистке данных».

— AWS Customer Solutions Manager

Как Amazon Bedrock AgentCore обеспечивает основу

Поддержка тысяч сотрудников AWS в глобальных командах продаж требует решения, которое умеет выстраивать сложную оркестрацию нескольких агентов, обеспечивать безопасный доступ к внутренним системам и предсказуемое выполнение при высоких нагрузках. Amazon Bedrock AgentCore предоставляет изолированную среду выполнения для агентов, единый gateway для доступа к инструментам и агентам, постоянную память для session и долгосрочного контекста, сквозную передачу идентичности, встроенную observability по потокам запросов и интегрированную оценку для постоянного контроля качества.

Когда сотрудник продаж задает вопрос через поддерживаемые каналы — CRM-систему, Slack или отдельный web-портал — запрос проходит через сервис аутентификации, который проверяет личность и выдает OAuth token. Затем AgentCore Runtime принимает аутентифицированный запрос, инициализирует supervisor agent, созданный с помощью Strands Agents, и управляет полным жизненным циклом выполнения.

Supervisor agent анализирует запрос и определяет, как с ним работать. Он может вызвать локальные инструменты для поиска в CRM и извлечения из базы знаний, обратиться к удаленным MCP tools для систем, интегрированных через MCP, или передать задачу специализированным domain agents, работающим в отдельных AgentCore Runtimes. AgentCore Identity распространяет аутентифицированную идентичность на каждый downstream-инструмент и агент. Результаты сводятся в единый ответ, который передается обратно через нативную потоковую передачу AgentCore Runtime.

Architecture

Ключевые архитектурные компоненты

В архитектуре используется несколько сервисов Amazon Bedrock AgentCore, которые вместе обеспечивают возможности Field Advisor:

  • AgentCore Runtime размещает supervisor agent в безопасной изолированной среде MicroVM. Каждая пользовательская сессия работает в собственном контексте выполнения. Runtime управляет доступом к модели, guardrails и жизненным циклом агента, включая потоковую передачу ответов пользователю.
  • Strands Agents обеспечивает контур рассуждения внутри runtime. Он отвечает за цикл оркестрации: принимает ответы модели, распределяет вызовы инструментов (по возможности параллельно), управляет контекстом разговора и координирует multi-agent-потоки. Расширяемая система hooks в Strands Agents позволяет настраивать поведение агента — обработку ошибок, проверки авторизации и постобработку ответов — без изменения основного цикла рассуждения.
  • AgentCore Memory хранит краткосрочную историю разговора и долгосрочный пользовательский контекст. В реализации используется кастомный session manager, расширяющий Strands Agents AgentCoreMemorySessionManager для оптимизации записи. Состояние синхронизируется после каждого вызова, а не после каждого сообщения, что уменьшает число API-запросов без потери надежности хранения.
  • AgentCore Identity отвечает за передачу идентичности по всему решению. Сотрудник продаж проходит аутентификацию один раз через OAuth, после чего token распространяется по системе. Для межаккаунтных вызовов агентов поддерживается OAuth через machine-to-machine token exchange с использованием resource credential provider AgentCore Identity.
  • AgentCore Gateway дает централизованную точку доступа к удаленным MCP tools. Вместо отдельных подключений к каждому MCP server инструменты регистрируются в одном экземпляре Gateway, который обрабатывает аутентификацию и доступность. При запуске supervisor получает определения инструментов из Gateway и создает соответствующие локальные инструменты Strands, поэтому новые MCP tools можно подключать без изменений в развертывании runtime.
  • AgentCore Observability собирает traces, logs и metrics для каждого выполнения. Strands нативно интегрируется с OpenTelemetry, что обеспечивает распределенное tracing по многоагентным и многоинструментальным потокам. Это критически важно для отладки, когда один пользовательский вопрос может одновременно разветвляться на несколько удаленных агентов и MCP tools.
  • AgentCore Evaluations поддерживает постоянный контроль качества поведения агента в production. AWS использует данные оценок, собранные через traces AgentCore Observability, чтобы измерять релевантность ответа, точность контекста, корректность действий и faithfulness. Это создает обратную связь, которая помогает выявлять регрессии и со временем улучшать качество оркестрации.

Базовые архитектурные возможности

Архитектура Field Advisor построена на перечисленных компонентах AgentCore как на наборе взаимосвязанных возможностей, которые вместе обеспечивают надежную, безопасную и масштабируемую оркестрацию нескольких агентов. Ниже описано, как команда реализовала каждый из элементов.

Оркестрация и конфигурация модели

Supervisor agent — это Strands Agent, инициализированный системным prompt, набором инструментов, session manager, conversation manager и model provider. В качестве фундаментальной модели используется最新ая доступная в Amazon Bedrock модель Anthropic Claude, доступная через cross-Region inference profile Amazon Bedrock для более высокой пропускной способности.

Чтобы снизить задержку в многошаговых разговорах, команда создала кастомный PromptCachingBedrockModel, который расширяет BedrockModel из Strands и добавляет инкрементальное prompt caching. Перед каждым вызовом модели реализация удаляет все предыдущие cache points из истории разговора и добавляет новый к последнему сообщению. Таким образом все, что было до последнего хода, кэшируется, а модель обрабатывает только новый контент.

Формулы и расчет
CACHE_POINT = {"cachePoint": {"type": "default", "ttl": "1h"}}


class PromptCachingBedrockModel(BedrockModel):
 """Добавляет скользящую точку кэша к последнему сообщению, чтобы модель
    переиспользовала кэшированные префиксы вместо повторной обработки всей истории."""
 def _format_request(self, messages, **kwargs):
 # Удаляем устаревшие точки кэша из старых сообщений
 for msg in messages:
 msg["content"] = [
 b for b in msg["content"] if "cachePoint" not in b
 ]
 # Добавляем точку кэша к последнему сообщению
 messages[-1]["content"].append(CACHE_POINT)
 return super()._format_request(messages=messages, **kwargs)

Поскольку Amazon Bedrock ограничивает число cache points в одном запросе и требует неубывающих значений TTL по ходу запроса (tools, system prompt, затем messages), реализация аккуратно управляет размещением cache points. В результате каждый новый ход пользователя инкрементально расширяет кэшируемый префикс вместо повторной обработки всего диалога.

Система hooks в Strands Agents — центральный механизм, позволяющий настраивать поведение агента без изменения основного цикла рассуждения. Hooks используются для error circuit breaking, который автоматически пропускает инструменты, повторно падающие в рамках одного вызова. Contingent authorization перехватывает вызовы инструментов, обращающихся к чувствительным CRM-данным, приостанавливает выполнение через Strands Interrupts для запроса согласия пользователя и продолжает работу только после подтверждения. Write confirmation для инструментов, которые изменяют данные, показывает предлагаемые изменения и требует явного подтверждения перед выполнением. Citation extraction обрабатывает результаты извлечения из базы знаний, чтобы выделить источники и прикрепить их к финальному ответу. Tool call streaming передает статус вызова инструмента во frontend, чтобы пользователь видел прогресс в реальном времени.

Такой hook-based-подход отделяет сквозные задачи, такие как авторизация и обработка ошибок, от реализации самих инструментов. Командам, владеющим удаленными агентами, не нужно отдельно реализовывать circuit breaking или streaming — supervisor делает это единообразно. Для разработчиков, создающих похожие системы, hooks — естественная точка расширения, которая избегает сложности middleware-цепочек или стеков декораторов.

Координация нескольких агентов

Field Advisor использует pattern supervisor-subagent. Supervisor agent выступает основным оркестратором, а специализированные domain agents для соответствия требованиям, рекомендаций по продуктам, планирования встреч и других задач подключаются как инструменты. Каждый удаленный агент определяется именем, описанием и одним параметром query. Когда supervisor понимает, что вопрос должен обработать domain agent, он вызывает соответствующий инструмент. Обертка берет на себя полный жизненный цикл вызова: формирует payload, аутентифицируется через OAuth, отправляет запрос в удаленный AgentCore Runtime и потоково возвращает ответ.

Формулы и расчет
def create_remote_agent_tool(config: RemoteAgentConfig) -> AgentTool:
 """Создает инструмент Strands, который оборачивает удаленного агента."""
 async def remote_agent_tool(query: str, tool_context: ToolContext):
 invoker = RemoteAgentInvoker(config)
 params = InvocationParams(
 query=query, session_id=session_id, alias=alias, ...
 )
 async for event in invoker.stream(params):
 if is_final_response(event):
 payload = parse_response_payload(event)
 # Показываем все interrupts от удаленного агента
 if payload.interrupts:
 tool_context.interrupt(payload.interrupts)
 yield payload.response
 else:
 yield event # передаем статус вызова инструмента в UI
 return tool(context=True)(remote_agent_tool)

Supervisor видит плоский каталог инструментов, а остальное делает цикл рассуждения Strands. Это означает, что для добавления нового агента достаточно одной записи конфигурации — без изменений в логике оркестрации. Field Advisor также поддерживает режим pass-through, в котором сотрудники продаж явно выбирают конкретного агента для обработки запроса. В этом режиме запрос полностью минует supervisor. Runtime напрямую пересылает query целевому удаленному агенту и возвращает его ответ, сохраняя форматирование и цитаты sub-agent. Пользователи могут переключаться между supervisor-режимом и pass-through в рамках одного диалога.

Сценарии human-in-the-loop

В реализации используется нативная функция Interrupt в Strands Agents для сценариев, где нужно явное подтверждение пользователя. Когда инструменту или удаленному агенту требуется ввод от пользователя — например, подтверждение соглашения о доступе к данным перед запросом к CRM — выполнение приостанавливается, а interrupt возвращается клиенту. Пользователь отвечает через Slack или интерфейс CRM, после чего агент продолжает работу с этим вводом.

Этот паттерн был расширен на границы между агентами. Когда удаленный агент возвращает interrupt в payload ответа, локальная обертка инструмента обнаруживает его и поднимает Strands Interrupt от имени удаленного агента. Это означает, что каждый агент в решении может запрашивать ввод пользователя независимо от места выполнения, а пользователь при этом взаимодействует через единый интерфейс. Такой дизайн был осознанной альтернативой отдельному сервису human-in-the-loop с очередями сообщений и polling. Поскольку Strands Interrupts сохраняют состояние в session manager, паттерн реализован полностью на уровне кода — дополнительных инфраструктурных компонентов не требуется. Главная идея в том, что локальная обертка инструмента выступает мостом: она преобразует interrupt-ответ удаленного агента в нативный Strands Interrupt, а сам framework берет на себя механику pause/resume.

Управление памятью и контекстом

AgentCore Memory обеспечивает как краткосрочное, так и долгосрочное хранение. Краткосрочная память сохраняет полную историю разговора в рамках session. Долгосрочная память использует семантическую стратегию для хранения сводок и важных фактов между сессиями, чтобы агент помнил предпочтения пользователя и прошлые взаимодействия даже в новых диалогах.

Для управления контекстом реализация использует Strands Agents SummarizingConversationManager для обработки разговоров, приближающихся к токенному окну модели. Старые сообщения суммируются, освобождая место в контексте при сохранении ключевой информации. Ограничения по токенам также применяются к пользовательскому вводу, а большие ответы инструментов обрезаются перед передачей обратно модели, чтобы предотвратить переполнение контекста из одного источника.

Загрузка файлов

Сотрудники продаж могут загружать документы и изображения прямо в ходе разговора. Strands принимает байты файлов как ContentBlock inputs, поддерживая текстовые форматы и изображения. Когда файл загружается, его содержимое становится частью истории разговора и доступно агенту для анализа, суммаризации или ответов на уточняющие вопросы. Для неподдерживаемых типов файлов, таких как JSON, система извлекает текстовый контент и добавляет его в начало сообщения пользователя. Это улучшает прежнее решение, которое ограничивалось пятью файлами в одном чате и суммарным размером 10 MB.

Единая интеграция инструментов через MCP

Field Advisor поддерживает три категории инструментов через единый интерфейс. Локальные инструменты работают непосредственно внутри AgentCore Runtime для запросов к CRM, извлечения из базы знаний и поиска данных. Удаленные MCP tools подключаются к внешним системам через Model Context Protocol. При запуске runtime устанавливает соединения с зарегистрированными MCP server через AgentCore Gateway, получает их определения инструментов и создает соответствующие локальные инструменты Strands. Таким способом было подключено более 20 MCP tools, каждый — за минуты, а не за дни. Процесс подключения прост: зарегистрировать MCP-конфигурацию в Registry service, и supervisor автоматически обнаружит ее при следующем запуске; без изменений кода и без повторного развертывания runtime. Удаленные агенты в других AgentCore Runtimes оборачиваются как инструменты с тем же интерфейсом, и для модели разница между инструментом и агентом становится прозрачной. Такой единый подход означает, что добавление новой возможности — локальной функции, MCP server или полноценного агента — не требует изменений в логике оркестрации. Supervisor видит плоский каталог инструментов, а цикл рассуждения Strands делает остальное.

Observability и оценка

Strands нативно интегрируется с OpenTelemetry. AgentCore Observability собирает полученные traces, logs и metrics. Каждый вызов агента, каждый вызов инструмента и каждое взаимодействие с моделью трассируются end-to-end, включая обращения, которые разветвляются к удаленным агентам в других accounts. Эти данные используются как для операционного мониторинга, так и для постоянной оценки через AgentCore Evaluations. Команда проводит как online evaluation на живом production-трафике, так и offline evaluation на подготовленных тестовых наборах. Встроенные evaluators в Amazon Bedrock AgentCore непрерывно измеряют качество агента и ловят регрессии до того, как они затронут пользователей. Тем, кто только начинает работу с оценкой агентов, AWS рекомендует начинать именно с online evaluation на production-трафике, а не с создания curated test sets. Реальные пользовательские запросы выявляют крайние случаи, которые синтетические тесты пропускают, а встроенные evaluators в AgentCore Evaluations дают полезную базовую линию без разработки собственных метрик.

Безопасность и соответствие требованиям

Безопасность встроена в решение на нескольких уровнях. Изоляция AgentCore Runtime в MicroVM дает каждой пользовательской сессии собственный безопасный контекст выполнения. Amazon Bedrock Guardrails фильтруют как пользовательские входные данные, так и ответы модели, блокируя вредоносный или выходящий за рамки запросов контент. AgentCore Identity передает аутентифицированную идентичность пользователя во все downstream-системы. Инструменты и удаленные агенты последовательно применяют контроль доступа, включая contingent authorization checks, которые требуют явного согласия пользователя перед доступом к чувствительным CRM-данным.

Заключение

В этом материале AWS показала, как команда продаж превратила Field Advisor из отдельного разговорного ассистента в полноценное решение для agentic orchestration на базе Amazon Bedrock AgentCore. Используя компонуемые сервисы Amazon Bedrock AgentCore — Runtime, Gateway, Memory, Identity и Observability — в связке со Strands Agents, команда добилась измеримых улучшений, которые напрямую влияют на глобальную организацию продаж и, в конечном итоге, на клиентов. Сотрудники продаж тратят меньше времени на навигацию по системам и больше — на понимание потребностей клиентов, отвечая быстрее и точнее. Чтобы узнать, как ИИ может преобразить функцию продаж, обратитесь к своей AWS account team. Специалисты помогут обсудить, как сервисы вроде Amazon Bedrock AgentCore могут использоваться для построения похожих решений в вашей организации.

Подробнее об Amazon Bedrock AgentCore можно узнать в документации Bedrock. Командам, которые хотят строить похожие multi-agent orchestration-решения, AWS рекомендует начинать с одного supervisor agent в AgentCore Runtime, затем поэтапно добавлять инструменты через AgentCore Gateway и использовать hooks Strands для настройки сквозных аспектов, таких как авторизация и обработка ошибок. Такой инкрементальный подход позволяет проверять каждый компонент в production до добавления сложности.

Ссылки по теме:

  • Руководство разработчика Amazon Bedrock AgentCore
  • Представляем Strands Agents — open source SDK для ИИ-агентов
  • Сделайте агентов реальностью с Amazon Bedrock AgentCore: теперь общедоступно
  • Паттерны совместной работы нескольких агентов с Strands Agents и Amazon Nova
  • Настройка рабочих процессов агентов с помощью продвинутых техник оркестрации в Strands Agents
  • Как раскрыть возможности Model Context Protocol (MCP) на AWS

Благодарности

Отдельная благодарность всем, кто участвовал в запуске:

  • Development Team: Ajeeth Kannan, Anughna Kommalapati, Sailaja Narra, Mitali Ochani, William Parr, Larry Peng, Sreekanth Radhakrishnan, Sumel Rattan, Nihar Samal, Arianne Silvestre, Shubhpreet Singh, Eric Stanulis, Tommy Stevenson, Tony Zhao и Xiaodan Zhao
  • Program Management: Christal Zhu и Jennifer Tsui
  • UX: Rachael Dickens, Sarah Lips и Kish Parikh
  • BIE: Fabien Lescot
  • AWS leadership: Jonathan Garcia, Krishna Velaga и Mike Shim

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

Оригинал: Powering agentic AI sales strategy with Amazon Bedrock AgentCore