Ative o streaming de resposta MCP para seu gateway AgentCore
O streaming de resposta do MCP permite que seu AgentCore gateway forneça Server-Sent eventos em tempo real (SSE) aos clientes durante a execução da ferramenta. Em vez de esperar que toda a chamada da ferramenta seja concluída antes de retornar uma resposta, o gateway transmite os eventos à medida que eles ocorrem, incluindo notificações de progresso, mensagens de log, solicitações de elicitação e solicitações de amostragem.
Benefícios do streaming de respostas
- Real-time feedback
-
Os clientes recebem atualizações de progresso e mensagens de registro à medida que elas acontecem, em vez de esperar pela resposta completa da ferramenta.
- Permite recursos MCP interativos
-
O streaming de resposta é um pré-requisito para elicitação, amostragem, notificações de progresso e registro de mensagens. Esses recursos exigem uma conexão SSE aberta para fornecer eventos iniciados pelo servidor durante a execução da ferramenta.
- Melhor experiência do usuário para ferramentas de longa duração
-
Para ferramentas que levam segundos ou minutos para serem concluídas, o streaming mantém o cliente informado e responsivo.
Ativar streaming de respostas
Para ativar o streaming de respostas, streamingConfiguration.enableResponseStreaming defina como true no protocolConfiguration.mcp campo ao criar ou atualizar seu gateway:
{ "protocolConfiguration": { "mcp": { "streamingConfiguration": { "enableResponseStreaming": true } } } }
nota
A ativação do streaming de resposta introduz uma alteração no contrato de entrada do interceptor de resposta. Se você usa interceptores de resposta, revise a lógica do interceptor para garantir a compatibilidade com as respostas de streaming. Consulte Interceptores de resposta com streaming ativado para obter detalhes.
Como funciona o streaming de respostas
Quando o streaming de resposta está ativado e o cliente envia uma solicitaçãoAccept: text/event-stream, o gateway retorna um fluxo SSE em vez de uma única resposta JSON. Os eventos são entregues à medida que são recebidos do servidor MCP de destino.
O stream SSE pode incluir os seguintes tipos de eventos:
| Tipo de evento | Description |
|---|---|
|
|
Atualizações de progresso do alvo durante a execução da ferramenta. Consulte Receber notificações de progresso. |
|
|
Registre mensagens do alvo. Consulte Receber mensagens de registro. |
|
|
Solicitações de elicitação do alvo solicitando a entrada do usuário. Consulte Usar elicitação. |
|
|
Solicitações de amostragem do alvo solicitando a conclusão do LLM. Consulte Usar amostragem. |
|
Resultado final |
O resultado da chamada da ferramenta, entregue como o último evento antes do encerramento da transmissão. |
Se o cliente não enviarAccept: text/event-stream, o gateway armazena a resposta em buffer e retorna uma única resposta JSON após a conclusão da chamada da ferramenta. Eventos intermediários (progresso, registro) não são entregues nesse caso.
Requisitos do cliente
Para receber respostas de streaming, os clientes devem:
-
Envie o
Accept: text/event-streamcabeçalho em suas solicitações. -
Gerencie os eventos SSE à medida que eles chegam, analisando cada
data:linha como uma JSON-RPC mensagem. -
Mantenha a conexão aberta até que o evento do resultado final seja recebido.