Code Velocity
Корпоративен AI

Amazon Bedrock: Възможности за състояние на MCP клиент на AgentCore Runtime

·7 мин четене·AWS·Оригинален източник
Сподели
Диаграма, илюстрираща възможностите за състояние на MCP клиент на Amazon Bedrock AgentCore Runtime с интерактивни потоци на AI агенти.

Подобряване на AI агентите: Преходът към състояние на MCP на Amazon Bedrock

AI агентите се развиват бързо, но пълният им потенциал често е възпрепятстван от реализации без състояние, особено в сценарии, изискващи взаимодействие с потребителя в реално време, динамично генериране на съдържание или текущи актуализации за напредък. Разработчиците, създаващи сложни AI агенти, често се сблъскват с предизвикателства, когато работните потоци трябва да бъдат прекъснати, да съберат изясняване или да докладват състояние по време на продължителни операции. Твърдата, еднопосочна природа на изпълнението без състояние ограничава разработката на наистина интерактивни и отзивчиви AI приложения.

Сега, Amazon Bedrock AgentCore Runtime представя новаторски възможности за състояние на клиента на Протокола за контекст на модела (MCP), трансформирайки начина, по който AI агентите взаимодействат с потребителите и големите езикови модели (LLM). Тази ключова актуализация освобождава агентите от ограниченията на комуникацията без състояние, позволявайки сложни, многостъпкови и силно интерактивни работни потоци. Чрез интегрирането на основните функции на MCP клиента – Елицитация, Вземане на проби и Известия за напредък – Bedrock AgentCore Runtime улеснява двупосочните разговори между MCP сървъри и клиенти, проправяйки пътя за по-интелигентни, ориентирани към потребителя AI решения.

От безсъстояние към състояние: Отключване на интерактивни работни потоци за агенти

Преди това поддръжката на MCP сървъри на AgentCore работеше в режим без състояние, където всяка HTTP заявка функционираше независимо, лишена от споделен контекст. Въпреки че това опростяваше внедряването за основни сървъри за инструменти, то сериозно ограничаваше сценарии, изискващи непрекъснатост на разговора, изясняване от потребителя в средата на работния поток или отчитане на напредъка в реално време. Сървърът просто не можеше да поддържа нишка на разговор между отделни заявки, възпрепятствайки развитието на наистина интерактивни агенти.

Появата на възможности за състояние на MCP клиента фундаментално променя тази парадигма. Чрез задаване на stateless_http=False по време на стартиране на сървъра, AgentCore Runtime предоставя специализирана microVM за всяка потребителска сесия. Тази microVM е постоянна за времето на сесията – до 8 часа или 15 минути неактивност според настройката idleRuntimeSessionTimeout – осигурявайки изолация на CPU, памет и файлова система между сесиите. Непрекъснатостта се поддържа чрез хедър Mcp-Session-Id, който сървърът предоставя по време на инициализация, а клиентът включва във всички последващи заявки, за да ги насочи обратно към същата сесия. Тази специализирана, постоянна среда позволява на агентите да помнят контекст, да изискват потребителски вход, да генерират динамично LLM съдържание и да предоставят непрекъснати актуализации.

Следната таблица обобщава основните разлики между режими без състояние и със състояние:

Режим без състояниеРежим със състояние
Настройка stateless_httpTRUEFALSE
Изолация на сесиятаСпециализирана microVM за сесияСпециализирана microVM за сесия
Продължителност на сесиятаДо 8 часа; 15-минутен таймаут за неактивностДо 8 часа; 15-минутен таймаут за неактивност
Възможности на клиентаНе се поддържатЕлицитация, вземане на проби, известия за напредък
Препоръчително заОбслужване на прости инструментиИнтерактивни, многостъпкови работни потоци

Когато сесията изтече или сървърът бъде рестартиран, последващите заявки с предходния ID на сесията ще върнат грешка 404. В този момент клиентите трябва да реинициализират връзката, за да получат нов ID на сесията и да започнат нова сесия. Промяната в конфигурацията за активиране на режима със състояние е единствен флаг при стартиране на сървъра ви:

mcp.run(
    transport="streamable-http",
    host="0.0.0.0",
    port=8000,
    stateless_http=False # Активиране на режим със състояние
)

Освен този флаг, трите възможности на клиента стават автоматично достъпни, след като MCP клиентът декларира поддръжка за тях по време на ръкостискането за инициализация.

Задълбочен преглед на новите възможности на клиента: Елицитация, Вземане на проби и Напредък

С прехода към режим на състояние, Amazon Bedrock AgentCore Runtime отключва три мощни възможности на клиента от спецификацията на MCP, всяка от които е проектирана да адресира различни интеракционни модели, ключови за напреднали AI агенти. Тези възможности трансформират това, което някога е било твърдо, еднопосочно изпълнение на команди, в плавен, двупосочен диалог между MCP сървър и неговите свързани клиенти. Важно е да се отбележи, че тези функции са избираеми, което означава, че клиентите декларират своята поддръжка по време на инициализация, а сървърите трябва да използват само възможности, които свързаният клиент е обявил.

Елицитация: Активиране на динамичен потребителски вход в AI агенти

Елицитацията (Elicitation) е крайъгълен камък на интерактивния AI, позволявайки на MCP сървър интелигентно да прекъсне изпълнението си и да поиска специфичен, структуриран вход от потребителя чрез клиента. Тази възможност дава на инструмента силата да задава прецизни въпроси в подходящи моменти в рамките на своя работен поток, било то за потвърждаване на решение, събиране на потребителско предпочитание или събиране на стойност, произтичаща от предходни операции. Сървърът инициира това, като изпраща elicitation/create JSON-RPC заявка, която включва човешки четимо съобщение и незадължителна 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 и връща генерирания отговор. Това отваря множество практически приложения, включително създаване на персонализирани резюмета, генериране на обяснения на естествен език от структурирани данни или създаване на контекстуално осведомени препоръки въз основа на текущия разговор.

За операции, които се простират във времето, Известията за напредък стават безценни. Тази възможност позволява на MCP сървър да докладва поетапни актуализации по време на продължителни задачи. Чрез използването на ctx.report_progress(progress, total), сървърът може да излъчва непрекъснати актуализации, които клиентите могат да преобразуват във визуална обратна връзка, като например лента за напредък или индикатор за състояние. Независимо дали става въпрос за търсене в огромни източници на данни или за изпълнение на сложни изчислителни задачи, прозрачните актуализации за напредъка гарантират, че потребителите остават информирани, предотвратявайки разочарованието и подобрявайки цялостното потребителско изживяване, вместо да ги оставят да се взират в празен екран, чудейки се дали системата все още е активна.

Подготовка на разработката на AI агенти за бъдещето с Bedrock AgentCore Runtime

Въвеждането на възможности за състояние на MCP клиента в Amazon Bedrock AgentCore Runtime представлява значителен скок напред в разработката на AI агенти. Чрез трансформирането на предишни взаимодействия без състояние в динамични, двупосочни разговори, AWS дава възможност на разработчиците да създават по-интелигентни, отзивчиви и удобни за потребителя AI приложения. Тези възможности – Елицитация за насочен потребителски вход, Вземане на проби за генериране на LLM при поискване и Известия за напредък за прозрачност в реално време – колективно отключват нова ера на интерактивни работни потоци за агенти. Тъй като AI продължава да се развива, тези основни възможности ще бъдат от решаващо значение за създаването на сложен операционализиращ агентен 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.

Бъдете информирани

Получавайте последните AI новини по имейл.

Сподели