Code Velocity
Enterprise AI

Amazon Bedrock: Stateful MCP-klientfunktioner på AgentCore Runtime

·7 min læsning·AWS·Original kilde
Del
Diagram, der illustrerer stateful MCP-klientfunktioner på Amazon Bedrock AgentCore Runtime med interaktive AI-agentforløb.

Forbedring af AI-agenter: Skiftet til Stateful MCP på Amazon Bedrock

AI-agenter udvikler sig hurtigt, men deres fulde potentiale er ofte blevet hæmmet af stateless implementeringer, især i scenarier, der kræver realtids-brugerinteraktion, dynamisk indholdsgenerering eller løbende statusopdateringer. Udviklere, der bygger sofistikerede AI-agenter, står ofte over for udfordringer, når arbejdsgange skal pauses, indhente afklaring eller rapportere status under langvarige operationer. Den stive, envejs-karakter af stateless udførelse begrænser udviklingen af ægte interaktive og responsive AI-applikationer.

Nu introducerer Amazon Bedrock AgentCore Runtime banebrydende stateful Model Context Protocol (MCP)-klientfunktioner, der transformerer, hvordan AI-agenter interagerer med brugere og store sprogmodeller (LLM'er). Denne afgørende opdatering frigør agenter fra begrænsningerne ved stateless kommunikation, hvilket muliggør komplekse, flertrins- og meget interaktive arbejdsgange. Ved at integrere afgørende MCP-klientfunktioner – Elicitering, Sampling og Fremdriftsmeddelelser – letter Bedrock AgentCore Runtime tovejskommunikation mellem MCP-servere og klienter, hvilket baner vejen for mere intelligente, brugercentrerede AI-løsninger.

Fra Stateless til Stateful: Lås op for interaktive agent-arbejdsgange

Tidligere opererede MCP-serversupport på AgentCore i en stateless tilstand, hvor hver HTTP-anmodning fungerede uafhængigt, blottet for enhver delt kontekst. Selvom dette forenklede implementeringen for grundlæggende værktøjsservere, begrænsede det alvorligt scenarier, der krævede samtalekontinuitet, brugerafklaring midt i arbejdsgangen eller realtidsfremdriftsrapportering. Serveren kunne simpelthen ikke opretholde en samtaletråd på tværs af diskrete anmodninger, hvilket hæmmede udviklingen af ægte interaktive agenter.

Fremkomsten af stateful MCP-klientfunktioner ændrer fundamentalt dette paradigme. Ved at indstille stateless_http=False under serveropstart provisionerer AgentCore Runtime en dedikeret microVM til hver brugersession. Denne microVM varer ved i hele sessionens varighed – op til 8 timer, eller 15 minutter med inaktivitet pr. idleRuntimeSessionTimeout-indstilling – hvilket sikrer CPU-, hukommelses- og filsystemisolation mellem sessioner. Kontinuitet opretholdes via en Mcp-Session-Id header, som serveren leverer under initialisering, og klienten inkluderer i alle efterfølgende anmodninger for at dirigere tilbage til den samme session. Dette dedikerede, vedvarende miljø gør det muligt for agenter at huske kontekst, anmode om brugerinput, generere dynamisk LLM-indhold og levere løbende opdateringer.

Den følgende tabel opsummerer de vigtigste forskelle mellem stateless og stateful tilstande:

Stateless tilstandStateful tilstand
stateless_http-indstillingTRUEFALSE
SessionsisolationDedikeret microVM per sessionDedikeret microVM per session
Sessionens levetidOp til 8 timer; 15-min inaktivitetstimeoutOp til 8 timer; 15-min inaktivitetstimeout
KlientfunktionerIkke understøttetElicitering, sampling, fremdriftsmeddelelser
Anbefales tilEnkel værktøjsserviceInteraktive flertrins-arbejdsgange

Når en session udløber, eller serveren genstartes, vil efterfølgende anmodninger med det tidligere sessions-ID returnere en 404. På dette tidspunkt skal klienter geninitialisere forbindelsen for at opnå et nyt sessions-ID og starte en frisk session. Konfigurationsændringen for at aktivere stateful tilstand er et enkelt flag i din serveropstart:

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

Ud over dette flag bliver de tre klientfunktioner automatisk tilgængelige, så snart MCP-klienten erklærer support for dem under initialiserings-handshaket.

Dybtgående kig på nye klientfunktioner: Elicitering, Sampling og Fremdrift

Med overgangen til stateful tilstand låser Amazon Bedrock AgentCore Runtime op for tre kraftfulde klientfunktioner fra MCP-specifikationen, hver især designet til at adressere særskilte interaktionsmønstre, der er afgørende for avancerede AI-agenter. Disse funktioner transformerer, hvad der engang var en stiv, envejs kommandoeksekvering, til en flydende tovejsdialog mellem en MCP-server og dens tilsluttede klienter. Det er vigtigt at bemærke, at disse funktioner er opt-in, hvilket betyder, at klienter erklærer deres support under initialisering, og servere må kun udnytte funktioner, som den tilsluttede klient har annonceret.

Elicitering: Aktivering af dynamisk brugerinput i AI-agenter

Elicitering står som en hjørnesten i interaktiv AI, hvilket gør det muligt for en MCP-server intelligent at pause sin udførelse og anmode om specifikt, struktureret input fra brugeren via klienten. Denne funktion giver værktøjet mulighed for at stille præcise spørgsmål på passende tidspunkter inden for dets arbejdsgang, hvad enten det er for at bekræfte en beslutning, indsamle en brugerpræference eller indhente en værdi afledt af forudgående operationer. Serveren initierer dette ved at sende en elicitation/create JSON-RPC-anmodning, som inkluderer en læsbar besked og et valgfrit requestedSchema, der afgrænser den forventede svarstruktur.

MCP-specifikationen giver to robuste tilstande for elicitering:

  • Formtilstand: Dette er ideelt til indsamling af strukturerede data direkte via MCP-klienten, såsom konfigurationsparametre, brugerpræferencer eller simple bekræftelser, hvor følsomme data ikke er involveret.
  • URL-tilstand: Til interaktioner, der nødvendiggør en sikker, out-of-band proces, som OAuth-flows, betalingsbehandling eller indtastning af følsomme legitimationsoplysninger, dirigerer URL-tilstand brugeren til en ekstern URL. Dette sikrer, at følsom information helt omgår MCP-klienten, hvilket forbedrer sikkerhed og overholdelse.

Ved modtagelse af en elicitationsanmodning gengiver klienten en passende inputgrænseflade. Brugerens efterfølgende handling udløser en svarmodel med tre handlinger tilbage til serveren: accept (brugeren har leveret de anmodede data), decline (brugeren har udtrykkeligt afvist anmodningen), eller cancel (brugeren har afvist prompten uden at træffe et valg). Intelligente servere er designet til at håndtere hvert af disse scenarier elegant, hvilket sikrer en robust og brugervenlig oplevelse. For eksempel kan et add_expense_interactive-værktøj, som demonstreret i kildematerialet, guide en bruger gennem en række spørgsmål – beløb, beskrivelse, kategori og endelig bekræftelse – før data committes til en backend som Amazon DynamoDB. Hvert trin udnytter Pydantic-modeller til at definere det forventede input, som FastMCP problemfrit konverterer til det JSON-skema, der kræves til elicitation/create-anmodningen.

Sampling og fremdriftsmeddelelser: Forbedring af LLM-interaktion og gennemsigtighed

Ud over direkte brugerinteraktion udstyrer Sampling MCP-serveren med muligheden for at anmode om LLM-genereret indhold direkte fra klienten via sampling/createMessage. Dette er en kritisk mekanisme, da den gør det muligt for værktøjslogikken på serveren at udnytte kraftfulde sprogmodel-funktioner uden at skulle håndtere sine egne LLM-legitimationsoplysninger eller direkte API-integrationer. Serveren leverer simpelthen en prompt og valgfri modelpræferencer, og klienten, der fungerer som en mellemmand, videresender anmodningen til sin tilsluttede LLM og returnerer det genererede svar. Dette åbner op for et utal af praktiske applikationer, herunder udarbejdelse af personaliserede resumeer, generering af naturlige sprogforklaringer fra strukturerede data eller produktion af kontekstbevidste anbefalinger baseret på den igangværende samtale.

For operationer, der strækker sig over tid, bliver Fremdriftsmeddelelser uvurderlige. Denne funktion gør det muligt for en MCP-server at rapportere inkrementelle opdateringer under langvarige opgaver. Ved at bruge ctx.report_progress(progress, total) kan serveren udsende løbende opdateringer, som klienter kan omsætte til visuel feedback, såsom en statuslinje eller en statusindikator. Uanset om det er søgning på tværs af store datakilder eller udførelse af komplekse beregningsopgaver, sikrer gennemsigtige fremdriftsopdateringer, at brugere forbliver informerede, forhindrer frustration og forbedrer den samlede brugeroplevelse, i stedet for at lade dem stirre på en tom skærm og undre sig over, om systemet stadig er aktivt.

Fremtidssikring af AI-agentudvikling med Bedrock AgentCore Runtime

Introduktionen af stateful MCP-klientfunktioner på Amazon Bedrock AgentCore Runtime repræsenterer et betydeligt skridt fremad inden for AI-agentudvikling. Ved at omdanne tidligere stateless interaktioner til dynamiske, tovejskommunikationer, giver AWS udviklere mulighed for at bygge mere intelligente, responsive og brugervenlige AI-applikationer. Disse funktioner – Elicitering for guidet brugerinput, Sampling for on-demand LLM-generering og Fremdriftsmeddelelser for realtids-gennemsigtighed – låser samlet op for en ny æra af interaktive agentarbejdsgange. Efterhånden som AI fortsætter med at udvikle sig, vil disse grundlæggende funktioner være afgørende for at skabe sofistikeret operationalisering af agentisk AI, der problemfrit kan integreres i komplekse forretningsprocesser, tilpasse sig brugerbehov og levere exceptionel værdi.

Ofte stillede spørgsmål

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.

Hold dig opdateret

Få de seneste AI-nyheder i din indbakke.

Del