Améliorer les Agents IA : Le Passage au MCP Stateful sur Amazon Bedrock
Les agents IA évoluent rapidement, mais leur plein potentiel a souvent été freiné par des implémentations stateless, en particulier dans les scénarios exigeant une interaction utilisateur en temps réel, une génération de contenu dynamique ou des mises à jour de progression continues. Les développeurs qui créent des agents IA sophistiqués sont fréquemment confrontés à des défis lorsque les workflows doivent s'interrompre, demander des clarifications ou signaler un statut pendant des opérations de longue durée. La nature rigide et unidirectionnelle de l'exécution stateless restreint le développement d'applications IA véritablement interactives et réactives.
Aujourd'hui, Amazon Bedrock AgentCore Runtime introduit des capacités client révolutionnaires du Protocole de Contexte de Modèle (MCP) stateful, transformant la manière dont les agents IA interagissent avec les utilisateurs et les grands modèles linguistiques (LLM). Cette mise à jour essentielle libère les agents des contraintes de la communication stateless, permettant des workflows complexes, multi-étapes et hautement interactifs. En intégrant des fonctionnalités client MCP cruciales – la Sollicitation, l'Échantillonnage et les Notifications de Progression – Bedrock AgentCore Runtime facilite les conversations bidirectionnelles entre les serveurs et les clients MCP, ouvrant la voie à des solutions IA plus intelligentes et centrées sur l'utilisateur.
Du Stateless au Stateful : Libérer les Workflows d'Agents Interactifs
Auparavant, le support du serveur MCP sur AgentCore fonctionnait en mode stateless, où chaque requête HTTP opérait indépendamment, dépourvue de tout contexte partagé. Bien que cela simplifiait le déploiement pour les serveurs d'outils basiques, cela limitait sévèrement les scénarios nécessitant une continuité conversationnelle, une clarification utilisateur en milieu de workflow, ou un rapport de progression en temps réel. Le serveur ne pouvait tout simplement pas maintenir un fil de conversation à travers des requêtes distinctes, entravant le développement d'agents véritablement interactifs.
L'avènement des capacités client MCP stateful modifie fondamentalement ce paradigme. En définissant stateless_http=False lors du démarrage du serveur, AgentCore Runtime provisionne une microVM dédiée pour chaque session utilisateur. Cette microVM persiste pendant la durée de la session — jusqu'à 8 heures, ou 15 minutes d'inactivité par le paramètre idleRuntimeSessionTimeout — assurant l'isolation du CPU, de la mémoire et du système de fichiers entre les sessions. La continuité est maintenue via un en-tête Mcp-Session-Id, que le serveur fournit lors de l'initialisation et que le client inclut dans toutes les requêtes ultérieures pour les acheminer vers la même session. Cet environnement dédié et persistant permet aux agents de se souvenir du contexte, de solliciter les entrées de l'utilisateur, de générer du contenu LLM dynamique et de fournir des mises à jour continues.
Le tableau suivant résume les différences clés entre les modes stateless et stateful :
| Mode stateless | Mode stateful | |
|---|---|---|
Paramètre stateless_http | TRUE | FALSE |
| Isolation de session | MicroVM dédiée par session | MicroVM dédiée par session |
| Durée de vie de la session | Jusqu'à 8 heures ; délai d'expiration de 15 min d'inactivité | Jusqu'à 8 heures ; délai d'expiration de 15 min d'inactivité |
| Capacités client | Non supporté | Sollicitation, échantillonnage, notifications de progression |
| Recommandé pour | Service d'outils simple | Workflows interactifs, multi-étapes |
Lorsqu'une session expire ou que le serveur est redémarré, les requêtes ultérieures avec l'ancien ID de session renverront un 404. À ce moment-là, les clients doivent réinitialiser la connexion pour obtenir un nouvel ID de session et démarrer une nouvelle session. La modification de configuration pour activer le mode stateful est un simple drapeau au démarrage de votre serveur :
mcp.run( transport="streamable-http", host="0.0.0.0", port=8000, stateless_http=False # Enable stateful mode)
Au-delà de ce drapeau, les trois capacités client deviennent automatiquement disponibles une fois que le client MCP déclare son support pour celles-ci lors de la poignée de main d'initialisation.
Plongée Approfondie dans les Nouvelles Capacités Client : Sollicitation, Échantillonnage et Progression
Avec la transition vers le mode stateful, Amazon Bedrock AgentCore Runtime débloque trois puissantes capacités client de la spécification MCP, chacune conçue pour répondre à des modèles d'interaction distincts cruciaux pour les agents IA avancés. Ces capacités transforment ce qui était autrefois une exécution de commande rigide et unidirectionnelle en un dialogue fluide et bidirectionnel entre un serveur MCP et ses clients connectés. Il est important de noter que ces fonctionnalités sont opt-in, ce qui signifie que les clients déclarent leur support lors de l'initialisation, et les serveurs ne doivent utiliser que les capacités que le client connecté a annoncées.
Sollicitation : Activer l'Entrée Utilisateur Dynamique dans les Agents IA
La sollicitation est une pierre angulaire de l'IA interactive, permettant à un serveur MCP d'interrompre judicieusement son exécution et de demander une entrée spécifique et structurée à l'utilisateur via le client. Cette capacité permet à l'outil de poser des questions précises à des moments opportuns de son workflow, que ce soit pour confirmer une décision, recueillir une préférence utilisateur ou collecter une valeur dérivée d'opérations précédentes. Le serveur l'initie en envoyant une requête JSON-RPC elicitation/create, qui comprend un message lisible par l'homme et un requestedSchema facultatif décrivant la structure de réponse attendue.
La spécification MCP propose deux modes robustes pour la sollicitation :
- Mode formulaire : Il est idéal pour collecter des données structurées directement via le client MCP, telles que des paramètres de configuration, des préférences utilisateur ou de simples confirmations lorsque des données sensibles ne sont pas impliquées.
- Mode URL : Pour les interactions qui nécessitent un processus sécurisé et hors bande, comme les flux OAuth, le traitement des paiements ou la saisie d'informations d'identification sensibles, le mode URL dirige l'utilisateur vers une URL externe. Cela garantit que les informations sensibles contournent complètement le client MCP, améliorant ainsi la sécurité et la conformité.
Dès réception d'une requête de sollicitation, le client affiche une interface de saisie appropriée. L'action ultérieure de l'utilisateur déclenche un modèle de réponse à trois actions vers le serveur : accept (l'utilisateur a fourni les données demandées), decline (l'utilisateur a explicitement rejeté la requête) ou cancel (l'utilisateur a ignoré l'invite sans faire de choix). Les serveurs intelligents sont conçus pour gérer chacun de ces scénarios avec élégance, garantissant une expérience robuste et conviviale. Par exemple, un outil add_expense_interactive, comme démontré dans le matériel source, peut guider un utilisateur à travers une série de questions — montant, description, catégorie et confirmation finale — avant de valider les données dans un backend comme Amazon DynamoDB. Chaque étape utilise des modèles Pydantic pour définir l'entrée attendue, que FastMCP convertit de manière transparente en JSON Schema requis pour la requête elicitation/create.
Échantillonnage et Notifications de Progression : Améliorer l'Interaction et la Transparence des LLM
Au-delà de l'interaction directe avec l'utilisateur, l'Échantillonnage confère au serveur MCP la capacité de demander du contenu généré par LLM directement au client via sampling/createMessage. Il s'agit d'un mécanisme essentiel car il permet à la logique de l'outil côté serveur d'exploiter les puissantes capacités des modèles linguistiques sans avoir à gérer ses propres informations d'identification LLM ou ses intégrations API directes. Le serveur fournit simplement une invite et des préférences de modèle facultatives, et le client, agissant comme intermédiaire, transmet la requête à son LLM connecté et renvoie la réponse générée. Cela ouvre une myriade d'applications pratiques, notamment la création de résumés personnalisés, la génération d'explications en langage naturel à partir de données structurées, ou la production de recommandations contextuelles basées sur la conversation en cours.
Pour les opérations qui s'étendent dans le temps, les Notifications de Progression deviennent inestimables. Cette capacité permet à un serveur MCP de signaler des mises à jour incrémentielles pendant les tâches de longue durée. En utilisant ctx.report_progress(progress, total), le serveur peut émettre des mises à jour continues que les clients peuvent traduire en retour visuel, comme une barre de progression ou un indicateur de statut. Qu'il s'agisse de rechercher dans de vastes sources de données ou d'exécuter des tâches computationnelles complexes, les mises à jour de progression transparentes garantissent que les utilisateurs restent informés, évitant la frustration et améliorant l'expérience utilisateur globale, plutôt que de les laisser fixer un écran vide en se demandant si le système est toujours actif.
Préparer l'Avenir du Développement d'Agents IA avec Bedrock AgentCore Runtime
L'introduction des capacités client MCP stateful sur Amazon Bedrock AgentCore Runtime représente un bond en avant significatif dans le développement d'agents IA. En transformant des interactions auparavant stateless en conversations dynamiques et bidirectionnelles, AWS permet aux développeurs de créer des applications IA plus intelligentes, réactives et conviviales. Ces capacités – la Sollicitation pour l'entrée guidée de l'utilisateur, l'Échantillonnage pour la génération LLM à la demande, et les Notifications de Progression pour la transparence en temps réel – débloquent collectivement une nouvelle ère de workflows d'agents interactifs. À mesure que l'IA continue d'évoluer, ces capacités fondamentales seront cruciales pour créer une IA agentique opérationnalisée sophistiquée qui peut s'intégrer de manière transparente dans des processus métier complexes, s'adapter aux besoins des utilisateurs et offrir une valeur exceptionnelle.
Source originale
https://aws.amazon.com/blogs/machine-learning/introducing-stateful-mcp-client-capabilities-on-amazon-bedrock-agentcore-runtime/Questions Fréquentes
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?
Restez informé
Recevez les dernières actualités IA dans votre boîte mail.
