Подобряване на 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_http | TRUE | FALSE |
| Изолация на сесията | Специализирана 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, който може безпроблемно да се интегрира в сложни бизнес процеси, да се адаптира към нуждите на потребителите и да предоставя изключителна стойност.
Оригинален източник
https://aws.amazon.com/blogs/machine-learning/introducing-stateful-mcp-client-capabilities-on-amazon-bedrock-agentcore-runtime/Често задавани въпроси
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?
Бъдете информирани
Получавайте последните AI новини по имейл.
