Laisser vos serveurs demander des complétions aux LLML'échantillonnage est une fonctionnalité puissante de MCP qui permet aux serveurs de demander des complétions de LLM via le client, ce qui permet des comportements agentiques sophistiqués tout en maintenant la sécurité et la confidentialité.Cette fonctionnalité de MCP n'est pas encore prise en charge dans le client Claude Desktop.Le flux d'échantillonnage suit ces étapes :1.
Le serveur envoie une requête sampling/createMessage
au client
2.
Le client examine la requête et peut la modifier
3.
Le client échantillonne à partir d'un LLM
4.
Le client examine la complétion
5.
Le client renvoie le résultat au serveur
Cette conception avec intervention humaine garantit que les utilisateurs conservent le contrôle sur ce que le LLM voit et génère.Les requêtes d'échantillonnage utilisent un format de message standardisé :Paramètres de la requête#
Messages#
Le tableau messages
contient l'historique de la conversation à envoyer au LLM. Chaque message a :role
: Soit "user", soit "assistant"
: Le contenu du message, qui peut être :Du contenu textuel avec un champ text
Du contenu image avec les champs data
(base64) et mimeType
L'objet modelPreferences
permet aux serveurs de spécifier leurs préférences de sélection de modèle :hints
: Tableau de suggestions de noms de modèles que les clients peuvent utiliser pour sélectionner un modèle approprié :name
: Chaîne qui peut correspondre à des noms de modèles complets ou partiels (par exemple, "claude-3", "sonnet")
Les clients peuvent mapper les indications à des modèles équivalents de différents fournisseurs
Plusieurs indications sont évaluées par ordre de préférence
Valeurs de priorité (normalisées de 0 à 1) :costPriority
: Importance de la minimisation des coûts
speedPriority
: Importance d'une faible latence de réponse
intelligencePriority
: Importance des capacités de modèle avancées
Les clients effectuent la sélection finale du modèle en fonction de ces préférences et de leurs modèles disponibles.Un champ systemPrompt
facultatif permet aux serveurs de demander une invite système spécifique. Le client peut modifier ou ignorer ceci.Le paramètre includeContext
spécifie quel contexte MCP inclure :"none"
: Pas de contexte supplémentaire
"thisServer"
: Inclure le contexte du serveur demandeur
"allServers"
: Inclure le contexte de tous les serveurs MCP connectés
Le client contrôle le contexte qui est réellement inclus.Ajustez l'échantillonnage LLM avec :temperature
: Contrôle le caractère aléatoire (0.0 à 1.0)
maxTokens
: Nombre maximal de jetons à générer
stopSequences
: Tableau de séquences qui arrêtent la génération
metadata
: Paramètres supplémentaires spécifiques au fournisseur
Le client renvoie un résultat de complétion :Voici un exemple de demande d'échantillonnage à partir d'un client :{
"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
}
}
Lors de la mise en œuvre de l'échantillonnage :1.
Fournissez toujours des invites claires et bien structurées
2.
Gérez correctement le contenu textuel et image
3.
Définissez des limites de jetons raisonnables
4.
Incluez le contexte pertinent via includeContext
5.
Validez les réponses avant de les utiliser
6.
Gérez les erreurs avec élégance
7.
Envisagez de limiter le taux de requêtes d'échantillonnage
8.
Documentez le comportement d'échantillonnage attendu
9.
Testez avec différents paramètres de modèle
10.
Surveillez les coûts d'échantillonnage
L'échantillonnage est conçu avec une supervision humaine à l'esprit :Les clients doivent montrer aux utilisateurs l'invite proposée
Les utilisateurs doivent pouvoir modifier ou rejeter les invites
Les invites système peuvent être filtrées ou modifiées
L'inclusion du contexte est contrôlée par le client
Les clients doivent montrer aux utilisateurs la complétion
Les utilisateurs doivent pouvoir modifier ou rejeter les complétions
Les clients peuvent filtrer ou modifier les complétions
Les utilisateurs contrôlent quel modèle est utilisé
Lors de la mise en œuvre de l'échantillonnage :Validez tout le contenu du message
Assainissez les informations sensibles
Mettez en œuvre des limites de taux appropriées
Surveillez l'utilisation de l'échantillonnage
Chiffrez les données en transit
Gérez la confidentialité des données utilisateur
Auditez les requêtes d'échantillonnage
Contrôlez l'exposition aux coûts
Mettez en œuvre des délais d'attente
Gérez les erreurs de modèle avec élégance
L'échantillonnage permet des modèles agentiques tels que :Lecture et analyse des ressources
Prise de décisions basée sur le contexte
Génération de données structurées
Gestion des tâches en plusieurs étapes
Fournir une assistance interactive
Meilleures pratiques pour le contexte :Demandez le contexte minimal nécessaire
Structurez clairement le contexte
Gérez les limites de taille du contexte
Mettez à jour le contexte au besoin
Nettoyez le contexte obsolète
Une gestion robuste des erreurs devrait :Intercepter les échecs d'échantillonnage
Gérer les erreurs de délai d'attente
Gérer les limites de taux
Fournir des comportements de repli
Enregistrer les erreurs de manière appropriée
Soyez conscient de ces limitations :L'échantillonnage dépend des capacités du client
Les utilisateurs contrôlent le comportement d'échantillonnage
La taille du contexte a des limites
Des limites de taux peuvent s'appliquer
Les coûts doivent être pris en compte
La disponibilité du modèle varie
Les temps de réponse varient
Tous les types de contenu ne sont pas pris en charge
Modified at 2025-03-13 05:37:50