Code Velocity
AI aziendale

Amazon Bedrock: Capacità client MCP stateful su AgentCore Runtime

·7 min di lettura·AWS·Fonte originale
Condividi
Diagramma che illustra le capacità client MCP stateful su Amazon Bedrock AgentCore Runtime con flussi interattivi di agenti AI.

Migliorare gli agenti AI: il passaggio a MCP stateful su Amazon Bedrock

Gli agenti AI sono in rapida evoluzione, eppure il loro pieno potenziale è stato spesso ostacolato da implementazioni stateless, in particolare in scenari che richiedono interazione utente in tempo reale, generazione dinamica di contenuti o aggiornamenti di progresso continui. Gli sviluppatori che costruiscono agenti AI sofisticati si trovano spesso ad affrontare sfide quando i flussi di lavoro devono essere messi in pausa, richiedere chiarimenti o segnalare lo stato durante operazioni a lungo termine. La natura rigida e unidirezionale dell'esecuzione stateless limita lo sviluppo di applicazioni AI veramente interattive e reattive.

Ora, Amazon Bedrock AgentCore Runtime introduce le rivoluzionarie capacità client stateful del Model Context Protocol (MCP), trasformando il modo in cui gli agenti AI interagiscono con gli utenti e i modelli linguistici di grandi dimensioni (LLM). Questo aggiornamento fondamentale libera gli agenti dai vincoli della comunicazione stateless, abilitando flussi di lavoro complessi, multi-turno e altamente interattivi. Integrando le cruciali funzionalità client MCP – Elicitazione, Campionamento e Notifiche di Progresso – Bedrock AgentCore Runtime facilita le conversazioni bidirezionali tra server e client MCP, aprendo la strada a soluzioni AI più intelligenti e centrate sull'utente.

Da stateless a stateful: sbloccare flussi di lavoro interattivi per gli agenti

In precedenza, il supporto del server MCP su AgentCore operava in modalità stateless, dove ogni richiesta HTTP funzionava in modo indipendente, priva di qualsiasi contesto condiviso. Sebbene questo semplificasse la distribuzione per server di strumenti di base, limitava gravemente gli scenari che richiedevano continuità conversazionale, chiarimenti da parte dell'utente a metà del flusso di lavoro o report di progresso in tempo reale. Il server semplicemente non poteva mantenere un thread di conversazione tra richieste discrete, ostacolando lo sviluppo di agenti veramente interattivi.

L'avvento delle capacità client MCP stateful altera fondamentalmente questo paradigma. Impostando stateless_http=False durante l'avvio del server, AgentCore Runtime fornisce una microVM dedicata per ogni sessione utente. Questa microVM persiste per tutta la durata della sessione—fino a 8 ore, o 15 minuti di inattività per impostazione idleRuntimeSessionTimeout—garantendo isolamento di CPU, memoria e filesystem tra le sessioni. La continuità è mantenuta tramite un'intestazione Mcp-Session-Id, che il server fornisce durante l'inizializzazione e il client include in tutte le richieste successive per instradare di nuovo alla stessa sessione. Questo ambiente dedicato e persistente consente agli agenti di ricordare il contesto, sollecitare l'input dell'utente, generare contenuto LLM dinamico e fornire aggiornamenti continui.

La seguente tabella riassume le principali differenze tra le modalità stateless e stateful:

Modalità statelessModalità stateful
Impostazione di stateless_httpTRUEFALSE
Isolamento della sessioneMicroVM dedicata per sessioneMicroVM dedicata per sessione
Durata della sessioneFino a 8 ore; timeout di inattività di 15 minFino a 8 ore; timeout di inattività di 15 min
Capacità clientNon supportateElicitazione, campionamento, notifiche di progresso
Consigliato perServizio di strumenti sempliceFlussi di lavoro interattivi, multi-turno

Quando una sessione scade o il server viene riavviato, le richieste successive con il vecchio ID sessione restituiranno un 404. A quel punto, i client devono reinizializzare la connessione per ottenere un nuovo ID sessione e avviare una nuova sessione. La modifica della configurazione per abilitare la modalità stateful è un singolo flag nell'avvio del server:

mcp.run( transport="streamable-http", host="0.0.0.0", port=8000, stateless_http=False # Abilita la modalità stateful)

Oltre a questo flag, le tre capacità client diventano disponibili automaticamente una volta che il client MCP ne dichiara il supporto durante l'handshake di inizializzazione.

Approfondimento sulle nuove capacità client: Elicitazione, Campionamento e Progresso

Con la transizione alla modalità stateful, Amazon Bedrock AgentCore Runtime sblocca tre potenti capacità client dalla specifica MCP, ciascuna progettata per affrontare distinti schemi di interazione cruciali per gli agenti AI avanzati. Queste capacità trasformano ciò che una volta era una rigida esecuzione di comandi unidirezionale in un dialogo fluido e bidirezionale tra un server MCP e i suoi client connessi. È importante notare che queste funzionalità sono opt-in, il che significa che i client dichiarano il loro supporto durante l'inizializzazione e i server devono utilizzare solo le capacità che il client connesso ha pubblicizzato.

Elicitazione: Abilitare l'input utente dinamico negli agenti AI

L'Elicitazione si presenta come una pietra miliare dell'AI interattiva, consentendo a un server MCP di mettere giudiziosamente in pausa la sua esecuzione e richiedere un input specifico e strutturato dall'utente tramite il client. Questa capacità abilita lo strumento a porre domande precise in momenti opportuni all'interno del suo flusso di lavoro, sia per confermare una decisione, raccogliere una preferenza dell'utente o acquisire un valore derivato da operazioni precedenti. Il server avvia questo processo inviando una richiesta JSON-RPC elicitation/create, che include un messaggio leggibile dall'uomo e un requestedSchema opzionale che delinea la struttura di risposta attesa.

La specifica MCP fornisce due robuste modalità per l'elicitazione:

  • Modalità Modulo: È ideale per la raccolta di dati strutturati direttamente tramite il client MCP, come parametri di configurazione, preferenze dell'utente o semplici conferme in cui non sono coinvolti dati sensibili.
  • Modalità URL: Per interazioni che necessitano di un processo sicuro e fuori banda, come flussi OAuth, elaborazione dei pagamenti o l'inserimento di credenziali sensibili, la modalità URL indirizza l'utente a un URL esterno. Ciò garantisce che le informazioni sensibili bypassino completamente il client MCP, migliorando la sicurezza e la conformità.

Alla ricezione di una richiesta di elicitazione, il client renderizza un'interfaccia di input appropriata. L'azione successiva dell'utente attiva un modello di risposta a tre azioni al server: accept (l'utente ha fornito i dati richiesti), decline (l'utente ha esplicitamente rifiutato la richiesta) o cancel (l'utente ha chiuso il prompt senza fare una scelta). I server intelligenti sono progettati per gestire ciascuno di questi scenari con grazia, garantendo un'esperienza robusta e user-friendly. Ad esempio, uno strumento add_expense_interactive, come dimostrato nel materiale originale, può guidare un utente attraverso una serie di domande—importo, descrizione, categoria e conferma finale—prima di commitare i dati a un backend come Amazon DynamoDB. Ogni passaggio sfrutta i modelli Pydantic per definire l'input atteso, che FastMCP converte senza soluzione di continuità nello Schema JSON richiesto per la richiesta elicitation/create.

Campionamento e Notifiche di Progresso: Aumentare l'interazione e la trasparenza degli LLM

Oltre all'interazione diretta con l'utente, il Campionamento fornisce al server MCP la capacità di richiedere contenuti generati da LLM direttamente dal client tramite sampling/createMessage. Questo è un meccanismo critico in quanto consente alla logica dello strumento sul server di sfruttare le potenti capacità dei modelli linguistici senza la necessità di gestire le proprie credenziali LLM o integrazioni API dirette. Il server fornisce semplicemente un prompt e preferenze di modello opzionali, e il client, agendo come intermediario, inoltra la richiesta al suo LLM connesso e restituisce la risposta generata. Questo apre a una miriade di applicazioni pratiche, inclusa la creazione di riepiloghi personalizzati, la generazione di spiegazioni in linguaggio naturale da dati strutturati o la produzione di raccomandazioni contestualmente rilevanti basate sulla conversazione in corso.

Per le operazioni che si estendono nel tempo, le Notifiche di Progresso diventano inestimabili. Questa capacità consente a un server MCP di segnalare aggiornamenti incrementali durante attività a lungo termine. Utilizzando ctx.report_progress(progress, total), il server può emettere aggiornamenti continui che i client possono tradurre in feedback visivo, come una barra di progresso o un indicatore di stato. Che si tratti di effettuare ricerche su vaste fonti di dati o di eseguire complessi compiti computazionali, aggiornamenti di progresso trasparenti garantiscono che gli utenti rimangano informati, prevenendo la frustrazione e migliorando l'esperienza utente complessiva, invece di lasciarli a fissare uno schermo vuoto chiedendosi se il sistema sia ancora attivo.

Preparare lo sviluppo di agenti AI al futuro con Bedrock AgentCore Runtime

L'introduzione delle capacità client MCP stateful su Amazon Bedrock AgentCore Runtime rappresenta un significativo passo avanti nello sviluppo di agenti AI. Trasformando interazioni precedentemente stateless in conversazioni dinamiche e bidirezionali, AWS abilita gli sviluppatori a costruire applicazioni AI più intelligenti, reattive e user-friendly. Queste capacità – Elicitazione per l'input utente guidato, Campionamento per la generazione LLM su richiesta e Notifiche di Progresso per la trasparenza in tempo reale – sbloccano collettivamente una nuova era di flussi di lavoro interattivi per gli agenti. Man mano che l'AI continua a evolversi, queste capacità fondamentali saranno cruciali per creare AI agentica operativa sofisticata che possa integrarsi senza soluzione di continuità in complessi processi aziendali, adattarsi alle esigenze degli utenti e fornire un valore eccezionale.

Domande Frequenti

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.

Resta aggiornato

Ricevi le ultime notizie sull'IA nella tua casella.

Condividi