Code Velocity
Корпоративний ШІ

Amazon Bedrock: Можливості stateful MCP клієнта в середовищі виконання AgentCore

·7 хв читання·AWS·Першоджерело
Поділитися
Діаграма, що ілюструє можливості stateful MCP клієнта в Amazon Bedrock AgentCore Runtime з інтерактивними потоками AI-агентів.

Удосконалення AI-агентів: Перехід до stateful MCP на Amazon Bedrock

AI-агенти швидко розвиваються, проте їхній повний потенціал часто обмежувався stateless реалізаціями, особливо в сценаріях, що вимагають взаємодії з користувачем у реальному часі, динамічної генерації контенту або постійних оновлень про хід виконання. Розробники, що створюють складні AI-агенти, часто стикаються з проблемами, коли робочі процеси повинні призупинятися, збирати уточнення або повідомляти про статус під час тривалих операцій. Жорстка, одностороння природа stateless виконання обмежує розробку справді інтерактивних та чутливих AI-застосунків.

Тепер Amazon Bedrock AgentCore Runtime представляє новаторські можливості stateful клієнта Model Context Protocol (MCP), що трансформує спосіб взаємодії AI-агентів з користувачами та великими мовними моделями (LLM). Це ключове оновлення звільняє агентів від обмежень stateless комунікації, дозволяючи створювати складні, багатоетапні та високоінтерактивні робочі процеси. Завдяки інтеграції ключових функцій клієнта MCP – Збору інформації (Elicitation), Семплінгу (Sampling) та Повідомлень про хід виконання (Progress Notifications) – Bedrock AgentCore Runtime сприяє двостороннім розмовам між MCP серверами та клієнтами, відкриваючи шлях до більш інтелектуальних, орієнтованих на користувача AI-рішень.

Від Stateless до Stateful: Розблокування інтерактивних робочих процесів агентів

Раніше підтримка MCP сервера на AgentCore працювала в stateless режимі, де кожен HTTP-запит функціонував незалежно, позбавлений будь-якого спільного контексту. Хоча це спрощувало розгортання для базових серверів інструментів, це серйозно обмежувало сценарії, що вимагають безперервності розмови, уточнення користувачем у середині робочого процесу або звітування про хід виконання в реальному часі. Сервер просто не міг підтримувати потік розмови між окремими запитами, що перешкоджало розробці справді інтерактивних агентів.

Поява можливостей stateful MCP клієнта докорінно змінює цю парадигму. Встановивши stateless_http=False під час запуску сервера, AgentCore Runtime надає виділену мікро-ВМ для кожної сесії користувача. Ця мікро-ВМ зберігається протягом усієї тривалості сесії — до 8 годин або 15 хвилин бездіяльності згідно з налаштуванням idleRuntimeSessionTimeout — забезпечуючи ізоляцію CPU, пам'яті та файлової системи між сесіями. Безперервність підтримується за допомогою заголовка Mcp-Session-Id, який сервер надає під час ініціалізації, а клієнт включає у всі наступні запити для перенаправлення до тієї ж сесії. Це виділене, постійне середовище дозволяє агентам пам'ятати контекст, запитувати користувацьке введення, генерувати динамічний LLM-контент та надавати безперервні оновлення.

У наступній таблиці підсумовано ключові відмінності між stateless та stateful режимами:

Режим StatelessРежим Stateful
Налаштування stateless_httpTRUEFALSE
Ізоляція сесійВиділена мікро-ВМ для кожної сесіїВиділена мікро-ВМ для кожної сесії
Термін життя сесіїДо 8 годин; 15 хв. тайм-аут бездіяльностіДо 8 годин; 15 хв. тайм-аут бездіяльності
Можливості клієнтаНе підтримуютьсяЗбір інформації, семплінг, повідомлення про хід виконання
Рекомендовано дляОбслуговування простих інструментівІнтерактивні, багатоетапні робочі процеси

Коли сесія закінчується або сервер перезавантажується, наступні запити з попереднім ID сесії повернуть 404. У цьому випадку клієнти повинні повторно ініціалізувати з'єднання, щоб отримати новий ID сесії та розпочати нову сесію. Зміна конфігурації для ввімкнення stateful режиму – це один прапорець у вашому запуску сервера:

mcp.run(
    transport="streamable-http",
    host="0.0.0.0",
    port=8000,
    stateless_http=False # Увімкнути stateful режим
)

Окрім цього прапорця, три можливості клієнта стають доступними автоматично, як тільки клієнт MCP заявляє про їхню підтримку під час початкового рукостискання.

Глибокий аналіз нових можливостей клієнта: Збір інформації, Семплінг та Хід виконання

З переходом до stateful режиму Amazon Bedrock AgentCore Runtime розблоковує три потужні можливості клієнта зі специфікації MCP, кожна з яких призначена для вирішення різних шаблонів взаємодії, що є критично важливими для просунутих AI-агентів. Ці можливості перетворюють те, що колись було жорстким, одностороннім виконанням команд, на плавний, двосторонній діалог між MCP сервером та його підключеними клієнтами. Важливо зазначити, що ці функції є опціональними (opt-in), тобто клієнти заявляють про їхню підтримку під час ініціалізації, і сервери повинні використовувати лише ті можливості, які було оголошено підключеним клієнтом.

Збір інформації (Elicitation): Забезпечення динамічного введення користувачем в AI-агентах

Збір інформації (Elicitation) є наріжним каменем інтерактивного AI, дозволяючи 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 та прозорості

Окрім прямої взаємодії з користувачем, Семплінг надає MCP серверу можливість запитувати контент, згенерований LLM, безпосередньо від клієнта через sampling/createMessage. Це критично важливий механізм, оскільки він дозволяє логіці інструментів на сервері використовувати потужні можливості мовних моделей без необхідності керувати власними обліковими даними LLM або прямими інтеграціями API. Сервер просто надає промпт та необов'язкові вподобання моделі, а клієнт, виступаючи в ролі посередника, пересилає цей запит до своєї підключеної LLM та повертає згенеровану відповідь. Це відкриває безліч практичних застосувань, включаючи створення персоналізованих резюме, генерацію пояснень природною мовою зі складних структурованих даних або вироблення рекомендацій з урахуванням контексту на основі поточної розмови.

Для операцій, що тривають довше, Повідомлення про хід виконання стають безцінними. Ця можливість дозволяє MCP серверу повідомляти про поступові оновлення під час тривалих завдань. Використовуючи ctx.report_progress(progress, total), сервер може видавати безперервні оновлення, які клієнти можуть перетворювати на візуальний зворотний зв'язок, такий як індикатор прогресу або індикатор стану. Незалежно від того, чи це пошук у величезних джерелах даних, чи виконання складних обчислювальних завдань, прозорі оновлення про хід виконання гарантують, що користувачі залишаються поінформованими, запобігаючи розчаруванню та покращуючи загальний досвід користувача, замість того, щоб вони дивилися на порожній екран, розмірковуючи, чи система все ще активна.

Забезпечення перспективного розвитку AI-агентів за допомогою Bedrock AgentCore Runtime

Введення можливостей stateful MCP клієнта в Amazon Bedrock AgentCore Runtime є значним кроком вперед у розробці AI-агентів. Перетворюючи раніше stateless взаємодії на динамічні, двосторонні розмови, AWS надає розробникам можливість створювати більш інтелектуальні, чутливі та зручні для користувача AI-застосунки. Ці можливості – Збір інформації для керованого введення користувача, Семплінг для генерації LLM на вимогу та Повідомлення про хід виконання для прозорості в реальному часі – колективно відкривають нову еру інтерактивних робочих процесів агентів. Оскільки AI продовжує розвиватися, ці фундаментальні можливості будуть ключовими для створення складного операційного агентного ШІ, який може безперешкодно інтегруватися у складні бізнес-процеси, адаптуватися до потреб користувачів та надавати виняткову цінність.

Поширені запитання

What problem do stateful MCP client capabilities solve on Amazon Bedrock AgentCore Runtime?
Stateful Model Context Protocol (MCP) client capabilities on Amazon Bedrock AgentCore Runtime address the critical limitations of previous stateless AI agent implementations. Stateless agents struggled with interactive, multi-turn workflows, as they couldn't pause mid-execution to solicit user input for clarification, request dynamic large language model (LLM)-generated content, or provide real-time progress updates during lengthy operations. Each request was independent, lacking shared context. This new feature fundamentally transforms agent interactions by enabling bidirectional conversations, allowing agents to maintain conversational threads, gather necessary input precisely when needed, generate dynamic content on the fly, and transparently inform users about ongoing processes. This leads to the development of significantly more responsive, intelligent, and user-centric AI applications capable of complex, adaptive workflows.
How does the transition from stateless to stateful mode work on AgentCore Runtime?
The transition to stateful mode within Amazon Bedrock AgentCore Runtime is initiated by a simple configuration adjustment: setting `stateless_http=False` when starting your MCP server. Once enabled, AgentCore Runtime provisions a dedicated microVM for each individual user session. This microVM is designed for persistence throughout the session's duration, which can last up to 8 hours or expire after 15 minutes of inactivity, ensuring isolated CPU, memory, and filesystem resources for each session. Continuity across interactions is maintained through a unique `Mcp-Session-Id` header. This ID is established during the initial handshake and subsequently included by the client in all follow-up requests, ensuring they are accurately routed back to the correct, persistent session, thereby preserving context and enabling complex, interactive dialogues.
What is Elicitation, and how does it enhance AI agent interactions?
Elicitation is a powerful stateful MCP capability that allows an AI agent (acting as the MCP server) to intelligently pause its ongoing execution and request specific, structured input directly from the user via the client. This significantly enhances interactive agent workflows by enabling agents to ask targeted questions at precise, opportune moments within their operational flow. For example, an agent might use elicitation to confirm a decision, gather user preferences, or collect particular data values that are contingent on preceding steps. The feature supports two robust modes: 'Form mode' for direct structured data collection through the MCP client, and 'URL mode' for secure, out-of-band interactions that require directing the user to an external URL (e.g., for OAuth or sensitive credential entry). The user's response – whether accepting, declining, or canceling the request – is then returned to the server, allowing the agent to dynamically adapt its workflow based on real-time human feedback.
How does Sampling capability benefit AI agents without managing LLM credentials?
Sampling equips the MCP server with the ability to request sophisticated large language model (LLM)-generated content directly from the client using the `sampling/createMessage` mechanism. A key benefit is that the MCP server itself does not need to manage its own LLM credentials, API keys, or direct integrations with various LLM providers. Instead, the server simply provides a well-formed prompt and any optional model preferences to the client. The client then acts as an intelligent intermediary, forwarding this request to its connected LLM and returning the generated response back to the server. This abstraction allows AI agents to seamlessly leverage powerful language model capabilities for tasks such as crafting personalized summaries, generating natural-language explanations from complex structured data, or producing context-aware recommendations, all while simplifying the operational overhead and security concerns associated with LLM management on the server side.

Будьте в курсі

Отримуйте найсвіжіші новини ШІ на пошту.

Поділитися