Code Velocity
Enterprise AI

Amazon Bedrock: Stateful MCP Clientfunctionaliteiten op AgentCore Runtime

·7 min leestijd·AWS·Originele bron
Delen
Diagram dat de stateful MCP clientfunctionaliteiten op Amazon Bedrock AgentCore Runtime illustreert met interactieve AI-agentstromen.

AI-agenten verbeteren: de verschuiving naar Stateful MCP op Amazon Bedrock

AI-agenten evolueren snel, maar hun volledige potentieel wordt vaak belemmerd door stateless implementaties, vooral in scenario's die realtime gebruikersinteractie, dynamische inhoudgeneratie of doorlopende voortgangsupdates vereisen. Ontwikkelaars die geavanceerde AI-agenten bouwen, worden vaak geconfronteerd met uitdagingen wanneer workflows moeten pauzeren, om verduidelijking moeten vragen of de status moeten rapporteren tijdens langdurige operaties. De rigide, eenrichtingsaard van stateless uitvoering beperkt de ontwikkeling van echt interactieve en responsieve AI-applicaties.

Nu introduceert Amazon Bedrock AgentCore Runtime baanbrekende stateful Model Context Protocol (MCP) clientfunctionaliteiten, die de manier transformeren waarop AI-agenten omgaan met gebruikers en grote taalmodellen (LLM's). Deze cruciale update bevrijdt agenten van de beperkingen van stateless communicatie, waardoor complexe, meerfasige en zeer interactieve workflows mogelijk worden. Door essentiële MCP-clientfuncties – Elicitatie, Sampling en Voortgangsmeldingen – te integreren, faciliteert Bedrock AgentCore Runtime bidirectionele gesprekken tussen MCP-servers en -clients, wat de weg vrijmaakt voor intelligentere, gebruikersgerichtere AI-oplossingen.

Van Stateless naar Stateful: Interactieve Agentworkflows Ontgrendelen

Voorheen werkte de MCP-serverondersteuning op AgentCore in een stateless modus, waarbij elke HTTP-aanvraag onafhankelijk functioneerde, zonder gedeelde context. Hoewel dit de implementatie voor eenvoudige toolservers vereenvoudigde, beperkte het ernstig scenario's die conversationele continuïteit, gebruikersverduidelijking midden in de workflow of realtime voortgangsrapportage vereisten. De server kon eenvoudigweg geen gespreksdraad handhaven over afzonderlijke aanvragen, wat de ontwikkeling van echt interactieve agenten belemmerde.

De komst van stateful MCP clientfunctionaliteiten verandert dit paradigma fundamenteel. Door stateless_http=False in te stellen tijdens het opstarten van de server, voorziet AgentCore Runtime elke gebruikerssessie van een dedicated microVM. Deze microVM blijft bestaan gedurende de sessieduur – tot 8 uur, of 15 minuten inactiviteit per idleRuntimeSessionTimeout instelling – en zorgt voor CPU-, geheugen- en bestandssysteemisolatie tussen sessies. Continuïteit wordt gehandhaafd via een Mcp-Session-Id header, die de server tijdens de initialisatie levert en de client opneemt in alle volgende aanvragen om terug te sturen naar dezelfde sessie. Deze dedicated, persistente omgeving stelt agenten in staat om context te onthouden, gebruikersinvoer te vragen, dynamische LLM-inhoud te genereren en continue updates te bieden.

De volgende tabel vat de belangrijkste verschillen tussen stateless en stateful modi samen:

Stateless modusStateful modus
stateless_http instellingTRUEFALSE
Sessie-isolatieDedicated microVM per sessieDedicated microVM per sessie
SessieduurTot 8 uur; 15 minuten inactiviteitstime-outTot 8 uur; 15 minuten inactiviteitstime-out
ClientfunctionaliteitenNiet ondersteundElicitatie, sampling, voortgangsmeldingen
Aanbevolen voorEenvoudige toolservingInteractieve, meerfasige workflows

Wanneer een sessie verloopt of de server opnieuw wordt gestart, zullen volgende aanvragen met de oude sessie-ID een 404 retourneren. Op dat moment moeten clients de verbinding opnieuw initialiseren om een nieuwe sessie-ID te verkrijgen en een nieuwe sessie te starten. De configuratiewijziging om de stateful modus in te schakelen is één enkele vlag bij het opstarten van uw server:

mcp.run( transport="streamable-http", host="0.0.0.0", port=8000, stateless_http=False # Enable stateful mode)

Buiten deze vlag worden de drie clientfunctionaliteiten automatisch beschikbaar zodra de MCP-client er tijdens de initialisatie-handshake ondersteuning voor declareert.

Diepere Duik in Nieuwe Clientfunctionaliteiten: Elicitatie, Sampling en Voortgang

Met de overgang naar de stateful modus ontgrendelt Amazon Bedrock AgentCore Runtime drie krachtige clientfunctionaliteiten uit de MCP-specificatie, elk ontworpen om verschillende interactiepatronen aan te pakken die cruciaal zijn voor geavanceerde AI-agenten. Deze functionaliteiten transformeren wat eens een rigide, eenrichtingscommando-uitvoering was, in een vloeiende, tweerichtingsdialoog tussen een MCP-server en zijn verbonden clients. Het is belangrijk op te merken dat deze functies opt-in zijn, wat betekent dat clients hun ondersteuning declareren tijdens de initialisatie, en servers alleen functionaliteiten mogen gebruiken die de verbonden client heeft geadverteerd.

Elicitatie: Dynamische Gebruikersinvoer in AI-agenten Mogelijk Maken

Elicitatie is een hoeksteen van interactieve AI, waardoor een MCP-server zijn uitvoering oordeelkundig kan pauzeren en specifieke, gestructureerde invoer van de gebruiker via de client kan vragen. Deze functionaliteit stelt de tool in staat precieze vragen te stellen op opportune momenten binnen zijn workflow, of het nu gaat om het bevestigen van een beslissing, het verzamelen van een gebruikersvoorkeur, of het verzamelen van een waarde afgeleid van voorafgaande operaties. De server initieert dit door een elicitation/create JSON-RPC-aanvraag te sturen, die een menselijk leesbaar bericht en een optionele requestedSchema bevat die de verwachte responsstructuur afbakent.

De MCP-specificatie biedt twee robuuste modi voor elicitatie:

  • Formuliermodus: Dit is ideaal voor het direct verzamelen van gestructureerde gegevens via de MCP-client, zoals configuratieparameters, gebruikersvoorkeuren of eenvoudige bevestigingen waarbij geen gevoelige gegevens betrokken zijn.
  • URL-modus: Voor interacties die een veilig, out-of-band proces vereisen, zoals OAuth-stromen, betalingsverwerking of het invoeren van gevoelige inloggegevens, leidt de URL-modus de gebruiker naar een externe URL. Dit zorgt ervoor dat gevoelige informatie de MCP-client volledig omzeilt, waardoor de beveiliging en compliance worden verbeterd.

Na ontvangst van een elicitatieverzoek rendert de client een passende invoerinterface. De daaropvolgende actie van de gebruiker activeert een responsmodel met drie acties terug naar de server: accept (gebruiker heeft de gevraagde gegevens geleverd), decline (gebruiker heeft de aanvraag expliciet geweigerd), of cancel (gebruiker heeft de prompt afgewezen zonder een keuze te maken). Intelligente servers zijn ontworpen om elk van deze scenario's gracieus af te handelen, wat zorgt voor een robuuste en gebruiksvriendelijke ervaring. Een add_expense_interactive tool, zoals gedemonstreerd in het bronmateriaal, kan bijvoorbeeld een gebruiker door een reeks vragen leiden—bedrag, beschrijving, categorie en uiteindelijke bevestiging—voordat gegevens naar een backend zoals Amazon DynamoDB worden vastgelegd. Elke stap maakt gebruik van Pydantic-modellen om de verwachte invoer te definiëren, die FastMCP naadloos converteert naar het JSON Schema dat nodig is voor de elicitation/create aanvraag.

Sampling en Voortgangsmeldingen: LLM-interactie en Transparantie Stimuleren

Naast directe gebruikersinteractie voorziet Sampling de MCP-server van de mogelijkheid om LLM-gegenereerde inhoud rechtstreeks van de client aan te vragen via sampling/createMessage. Dit is een cruciaal mechanisme, omdat het de toollogica op de server in staat stelt krachtige taalmodelmogelijkheden te benutten zonder dat de server zijn eigen LLM-inloggegevens of directe API-integraties hoeft te beheren. De server levert eenvoudigweg een prompt en optionele modelvoorkeuren, en de client, fungerend als tussenpersoon, stuurt de aanvraag door naar zijn verbonden LLM en retourneert het gegenereerde antwoord. Dit opent een scala aan praktische toepassingen, waaronder het opstellen van gepersonaliseerde samenvattingen, het genereren van natuurlijke-taalverklaringen uit gestructureerde gegevens, of het produceren van contextbewuste aanbevelingen op basis van het lopende gesprek.

Voor operaties die langer duren, worden Voortgangsmeldingen van onschatbare waarde. Deze functionaliteit stelt een MCP-server in staat incrementele updates te rapporteren tijdens langlopende taken. Door gebruik te maken van ctx.report_progress(progress, total), kan de server continue updates uitzenden die clients kunnen vertalen in visuele feedback, zoals een voortgangsbalk of een statusindicator. Of het nu gaat om het zoeken door enorme databronnen of het uitvoeren van complexe computationele taken, transparante voortgangsupdates zorgen ervoor dat gebruikers geïnformeerd blijven, frustratie wordt voorkomen en de algehele gebruikerservaring wordt verbeterd, in plaats van dat ze naar een leeg scherm staren en zich afvragen of het systeem nog actief is.

AI-agentontwikkeling Toekomstbestendig Maken met Bedrock AgentCore Runtime

De introductie van stateful MCP clientfunctionaliteiten op Amazon Bedrock AgentCore Runtime vertegenwoordigt een aanzienlijke stap voorwaarts in de ontwikkeling van AI-agenten. Door eerder stateless interacties om te zetten in dynamische, bidirectionele gesprekken, stelt AWS ontwikkelaars in staat intelligentere, responsievere en gebruiksvriendelijkere AI-applicaties te bouwen. Deze functionaliteiten – Elicitatie voor geleide gebruikersinvoer, Sampling voor on-demand LLM-generatie, en Voortgangsmeldingen voor realtime transparantie – ontsluiten gezamenlijk een nieuw tijdperk van interactieve agentworkflows. Naarmate AI blijft evolueren, zullen deze fundamentele functionaliteiten cruciaal zijn voor het creëren van geavanceerde operationalisering van agentic AI die naadloos kunnen integreren in complexe bedrijfsprocessen, zich kunnen aanpassen aan gebruikersbehoeften en uitzonderlijke waarde kunnen leveren.

Veelgestelde vragen

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.

Blijf op de hoogte

Ontvang het laatste AI-nieuws in je inbox.

Delen