Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Usa el muestreo con tu AgentCore pasarela
El muestreo es una función de MCP que permite a un servidor de MCP solicitar al cliente que complete un LLM durante una llamada a una herramienta. Esto permite a los servidores aprovechar las capacidades de la IA sin necesidad de acceder directamente a un modelo lingüístico: el cliente gestiona la invocación del modelo y devuelve el resultado. AgentCore Gateway reenvía las solicitudes de muestreo de los destinos del servidor MCP a sus clientes, sustituyendo la solicitud por un identificador generado por la puerta id de enlace.
Requisitos previos
Para usar el muestreo con su puerta de enlace:
-
Sesiones habilitadas (versión 2025-11-25 y anteriores): el muestreo requiere soporte de sesión. Consulte Usar sesiones de MCP con su puerta de enlace. Para la versión
2026-07-28y las versiones posteriores, no es necesario que las añadasessionConfigurationa su puerta de enlace, ya que estas versiones no tienen estado. -
Transmisión de respuestas habilitada (versión 2025-11-25 y anteriores): las solicitudes de muestreo se envían como fragmentos de SSE durante una conexión abierta. Configúralo en el de tu puerta
streamingConfiguration.enableResponseStreamingde enlace.trueprotocolConfiguration.mcpPara la versión2026-07-28y posteriores, no es necesario que habilites la transmisión de respuestas. Estas versiones ofrecen el muestreo mediante el patrón de solicitudes de ida y vuelta múltiples (MRTR), en lugar de mediante una solicitud iniciada por el servidor en el flujo de respuestas. Para obtener más información, consulte las solicitudes de ida y vuelta múltiplesen la documentación del Model Context Protocol. -
Tipo de destino del servidor MCP: las solicitudes de muestreo se originan en los destinos del servidor MCP.
-
El cliente declara su capacidad de muestreo: el cliente debe declarar que admite el muestreo para que la pasarela pueda reenviar las solicitudes de muestreo. Para la versión
2025-11-25y las anteriores, el cliente declara esta compatibilidad en lainitializesolicitud. Para la versión2026-07-28y versiones posteriores, el cliente la declara para cada solicitud en el_metacampo (io.modelcontextprotocol/clientCapabilities).
Cómo funciona el muestreo
Cuando un servidor MCP objetivo necesita completar un LLM durante la ejecución de la herramienta, envía una sampling/createMessage solicitud. La puerta de enlace reenvía esta solicitud al cliente como un evento de SSE y reemplaza la solicitud. id El cliente invoca su modelo de lenguaje y envía el resultado a la puerta de enlace, que lo reenvía al destino.
nota
El flujo que se describe aquí se aplica a la versión 2025-11-25 y a las anteriores, en las que el servidor envía sampling/createMessage una solicitud iniciada por el servidor en la transmisión SSE abierta. Para la versión 2026-07-28 y versiones posteriores, el muestreo utiliza, en cambio, el patrón de solicitudes de ida y vuelta múltiples (MRTR). El servidor devuelve un resultado provisional con el valor resultType establecido en. input_required A continuación, el cliente proporciona la finalización de la solicitud original al volver a intentarlo. Para obtener más información, consulte las solicitudes de ida y vuelta múltiples
La solicitud de muestreo incluye:
-
messages— Los mensajes de conversación que se enviarán a la modelo. -
modelPreferences— Consejos opcionales sobre las capacidades deseadas del modelo (inteligencia, velocidad, coste). -
systemPrompt— Indicador de sistema opcional para el modelo. -
maxTokens— Número máximo de tokens a generar.
El cliente responde con:
-
model— El modelo que se utilizó. -
role— Siempreassistant. -
content— El contenido generado (texto o imagen).
nota
El cliente tiene el control total sobre qué modelo utilizar y cómo gestionar la solicitud. Los del servidor modelPreferences son sugerencias, no requisitos. El cliente también puede modificar o rechazar la solicitud en función de sus propias políticas.
Flujo de muestreo
-
El cliente envía una
tools/callsolicitud con elMcp-Session-Idencabezado. -
Gateway reenvía la llamada a la herramienta al servidor MCP de destino.
-
El objetivo abre una transmisión de SSE y envía una
sampling/createMessagesolicitud. -
Gateway reenvía la solicitud de muestreo al cliente como un evento de SSE y reemplaza la solicitud
id. -
El cliente invoca su modelo lingüístico con los mensajes proporcionados.
-
El cliente envía una nueva solicitud con el resultado del muestreo utilizando la misma solicitud
Mcp-Session-Idy laidde la pasarela. -
Gateway reenvía el resultado al servidor MCP de destino.
-
El objetivo continúa procesándose y devuelve el resultado final de la herramienta.
-
Gateway reenvía el resultado final al cliente y cierra la transmisión.
Guía para los desarrolladores de servidores objetivo de MCP
importante
Los servidores MCP que envían solicitudes de muestreo deben agrupar las llamadas de muestreo en bloques de tipo try-catch y gestionar los casos en los que el cliente no admite el muestreo. Si el cliente de la puerta de enlace no declaró la capacidad de muestreo, la puerta de enlace no la declara al destino. Si el objetivo envía una solicitud de muestreo de todos modos, la puerta de enlace devuelve un error -32601 (método no encontrado) al objetivo.
Los servidores deben implementar una ruta alternativa (por ejemplo, usar un modelo integrado u omitir este AI-assisted paso) cuando el muestreo no esté disponible.
Asegurar el estado de la solicitud (versión 2026-07-28 y posteriores)
En la versión 2026-07-28 y versiones posteriores, el muestreo utiliza el patrón de solicitudes de ida y vuelta múltiples (MRTR), que muestra una opacidad requestState entre el cliente y el servidor MCP de destino. Proteger ese valor es una responsabilidad compartida: la puerta de enlace lo autoriza y lo reenvía sin almacenarlo, mientras que el servidor MCP de destino debe validarlo e impedir que un usuario vuelva a reproducir el estado de la solicitud de otro usuario. Para conocer el modelo completo de responsabilidad compartida y las directrices de protección que debe seguir su servidor MCP, consulte Consideraciones sobre cómo proteger el estado de la solicitud para su obtención y muestreo en el destino del servidor MCP.
Gestión de errores
| Escenario | Error | Description (Descripción) |
|---|---|---|
|
El cliente envía una respuesta de muestreo cuando no hay ninguna solicitud de muestreo pendiente |
JSON-RPC |
No se encontró ninguna solicitud de muestreo coincidente para esta sesión. |
|
El cliente envía una respuesta de muestreo con una |
JSON-RPC |
|
|
El servidor MCP envía una solicitud de muestreo, pero la puerta de enlace no declaró su compatibilidad |
JSON-RPC |
Regresó al destino del servidor MCP. Consulte Solución de problemas |
Resolución de problemas
Error: «Error al llamar a la herramienta 'sample_tool': no se encontró el método:» sampling/createMessage
Este error se produce cuando un servidor MCP objetivo envía una solicitud de muestreo, pero el cliente de la puerta de enlace no declara su capacidad de muestreo. Para la versión 2025-11-25 y anteriores, el cliente declara esta capacidad duranteinitialize. Para la versión 2026-07-28 y versiones posteriores, el cliente la declara para cada solicitud del _meta campo. La puerta de enlace devuelve un error -32601 (método no encontrado) al destino. El objetivo puede devolverlo al cliente como un error de ejecución de la herramienta.
Para resolverlo:
-
Si es el desarrollador del servidor MCP: añada la gestión de errores a sus llamadas de muestreo. Implemente una ruta alternativa cuando no se admita el muestreo:
importante
Debe incluirlo
related_request_id=ctx.request_context.request_iden sucreate_messagellamada. Esto es necesario para que la pasarela asocie correctamente la solicitud de muestreo con la llamada a la herramienta original. Sin él, el muestreo no funcionará.try: result = await ctx.session.create_message( messages=[{"role": "user", "content": {"type": "text", "text": "Summarize this document"}}], max_tokens=500, related_request_id=ctx.request_context.request_id, ) except Exception as e: # Fallback when client doesn't support sampling logger.warning(f"Sampling not supported: {e}") result = fallback_summarization(document) -
Si es el desarrollador de clientes de Gateway: en el caso de la versión
2025-11-25y anteriores, asegúrese de que su cliente declara la capacidad de muestreo durante el procesoinitialize. En el caso de la versión2026-07-28y posteriores, declárela para cada solicitud en el_metacampo (io.modelcontextprotocol/clientCapabilities). El siguiente ejemplo muestra lainitializedeclaración:{ "capabilities": { "sampling": {} } }
Ejemplos de código
nota
El cliente LangGraph MCP (langchain-mcp-adapters) y el cliente MCP de Strands no admiten actualmente el muestreo. Utilice el enfoque del cliente MCP que se muestra a continuación para gestionar las solicitudes de muestreo desde su puerta de enlace.