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 modus | Stateful modus | |
|---|---|---|
stateless_http instelling | TRUE | FALSE |
| Sessie-isolatie | Dedicated microVM per sessie | Dedicated microVM per sessie |
| Sessieduur | Tot 8 uur; 15 minuten inactiviteitstime-out | Tot 8 uur; 15 minuten inactiviteitstime-out |
| Clientfunctionaliteiten | Niet ondersteund | Elicitatie, sampling, voortgangsmeldingen |
| Aanbevolen voor | Eenvoudige toolserving | Interactieve, 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?
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?
Blijf op de hoogte
Ontvang het laatste AI-nieuws in je inbox.
