Utilice el muestreo con su AgentCore puerta de enlace
El muestreo es una función del MCP que permite a un servidor MCP solicitar al cliente que complete el LLM durante una llamada de herramienta. Esto permite a los servidores aprovechar las capacidades de IA sin necesidad de acceder directamente a un modelo de lenguaje: el cliente se encarga de la invocación del modelo y devuelve el resultado. AgentCore Gateway reenvía las solicitudes de muestreo de los servidores MCP a sus clientes y reemplaza la solicitud id por un identificador generado por la pasarela.
Requisitos previos
Para usar el muestreo con su pasarela:
-
Sesiones habilitadas: el muestreo requiere soporte de sesión. Consulte Usar sesiones de MCP con su puerta de enlace.
-
Transmisión de respuestas habilitada: las solicitudes de muestreo se envían como fragmentos de SSE durante una conexión abierta.
streamingConfiguration.enableResponseStreamingConfigúrelotrueen la puerta de enlace.protocolConfiguration.mcp -
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 su apoyo al muestreo durante la
initializesolicitud. La pasarela solo reenvía las solicitudes de muestreo a los clientes que hayan declarado esta capacidad.
¿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 SSE, en sustitución de 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.
La solicitud de muestreo incluye:
-
messages— Los mensajes de conversación que se van a enviar 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 fichas que se pueden 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 servidores modelPreferences son sugerencias, no requisitos. El cliente también puede modificar o rechazar la solicitud según 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 SSE y envía una
sampling/createMessagesolicitud. -
Gateway reenvía la solicitud de muestreo al cliente como un evento de SSE, en sustitución de la solicitud
id. -
El cliente invoca su modelo de lenguaje con los mensajes proporcionados.
-
El cliente envía una nueva solicitud con el resultado del muestreo utilizando el mismo
Mcp-Session-Idy elidde la solicitud de 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 desarrolladores de servidores MCP Target
importante
Los destinos del servidor MCP que envían solicitudes de muestreo deben incluir las llamadas de muestreo en bloques try-catch y gestionar el caso en el que el cliente no admita el muestreo. Si el cliente de la puerta de enlace no declaró la capacidad de muestreo, la puerta de enlace no la declara al objetivo. 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.
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 ha encontrado 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 pasarela no declaró la capacidad de muestreo en ese momento. initialize La puerta de enlace devuelve un error -32601 (método no encontrado) al destino, y el objetivo puede devolverlo como un error de ejecución de la herramienta al cliente.
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 de herramienta que la originó. Sin ella, 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 usted es el desarrollador del cliente de puerta de enlace: asegúrese de que su cliente declare la capacidad de muestreo durante
initialize:{ "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 de cliente MCP que se muestra a continuación para gestionar las solicitudes de muestreo desde su pasarela.