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à stateless | Modalità stateful | |
|---|---|---|
Impostazione di stateless_http | TRUE | FALSE |
| Isolamento della sessione | MicroVM dedicata per sessione | MicroVM dedicata per sessione |
| Durata della sessione | Fino a 8 ore; timeout di inattività di 15 min | Fino a 8 ore; timeout di inattività di 15 min |
| Capacità client | Non supportate | Elicitazione, campionamento, notifiche di progresso |
| Consigliato per | Servizio di strumenti semplice | Flussi 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.
Fonte originale
https://aws.amazon.com/blogs/machine-learning/introducing-stateful-mcp-client-capabilities-on-amazon-bedrock-agentcore-runtime/Domande Frequenti
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?
Resta aggiornato
Ricevi le ultime notizie sull'IA nella tua casella.
