Permitir que seus servidores solicitem conclusões de LLMsO Sampling é um recurso poderoso do MCP que permite que os servidores solicitem conclusões de LLM por meio do cliente, habilitando comportamentos agentic sofisticados, mantendo a segurança e a privacidade.Este recurso do MCP ainda não é suportado no cliente Claude Desktop.O fluxo de sampling segue estas etapas:1.
O servidor envia uma solicitação sampling/createMessage para o cliente
2.
O cliente revisa a solicitação e pode modificá-la
3.
O cliente faz o sampling de um LLM
4.
O cliente revisa a conclusão
5.
O cliente retorna o resultado para o servidor
Este design "human-in-the-loop" garante que os usuários mantenham o controle sobre o que o LLM vê e gera.As solicitações de sampling usam um formato de mensagem padronizado:O array messages contém o histórico de conversas a ser enviado ao LLM. Cada mensagem tem:role: "user" ou "assistant"
: O conteúdo da mensagem, que pode ser:Conteúdo de texto com um campo text
Conteúdo de imagem com campos data (base64) e mimeType
O objeto modelPreferences permite que os servidores especifiquem suas preferências de seleção de modelo:hints: Array de sugestões de nome de modelo que os clientes podem usar para selecionar um modelo apropriado:name: String que pode corresponder a nomes de modelo completos ou parciais (por exemplo, "claude-3", "sonnet")
Os clientes podem mapear dicas para modelos equivalentes de diferentes provedores
Várias dicas são avaliadas em ordem de preferência
Valores de prioridade (0-1 normalizados):costPriority: Importância de minimizar custos
speedPriority: Importância da baixa latência de resposta
intelligencePriority: Importância das capacidades avançadas do modelo
Os clientes fazem a seleção final do modelo com base nessas preferências e seus modelos disponíveis.Um campo systemPrompt opcional permite que os servidores solicitem um system prompt específico. O cliente pode modificar ou ignorar isso.O parâmetro includeContext especifica qual contexto do MCP incluir:"none": Nenhum contexto adicional
"thisServer": Incluir contexto do servidor solicitante
"allServers": Incluir contexto de todos os servidores MCP conectados
O cliente controla qual contexto é realmente incluído.Ajuste o sampling do LLM com:temperature: Controla a aleatoriedade (0.0 a 1.0)
maxTokens: Número máximo de tokens a serem gerados
stopSequences: Array de sequências que interrompem a geração
metadata: Parâmetros adicionais específicos do provedor
O cliente retorna um resultado de conclusão:Aqui está um exemplo de solicitação de sampling de um cliente:{
"method": "sampling/createMessage",
"params": {
"messages": [
{
"role": "user",
"content": {
"type": "text",
"text": "What files are in the current directory?"
}
}
],
"systemPrompt": "You are a helpful file system assistant.",
"includeContext": "thisServer",
"maxTokens": 100
}
}
Ao implementar o sampling:1.
Sempre forneça prompts claros e bem estruturados
2.
Lide com o conteúdo de texto e imagem adequadamente
3.
Defina limites de token razoáveis
4.
Inclua o contexto relevante por meio de includeContext
5.
Valide as respostas antes de usá-las
6.
Lide com erros normalmente
7.
Considere limitar a taxa de solicitações de sampling
8.
Documente o comportamento de sampling esperado
9.
Teste com vários parâmetros de modelo
10.
Monitore os custos de sampling
O sampling é projetado com a supervisão humana em mente:Os clientes devem mostrar aos usuários o prompt proposto
Os usuários devem ser capazes de modificar ou rejeitar prompts
Os system prompts podem ser filtrados ou modificados
A inclusão de contexto é controlada pelo cliente
Os clientes devem mostrar aos usuários a conclusão
Os usuários devem ser capazes de modificar ou rejeitar conclusões
Os clientes podem filtrar ou modificar as conclusões
Os usuários controlam qual modelo é usado
Ao implementar o sampling:Valide todo o conteúdo da mensagem
Sanitize informações confidenciais
Implemente limites de taxa apropriados
Monitore o uso de sampling
Criptografe os dados em trânsito
Lide com a privacidade dos dados do usuário
Audite as solicitações de sampling
Controle a exposição ao custo
Lide com erros de modelo normalmente
O sampling permite padrões agentic como:Tomar decisões com base no contexto
Lidar com tarefas de várias etapas
Fornecer assistência interativa
Melhores práticas para contexto:Solicite o contexto mínimo necessário
Estruture o contexto claramente
Lide com os limites de tamanho do contexto
Atualize o contexto conforme necessário
Limpe o contexto obsoleto
O tratamento robusto de erros deve:Capturar falhas de sampling
Lidar com erros de timeout
Gerenciar limites de taxa
Fornecer comportamentos de fallback
Registrar erros adequadamente
Esteja ciente destas limitações:O sampling depende das capacidades do cliente
Os usuários controlam o comportamento de sampling
O tamanho do contexto tem limites
Os limites de taxa podem ser aplicados
Os custos devem ser considerados
A disponibilidade do modelo varia
Os tempos de resposta variam
Nem todos os tipos de conteúdo são suportados
Modified at 2025-03-12 10:13:05