Улучшение ИИ-агентов: Переход к MCP с сохранением состояния в Amazon Bedrock
ИИ-агенты быстро развиваются, однако их полный потенциал часто ограничивался безстатусными реализациями, особенно в сценариях, требующих взаимодействия с пользователем в реальном времени, динамической генерации контента или постоянного обновления хода выполнения. Разработчики сложных ИИ-агентов часто сталкиваются с проблемами, когда рабочие процессы должны быть приостановлены, чтобы получить разъяснения или сообщить о статусе во время длительных операций. Жесткий, односторонний характер безстатусного выполнения ограничивает разработку по-настоящему интерактивных и отзывчивых ИИ-приложений.
Теперь Amazon Bedrock AgentCore Runtime представляет революционные возможности клиента Model Context Protocol (MCP) с сохранением состояния, трансформируя взаимодействие ИИ-агентов с пользователями и большими языковыми моделями (LLM). Это ключевое обновление освобождает агентов от ограничений безстатусной связи, позволяя создавать сложные, многошаговые и высокоинтерактивные рабочие процессы. Благодаря интеграции важнейших клиентских функций MCP – Вызова (Elicitation), Выборки (Sampling) и Уведомлений о ходе выполнения (Progress Notifications) – Bedrock AgentCore Runtime способствует двунаправленному обмену данными между серверами и клиентами MCP, открывая путь к более интеллектуальным и ориентированным на пользователя ИИ-решениям.
От безстатусного к состоянческому: Открытие интерактивных рабочих процессов агентов
Ранее поддержка серверов MCP на AgentCore работала в безстатусном режиме, где каждый HTTP-запрос функционировал независимо, без какого-либо общего контекста. Хотя это упрощало развертывание для базовых серверов инструментов, оно сильно ограничивало сценарии, требующие непрерывности диалога, уточнения информации у пользователя в середине рабочего процесса или отчетов о ходе выполнения в реальном времени. Сервер просто не мог поддерживать поток разговора между отдельными запросами, что препятствовало разработке по-настоящему интерактивных агентов.
Появление возможностей клиента MCP с сохранением состояния кардинально меняет эту парадигму. Установив stateless_http=False во время запуска сервера, AgentCore Runtime выделяет специальную микро-ВМ (microVM) для каждой пользовательской сессии. Эта микро-ВМ сохраняется в течение всей сессии — до 8 часов или 15 минут бездействия согласно настройке idleRuntimeSessionTimeout — обеспечивая изоляцию CPU, памяти и файловой системы между сессиями. Непрерывность поддерживается через заголовок Mcp-Session-Id, который сервер предоставляет во время инициализации, а клиент включает во все последующие запросы для маршрутизации обратно в ту же сессию. Эта выделенная, постоянная среда позволяет агентам запоминать контекст, запрашивать ввод пользователя, генерировать динамический контент LLM и предоставлять непрерывные обновления.
Следующая таблица обобщает ключевые различия между безстатусным и состоянческим режимами:
| Безстатусный режим | Состоянический режим | |
|---|---|---|
Настройка stateless_http | TRUE | FALSE |
| Изоляция сессий | Выделенная микро-ВМ для каждой сессии | Выделенная микро-ВМ для каждой сессии |
| Срок жизни сессии | До 8 часов; 15-мин тайм-аут бездействия | До 8 часов; 15-мин тайм-аут бездействия |
| Возможности клиента | Не поддерживаются | Вызов, выборка, уведомления о ходе выполнения |
| Рекомендуется для | Обслуживание простых инструментов | Интерактивные, многошаговые рабочие процессы |
Когда сессия истекает или сервер перезапускается, последующие запросы со старым идентификатором сессии вернут ошибку 404. В этом случае клиенты должны повторно инициализировать соединение, чтобы получить новый идентификатор сессии и начать новую сессию. Изменение конфигурации для включения режима с сохранением состояния — это единственный флаг при запуске сервера:
mcp.run(
transport="streamable-http",
host="0.0.0.0",
port=8000,
stateless_http=False # Включить режим с сохранением состояния
)
Помимо этого флага, три клиентские возможности становятся доступны автоматически, как только клиент MCP объявляет о своей поддержке во время рукопожатия инициализации.
Подробный обзор новых клиентских возможностей: Вызов, Выборка и Прогресс
С переходом к состоянческому режиму Amazon Bedrock AgentCore Runtime открывает три мощные клиентские возможности из спецификации MCP, каждая из которых разработана для решения различных паттернов взаимодействия, критически важных для продвинутых ИИ-агентов. Эти возможности превращают то, что ранее было жестким, односторонним выполнением команд, в гибкий, двусторонний диалог между сервером MCP и его подключенными клиентами. Важно отметить, что эти функции являются опциональными, то есть клиенты заявляют о своей поддержке во время инициализации, а серверы должны использовать только те возможности, которые были объявлены подключенным клиентом.
Вызов (Elicitation): Включение динамического ввода пользователя в ИИ-агентах
Вызов (Elicitation) является краеугольным камнем интерактивного ИИ, позволяя серверу MCP разумно приостанавливать свое выполнение и запрашивать специфический, структурированный ввод у пользователя через клиента. Эта возможность позволяет инструменту задавать точные вопросы в подходящие моменты рабочего процесса, будь то подтверждение решения, сбор пользовательских предпочтений или получение значения, выведенного из предыдущих операций. Сервер инициирует это, отправляя JSON-RPC запрос elicitation/create, который включает удобочитаемое сообщение и необязательную requestedSchema, описывающую ожидаемую структуру ответа.
Спецификация MCP предусматривает два надежных режима для вызова:
- Режим формы: Идеально подходит для сбора структурированных данных непосредственно через клиент MCP, таких как параметры конфигурации, пользовательские предпочтения или простые подтверждения, где не задействованы конфиденциальные данные.
- Режим URL: Для взаимодействий, требующих безопасного, внеполосного процесса, таких как потоки OAuth, обработка платежей или ввод конфиденциальных учетных данных, режим URL направляет пользователя на внешний URL-адрес. Это гарантирует, что конфиденциальная информация полностью обходит клиент MCP, повышая безопасность и соответствие требованиям.
При получении запроса на вызов клиент отображает соответствующий интерфейс ввода. Последующее действие пользователя запускает модель ответа из трех действий обратно на сервер: accept (пользователь предоставил запрошенные данные), decline (пользователь явно отклонил запрос) или cancel (пользователь закрыл запрос, не сделав выбора). Интеллектуальные серверы разработаны для изящной обработки каждого из этих сценариев, обеспечивая надежный и удобный для пользователя опыт. Например, инструмент add_expense_interactive, как показано в исходном материале, может провести пользователя через серию вопросов — сумма, описание, категория и окончательное подтверждение — прежде чем передать данные в бэкенд, такой как Amazon DynamoDB. Каждый шаг использует модели Pydantic для определения ожидаемого ввода, который FastMCP беспрепятственно преобразует в JSON Schema, требуемую для запроса elicitation/create.
Выборка и уведомления о ходе выполнения: Повышение интерактивности LLM и прозрачности
Помимо прямого взаимодействия с пользователем, Выборка (Sampling) предоставляет серверу MCP возможность запрашивать контент, генерируемый LLM, непосредственно у клиента через sampling/createMessage. Это критически важный механизм, поскольку он позволяет логике инструмента на сервере использовать мощные возможности языковой модели без необходимости управлять собственными учетными данными LLM или прямыми интеграциями API. Сервер просто предоставляет промпт и необязательные предпочтения модели, а клиент, выступая в качестве посредника, пересылает этот запрос своей подключенной LLM и возвращает сгенерированный ответ. Это открывает множество практических применений, включая создание персонализированных сводок, генерацию естественно-языковых объяснений из структурированных данных или создание контекстно-зависимых рекомендаций на основе текущего разговора.
Для операций, которые занимают много времени, Уведомления о ходе выполнения (Progress Notifications) становятся бесценными. Эта возможность позволяет серверу MCP сообщать об инкрементальных обновлениях во время длительных задач. Используя ctx.report_progress(progress, total), сервер может отправлять непрерывные обновления, которые клиенты могут преобразовывать в визуальную обратную связь, такую как индикатор выполнения или индикатор статуса. Будь то поиск по обширным источникам данных или выполнение сложных вычислительных задач, прозрачные обновления хода выполнения гарантируют, что пользователи остаются информированными, предотвращая разочарование и улучшая общий пользовательский опыт, вместо того чтобы оставлять их смотреть на пустой экран, гадая, активна ли система.
Подготовка разработки ИИ-агентов к будущему с помощью Bedrock AgentCore Runtime
Введение возможностей клиента MCP с сохранением состояния в Amazon Bedrock AgentCore Runtime представляет собой значительный скачок вперед в разработке ИИ-агентов. Преобразуя ранее безстатусные взаимодействия в динамичные, двунаправленные разговоры, AWS предоставляет разработчикам возможность создавать более интеллектуальные, отзывчивые и удобные для пользователя ИИ-приложения. Эти возможности — Вызов (Elicitation) для направляемого пользовательского ввода, Выборка (Sampling) для генерации LLM по запросу и Уведомления о ходе выполнения (Progress Notifications) для прозрачности в реальном времени — совместно открывают новую эру интерактивных рабочих процессов агентов. По мере развития ИИ эти фундаментальные возможности будут иметь решающее значение для создания сложных операционализирующих агентских ИИ, которые смогут беспрепятственно интегрироваться в сложные бизнес-процессы, адаптироваться к потребностям пользователей и предоставлять исключительную ценность.
Часто задаваемые вопросы
What problem do stateful MCP client capabilities solve on Amazon Bedrock AgentCore Runtime?
How does the transition from stateless to stateful mode work on AgentCore Runtime?
What is Elicitation, and how does it enhance AI agent interactions?
How does Sampling capability benefit AI agents without managing LLM credentials?
Будьте в курсе
Получайте последние новости ИИ на почту.
