Code Velocity
IA Empresarial

Amazon Bedrock: Capacidades de Cliente MCP con Estado en AgentCore Runtime

·7 min de lectura·AWS·Fuente original
Compartir
Diagrama que ilustra las capacidades de cliente MCP con estado en Amazon Bedrock AgentCore Runtime con flujos interactivos de agentes de IA.

Mejorando los agentes de IA: El cambio a MCP con estado en Amazon Bedrock

Los agentes de IA están evolucionando rápidamente, sin embargo, su potencial completo a menudo se ha visto obstaculizado por implementaciones sin estado, particularmente en escenarios que demandan interacción con el usuario en tiempo real, generación de contenido dinámico o actualizaciones de progreso continuas. Los desarrolladores que construyen agentes de IA sofisticados con frecuencia enfrentan desafíos cuando los flujos de trabajo necesitan pausarse, recopilar aclaraciones o informar el estado durante operaciones de larga duración. La naturaleza rígida y unidireccional de la ejecución sin estado restringe el desarrollo de aplicaciones de IA verdaderamente interactivas y responsivas.

Ahora, Amazon Bedrock AgentCore Runtime introduce innovadoras capacidades de cliente de Protocolo de Contexto de Modelo (MCP) con estado, transformando la forma en que los agentes de IA interactúan con los usuarios y los modelos de lenguaje grandes (LLM). Esta actualización fundamental libera a los agentes de las limitaciones de la comunicación sin estado, permitiendo flujos de trabajo complejos, multiturno y altamente interactivos. Al integrar características cruciales del cliente MCP –Elicitación, Muestreo y Notificaciones de Progreso– Bedrock AgentCore Runtime facilita conversaciones bidireccionales entre servidores y clientes MCP, allanando el camino para soluciones de IA más inteligentes y centradas en el usuario.

De sin estado a con estado: Desbloqueando flujos de trabajo de agentes interactivos

Anteriormente, el soporte del servidor MCP en AgentCore operaba en modo sin estado, donde cada solicitud HTTP funcionaba de forma independiente, carente de cualquier contexto compartido. Si bien esto simplificaba el despliegue para servidores de herramientas básicos, limitaba severamente los escenarios que requerían continuidad conversacional, aclaración del usuario a mitad del flujo de trabajo o informes de progreso en tiempo real. El servidor simplemente no podía mantener un hilo de conversación a través de solicitudes discretas, lo que dificultaba el desarrollo de agentes verdaderamente interactivos.

La llegada de las capacidades de cliente MCP con estado altera fundamentalmente este paradigma. Al establecer stateless_http=False durante el inicio del servidor, AgentCore Runtime aprovisiona una microVM dedicada para cada sesión de usuario. Esta microVM persiste durante la duración de la sesión —hasta 8 horas, o 15 minutos de inactividad según la configuración de idleRuntimeSessionTimeout— asegurando el aislamiento de CPU, memoria y sistema de archivos entre sesiones. La continuidad se mantiene a través de un encabezado Mcp-Session-Id, que el servidor proporciona durante la inicialización y el cliente incluye en todas las solicitudes subsiguientes para enrutarlas de vuelta a la misma sesión. Este entorno dedicado y persistente permite a los agentes recordar el contexto, solicitar la entrada del usuario, generar contenido LLM dinámico y proporcionar actualizaciones continuas.

La siguiente tabla resume las diferencias clave entre los modos sin estado y con estado:

Modo sin estadoModo con estado
Configuración de stateless_httpTRUEFALSE
Aislamiento de sesiónMicroVM dedicada por sesiónMicroVM dedicada por sesión
Duración de la sesiónHasta 8 horas; tiempo de espera de inactividad de 15 minutosHasta 8 horas; tiempo de espera de inactividad de 15 minutos
Capacidades de clienteNo soportadasElicitación, muestreo, notificaciones de progreso
Recomendado paraServicio de herramientas simpleFlujos de trabajo interactivos y multiturno

Cuando una sesión caduca o el servidor se reinicia, las solicitudes subsiguientes con el ID de sesión anterior devolverán un 404. En ese momento, los clientes deben reinicializar la conexión para obtener un nuevo ID de sesión y comenzar una sesión nueva. El cambio de configuración para habilitar el modo con estado es un único indicador en el inicio de su servidor:

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

Más allá de este indicador, las tres capacidades de cliente estarán disponibles automáticamente una vez que el cliente MCP declare su soporte durante el handshake de inicialización.

Análisis Profundo de las Nuevas Capacidades de Cliente: Elicitación, Muestreo y Progreso

Con la transición al modo con estado, Amazon Bedrock AgentCore Runtime desbloquea tres potentes capacidades de cliente de la especificación MCP, cada una diseñada para abordar patrones de interacción distintos y cruciales para agentes de IA avanzados. Estas capacidades transforman lo que antes era una ejecución de comandos rígida y unidireccional en un diálogo fluido y bidireccional entre un servidor MCP y sus clientes conectados. Es importante destacar que estas características son opcionales (opt-in), lo que significa que los clientes declaran su soporte durante la inicialización, y los servidores solo deben utilizar las capacidades que el cliente conectado ha anunciado.

Elicitación: Habilitando la Entrada Dinámica del Usuario en Agentes de IA

La Elicitación se erige como una piedra angular de la IA interactiva, permitiendo a un servidor MCP pausar juiciosamente su ejecución y solicitar una entrada específica y estructurada del usuario a través del cliente. Esta capacidad empodera a la herramienta para hacer preguntas precisas en momentos oportunos dentro de su flujo de trabajo, ya sea para confirmar una decisión, recopilar una preferencia del usuario o recolectar un valor derivado de operaciones precedentes. El servidor inicia esto enviando una solicitud JSON-RPC elicitation/create, que incluye un mensaje legible por humanos y un requestedSchema opcional que delinea la estructura de respuesta esperada.

La especificación MCP proporciona dos modos robustos para la elicitación:

  • Modo formulario: Esto es ideal para recolectar datos estructurados directamente a través del cliente MCP, como parámetros de configuración, preferencias de usuario o confirmaciones simples donde no hay datos sensibles involucrados.
  • Modo URL: Para interacciones que requieren un proceso seguro y fuera de banda, como flujos de OAuth, procesamiento de pagos o la entrada de credenciales sensibles, el modo URL dirige al usuario a una URL externa. Esto asegura que la información sensible omita completamente al cliente MCP, mejorando la seguridad y el cumplimiento.

Al recibir una solicitud de elicitación, el cliente renderiza una interfaz de entrada adecuada. La acción subsiguiente del usuario activa un modelo de respuesta de tres acciones de vuelta al servidor: accept (el usuario proporcionó los datos solicitados), decline (el usuario rechazó explícitamente la solicitud) o cancel (el usuario descartó la solicitud sin tomar una decisión). Los servidores inteligentes están diseñados para manejar cada uno de estos escenarios con elegancia, asegurando una experiencia robusta y fácil de usar. Por ejemplo, una herramienta add_expense_interactive, como se demuestra en el material fuente, puede guiar a un usuario a través de una serie de preguntas —cantidad, descripción, categoría y confirmación final— antes de confirmar los datos en un backend como Amazon DynamoDB. Cada paso aprovecha los modelos de Pydantic para definir la entrada esperada, que FastMCP convierte sin problemas en el Esquema JSON requerido para la solicitud elicitation/create.

Muestreo y Notificaciones de Progreso: Impulsando la Interacción y Transparencia de LLM

Más allá de la interacción directa con el usuario, el Muestreo dota al servidor MCP de la capacidad de solicitar contenido generado por LLM directamente del cliente a través de sampling/createMessage. Este es un mecanismo crítico, ya que permite que la lógica de la herramienta en el servidor aproveche las potentes capacidades de los modelos de lenguaje sin necesidad de gestionar sus propias credenciales LLM o integraciones directas de API. El servidor simplemente proporciona un prompt y preferencias de modelo opcionales, y el cliente, actuando como intermediario, reenvía la solicitud a su LLM conectado y devuelve la respuesta generada. Esto abre un sinfín de aplicaciones prácticas, incluyendo la creación de resúmenes personalizados, la generación de explicaciones en lenguaje natural a partir de datos estructurados o la producción de recomendaciones sensibles al contexto basadas en la conversación en curso.

Para operaciones que se extienden en el tiempo, las Notificaciones de Progreso se vuelven invaluables. Esta capacidad permite a un servidor MCP reportar actualizaciones incrementales durante tareas de larga duración. Al utilizar ctx.report_progress(progress, total), el servidor puede emitir actualizaciones continuas que los clientes pueden traducir en retroalimentación visual, como una barra de progreso o un indicador de estado. Ya sea buscando en vastas fuentes de datos o ejecutando tareas computacionales complejas, las actualizaciones de progreso transparentes aseguran que los usuarios permanezcan informados, previniendo la frustración y mejorando la experiencia general del usuario, en lugar de dejarlos mirando una pantalla en blanco preguntándose si el sistema aún está activo.

Preparando el Desarrollo de Agentes de IA para el Futuro con Bedrock AgentCore Runtime

La introducción de las capacidades de cliente MCP con estado en Amazon Bedrock AgentCore Runtime representa un avance significativo en el desarrollo de agentes de IA. Al transformar interacciones previamente sin estado en conversaciones dinámicas y bidireccionales, AWS capacita a los desarrolladores para construir aplicaciones de IA más inteligentes, receptivas y fáciles de usar. Estas capacidades –Elicitación para la entrada guiada del usuario, Muestreo para la generación de LLM bajo demanda y Notificaciones de Progreso para la transparencia en tiempo real– desbloquean colectivamente una nueva era de flujos de trabajo de agentes interactivos. A medida que la IA continúa evolucionando, estas capacidades fundamentales serán cruciales para crear una IA agéntica operacionalizable sofisticada que pueda integrarse sin problemas en procesos comerciales complejos, adaptarse a las necesidades del usuario y ofrecer un valor excepcional.

Preguntas Frecuentes

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.

Mantente Actualizado

Recibe las últimas noticias de IA en tu correo.

Compartir