Code Velocity
AI pentru Întreprinderi

Amazon Bedrock: Capacități Stateful MCP Client în Runtime-ul AgentCore

·7 min de citit·AWS·Sursa originală
Distribuie
Diagramă ilustrând capacitățile client MCP stateful în Runtime-ul Amazon Bedrock AgentCore cu fluxuri interactive ale agenților AI.

Îmbunătățirea Agenților AI: Tranziția la MCP Stateful pe Amazon Bedrock

Agenții AI evoluează rapid, dar potențialul lor maxim a fost adesea limitat de implementările stateless, în special în scenariile care necesită interacțiune cu utilizatorul în timp real, generare dinamică de conținut sau actualizări continue de progres. Dezvoltatorii care construiesc agenți AI sofisticați se confruntă frecvent cu provocări atunci când fluxurile de lucru trebuie să se întrerupă, să colecteze clarificări sau să raporteze starea în timpul operațiilor de lungă durată. Natura rigidă, unidirecțională, a execuției stateless, restricționează dezvoltarea de aplicații AI cu adevărat interactive și receptive.

Acum, Amazon Bedrock AgentCore Runtime introduce capacități client revoluționare pentru Protocolul de Context al Modelului (MCP) stateful, transformând modul în care agenții AI interacționează cu utilizatorii și modelele lingvistice mari (LLM-uri). Această actualizare crucială eliberează agenții de constrângerile comunicării stateless, permițând fluxuri de lucru complexe, multi-interacțiune și extrem de interactive. Prin integrarea caracteristicilor esențiale ale clientului MCP – Elicitație, Eșantionare și Notificări de Progres – Runtime-ul Bedrock AgentCore facilitează conversații bidirecționale între serverele și clienții MCP, deschizând calea către soluții AI mai inteligente și centrate pe utilizator.

De la Stateless la Stateful: Deblocarea Fluxurilor de Lucru Interactive ale Agenților

Anterior, suportul serverului MCP pe AgentCore opera în modul stateless, unde fiecare solicitare HTTP funcționa independent, fără niciun context partajat. Deși acest lucru a simplificat implementarea pentru serverele de instrumente de bază, a limitat sever scenariile care necesitau continuitate conversațională, clarificări de la utilizator în timpul fluxului de lucru sau raportarea progresului în timp real. Serverul pur și simplu nu putea menține un fir de conversație între solicitări discrete, împiedicând dezvoltarea de agenți cu adevărat interactivi.

Apariția capacităților client MCP stateful modifică fundamental această paradigmă. Prin setarea stateless_http=False la pornirea serverului, Runtime-ul AgentCore alocă o microVM dedicată pentru fiecare sesiune de utilizator. Această microVM persistă pe durata sesiunii – până la 8 ore, sau 15 minute de inactivitate conform setării idleRuntimeSessionTimeout – asigurând izolarea CPU-ului, memoriei și sistemului de fișiere între sesiuni. Continuitatea este menținută printr-un antet Mcp-Session-Id, pe care serverul îl furnizează în timpul inițializării și pe care clientul îl include în toate solicitările ulterioare pentru a fi redirecționat către aceeași sesiune. Acest mediu dedicat și persistent permite agenților să își amintească contextul, să solicite intrarea utilizatorului, să genereze conținut LLM dinamic și să furnizeze actualizări continue.

Următorul tabel rezumă diferențele cheie între modurile stateless și stateful:

Modul StatelessModul Stateful
Setarea stateless_httpTRUEFALSE
Izolarea sesiuniiMicroVM dedicat per sesiuneMicroVM dedicat per sesiune
Durata sesiuniiPână la 8 ore; timeout de 15 min de inactivitatePână la 8 ore; timeout de 15 min de inactivitate
Capacități clientNu sunt suportateElicitație, eșantionare, notificări de progres
Recomandat pentruServire simplă de instrumenteFluxuri de lucru interactive, multi-interacțiune

Când o sesiune expiră sau serverul este repornit, solicitările ulterioare cu ID-ul de sesiune anterior vor returna un 404. În acel moment, clienții trebuie să re-inițializeze conexiunea pentru a obține un nou ID de sesiune și a începe o sesiune nouă. Modificarea configurației pentru a activa modul stateful este un singur flag la pornirea serverului:

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

Dincolo de acest flag, cele trei capacități client devin disponibile automat odată ce clientul MCP își declară suportul pentru acestea în timpul handshake-ului de inițializare.

Aprofundare în Noile Capacități Client: Elicitație, Eșantionare și Progres

Odată cu tranziția la modul stateful, Runtime-ul Amazon Bedrock AgentCore deblochează trei capacități client puternice din specificația MCP, fiecare concepută pentru a aborda tipare de interacțiune distincte, cruciale pentru agenții AI avansați. Aceste capacități transformă ceea ce era odată o execuție rigidă, unidirecțională, a comenzilor, într-un dialog fluid, bidirecțional, între un server MCP și clienții săi conectați. Este important de reținut că aceste funcționalități sunt opt-in, ceea ce înseamnă că clienții își declară suportul în timpul inițializării, iar serverele trebuie să utilizeze doar capacitățile pe care clientul conectat le-a publicat.

Elicitație: Activarea Inputului Dinamic de la Utilizator în Agenții AI

Elicitarea reprezintă un pilon al AI interactive, permițând unui server MCP să își întrerupă judicios execuția și să solicite o intrare specifică, structurată, de la utilizator prin intermediul clientului. Această capacitate abilitează instrumentul să pună întrebări precise în momente oportune din fluxul său de lucru, fie că este vorba de a confirma o decizie, de a colecta o preferință a utilizatorului sau de a aduna o valoare derivată din operațiunile precedente. Serverul inițiază acest lucru trimițând o solicitare elicitation/create JSON-RPC, care include un mesaj lizibil pentru om și o requestedSchema opțională care delimitează structura de răspuns așteptată.

Specificația MCP oferă două moduri robuste pentru elicitație:

  • Modul Formular: Acesta este ideal pentru colectarea datelor structurate direct prin clientul MCP, cum ar fi parametrii de configurare, preferințele utilizatorului sau confirmările simple unde nu sunt implicate date sensibile.
  • Modul URL: Pentru interacțiunile care necesită un proces securizat, extern, cum ar fi fluxurile OAuth, procesarea plăților sau introducerea de credențiale sensibile, modul URL direcționează utilizatorul către un URL extern. Acest lucru asigură că informațiile sensibile ocolesc complet clientul MCP, sporind securitatea și conformitatea.

La primirea unei solicitări de elicitație, clientul randează o interfață de introducere adecvată. Acțiunea ulterioară a utilizatorului declanșează un model de răspuns în trei acțiuni înapoi către server: accept (utilizatorul a furnizat datele solicitate), decline (utilizatorul a respins explicit solicitarea) sau cancel (utilizatorul a închis promptul fără a face o alegere). Serverele inteligente sunt concepute să gestioneze fiecare dintre aceste scenarii cu grație, asigurând o experiență robustă și ușor de utilizat. De exemplu, un instrument add_expense_interactive, așa cum este demonstrat în materialul sursă, poate ghida un utilizator printr-o serie de întrebări – sumă, descriere, categorie și confirmare finală – înainte de a trimite datele către un backend precum Amazon DynamoDB. Fiecare pas utilizează modele Pydantic pentru a defini intrarea așteptată, pe care FastMCP o convertește fără probleme în schema JSON necesară pentru solicitarea elicitation/create.

Eșantionare și Notificări de Progres: Impulsionarea Interacțiunii LLM și a Transparenței

Dincolo de interacțiunea directă cu utilizatorul, Eșantionarea echipează serverul MCP cu capacitatea de a solicita conținut generat de LLM direct de la client prin sampling/createMessage. Acesta este un mecanism critic, deoarece permite logicii instrumentului de pe server să utilizeze capacitățile puternice ale modelelor lingvistice fără a fi nevoie să gestioneze propriile credențiale LLM sau integrări API directe. Serverul furnizează pur și simplu un prompt și preferințe opționale de model, iar clientul, acționând ca un intermediar, trimite solicitarea către LLM-ul său conectat și returnează răspunsul generat. Aceasta deschide o multitudine de aplicații practice, inclusiv crearea de rezumate personalizate, generarea de explicații în limbaj natural din date structurate sau producerea de recomandări sensibile la context bazate pe conversația în curs.

Pentru operațiile care se extind în timp, Notificările de Progres devin inestimabile. Această capacitate permite unui server MCP să raporteze actualizări incrementale în timpul sarcinilor de lungă durată. Prin utilizarea ctx.report_progress(progress, total), serverul poate emite actualizări continue pe care clienții le pot traduce în feedback vizual, cum ar fi o bară de progres sau un indicator de stare. Fie că este vorba de căutarea în surse vaste de date sau de executarea unor sarcini computaționale complexe, actualizările transparente de progres asigură că utilizatorii rămân informați, prevenind frustrarea și îmbunătățind experiența generală a utilizatorului, în loc să-i lase să privească un ecran gol, întrebându-se dacă sistemul este încă activ.

Pregătirea pentru Viitor a Dezvoltării Agenților AI cu Runtime-ul Bedrock AgentCore

Introducerea capacităților client MCP stateful în Runtime-ul Amazon Bedrock AgentCore reprezintă un pas semnificativ înainte în dezvoltarea agenților AI. Prin transformarea interacțiunilor anterior stateless în conversații dinamice, bidirecționale, AWS împuternicește dezvoltatorii să construiască aplicații AI mai inteligente, receptive și ușor de utilizat. Aceste capacități – Elicitarea pentru input ghidat de la utilizator, Eșantionarea pentru generarea LLM la cerere și Notificările de Progres pentru transparență în timp real – deblochează colectiv o nouă eră a fluxurilor de lucru interactive ale agenților. Pe măsură ce AI continuă să evolueze, aceste capacități fundamentale vor fi cruciale pentru crearea unei AI agentice operaționalizate sofisticate, care se poate integra fără probleme în procese de afaceri complexe, se poate adapta la nevoile utilizatorului și poate oferi o valoare excepțională.

Întrebări frecvente

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.

Rămâi la curent

Primește ultimele știri AI în inbox-ul tău.

Distribuie