Documentation Officielle MCP (Française)
  1. Concepts
Documentation Officielle MCP (Française)
  • Commencer
    • Introduction
    • Exemples de serveurs
    • Exemples de clients
    • Démarrage rapide
      • Pour les développeurs de serveurs
      • Pour les développeurs clients
      • Pour les utilisateurs de Claude Desktop
  • Tutoriels
    • Construire MCP avec LLMs
    • Débogage
    • Inspecteur
  • Concepts
    • Architecture de base
    • Ressources
    • Invites
    • Outils
    • Échantillonnage
    • Racines
    • Transports
  • Développement
    • Quoi de neuf
    • Feuille de route
    • Contribuer
  1. Concepts

Échantillonnage

Laisser vos serveurs demander des complétions aux LLM
L'é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.

Comment fonctionne l'échantillonnage#

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.

Format du message#

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"
content
: Le contenu du message, qui peut être :
Du contenu textuel avec un champ text
Du contenu image avec les champs data (base64) et mimeType

Préférences de modèle#

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.

Invite système#

Un champ systemPrompt facultatif permet aux serveurs de demander une invite système spécifique. Le client peut modifier ou ignorer ceci.

Inclusion du contexte#

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.

Paramètres d'échantillonnage#

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

Format de la réponse#

Le client renvoie un résultat de complétion :

Exemple de requête#

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
  }
}

Meilleures pratiques#

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

Contrôles humains dans la boucle#

L'échantillonnage est conçu avec une supervision humaine à l'esprit :

Pour les invites#

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

Pour les complétions#

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é

Considérations de sécurité#

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

Modèles courants#

Flux de travail agentiques#

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

Gestion du contexte#

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

Gestion des erreurs#

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
Valider les réponses
Fournir des comportements de repli
Enregistrer les erreurs de manière appropriée

Limitations#

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
Previous
Outils
Next
Racines
Built with