1. Konzepte
MCP Offizielle Dokumentation (Deutsche)
  • Erste Schritte
    • Einführung
    • Beispielserver
    • Beispielkunden
    • Quickstart
      • Für Serverentwickler
      • Für Client-Entwickler
      • Für Claude Desktop-Benutzer
  • Anleitungen
    • Erstellen von MCP mit LLMs
    • Debuggen
    • Inspektor
  • Konzepte
    • Kernarchitektur
    • Ressourcen
    • Eingabeaufforderungen
    • Werkzeuge
    • Probenahme
    • Wurzeln
    • Transportmöglichkeiten
  • Entwicklung
    • Was ist neu
    • Fahrplan
    • Beitragen
  1. Konzepte

Probenahme

Lassen Sie Ihre Server Vervollständigungen von LLMs anfordern
Sampling ist eine leistungsstarke MCP-Funktion, die es Servern ermöglicht, LLM-Vervollständigungen über den Client anzufordern, was anspruchsvolle agentische Verhaltensweisen ermöglicht und gleichzeitig Sicherheit und Datenschutz gewährleistet.
Diese Funktion von MCP wird im Claude Desktop-Client noch nicht unterstützt.

Wie Sampling funktioniert#

Der Sampling-Ablauf umfasst die folgenden Schritte:
1.
Der Server sendet eine sampling/createMessage-Anfrage an den Client
2.
Der Client überprüft die Anfrage und kann sie ändern
3.
Der Client führt ein Sampling von einem LLM durch
4.
Der Client überprüft die Vervollständigung
5.
Der Client gibt das Ergebnis an den Server zurück
Dieses Human-in-the-Loop-Design stellt sicher, dass die Benutzer die Kontrolle darüber behalten, was das LLM sieht und generiert.

Nachrichtenformat#

Sampling-Anfragen verwenden ein standardisiertes Nachrichtenformat:

Anfrageparameter#

Nachrichten#

Das messages-Array enthält den Konversationsverlauf, der an das LLM gesendet werden soll. Jede Nachricht hat:
role: Entweder "user" oder "assistant"
content
: Der Nachrichteninhalt, der Folgendes sein kann:
Textinhalt mit einem text-Feld
Bildinhalt mit data (base64) und mimeType-Feldern

Modellpräferenzen#

Das modelPreferences-Objekt ermöglicht es Servern, ihre Modellauswahlpräferenzen anzugeben:
hints: Array von Modellnamensvorschlägen, die Clients verwenden können, um ein geeignetes Modell auszuwählen:
name: String, der vollständige oder teilweise Modellnamen abgleichen kann (z. B. "claude-3", "sonnet")
Clients können Hinweise auf äquivalente Modelle von verschiedenen Anbietern abbilden
Mehrere Hinweise werden in der Reihenfolge ihrer Präferenz ausgewertet
Prioritätswerte (0-1 normalisiert):
costPriority: Bedeutung der Minimierung von Kosten
speedPriority: Bedeutung einer geringen Latenzzeit
intelligencePriority: Bedeutung fortschrittlicher Modellfähigkeiten
Clients treffen die endgültige Modellauswahl basierend auf diesen Präferenzen und ihren verfügbaren Modellen.

System Prompt#

Ein optionales systemPrompt-Feld ermöglicht es Servern, einen bestimmten System Prompt anzufordern. Der Client kann dies ändern oder ignorieren.

Kontextinklusion#

Der Parameter includeContext gibt an, welcher MCP-Kontext einbezogen werden soll:
"none": Kein zusätzlicher Kontext
"thisServer": Kontext vom anfordernden Server einschließen
"allServers": Kontext von allen verbundenen MCP-Servern einschließen
Der Client steuert, welcher Kontext tatsächlich einbezogen wird.

Sampling-Parameter#

Feinabstimmung des LLM-Sampling mit:
temperature: Steuert die Zufälligkeit (0.0 bis 1.0)
maxTokens: Maximale Anzahl zu generierender Token
stopSequences: Array von Sequenzen, die die Generierung stoppen
metadata: Zusätzliche anbieterspezifische Parameter

Antwortformat#

Der Client gibt ein Vervollständigungsergebnis zurück:

Beispielanfrage#

Hier ist ein Beispiel für die Anforderung von Sampling von einem 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
  }
}

Bewährte Praktiken#

Bei der Implementierung von Sampling:
1.
Immer klare, gut strukturierte Prompts bereitstellen
2.
Text- und Bildinhalte angemessen verarbeiten
3.
Angemessene Token-Limits festlegen
4.
Relevanter Kontext durch includeContext einbeziehen
5.
Antworten vor der Verwendung validieren
6.
Fehler ordnungsgemäß behandeln
7.
Ratenbegrenzung von Sampling-Anfragen in Betracht ziehen
8.
Erwartetes Sampling-Verhalten dokumentieren
9.
Mit verschiedenen Modellparametern testen
10.
Sampling-Kosten überwachen

Human-in-the-Loop-Kontrollen#

Sampling ist auf menschliche Aufsicht ausgelegt:

Für Prompts#

Clients sollten Benutzern den vorgeschlagenen Prompt anzeigen
Benutzer sollten in der Lage sein, Prompts zu ändern oder abzulehnen
System Prompts können gefiltert oder geändert werden
Kontextinklusion wird vom Client gesteuert

Für Vervollständigungen#

Clients sollten Benutzern die Vervollständigung anzeigen
Benutzer sollten in der Lage sein, Vervollständigungen zu ändern oder abzulehnen
Clients können Vervollständigungen filtern oder ändern
Benutzer steuern, welches Modell verwendet wird

Sicherheitsüberlegungen#

Bei der Implementierung von Sampling:
Alle Nachrichteninhalte validieren
Sensible Informationen bereinigen
Angemessene Ratenbegrenzungen implementieren
Sampling-Nutzung überwachen
Daten bei der Übertragung verschlüsseln
Datenschutz der Benutzerdaten behandeln
Sampling-Anfragen prüfen
Kostenrisiko kontrollieren
Timeouts implementieren
Modellfehler ordnungsgemäß behandeln

Gängige Muster#

Agentische Workflows#

Sampling ermöglicht agentische Muster wie:
Lesen und Analysieren von Ressourcen
Treffen von Entscheidungen basierend auf dem Kontext
Generieren von strukturierten Daten
Bearbeiten von mehrstufigen Aufgaben
Bereitstellung interaktiver Unterstützung

Kontextmanagement#

Bewährte Praktiken für den Kontext:
Minimal notwendigen Kontext anfordern
Kontext klar strukturieren
Kontextgrößenbeschränkungen behandeln
Kontext bei Bedarf aktualisieren
Veralteten Kontext bereinigen

Fehlerbehandlung#

Eine robuste Fehlerbehandlung sollte:
Sampling-Fehler abfangen
Timeout-Fehler behandeln
Ratenbegrenzungen verwalten
Antworten validieren
Fallback-Verhaltensweisen bereitstellen
Fehler ordnungsgemäß protokollieren

Einschränkungen#

Beachten Sie diese Einschränkungen:
Sampling hängt von den Client-Fähigkeiten ab
Benutzer steuern das Sampling-Verhalten
Kontextgröße hat Grenzen
Ratenbegrenzungen können gelten
Kosten sollten berücksichtigt werden
Modellverfügbarkeit variiert
Antwortzeiten variieren
Nicht alle Inhaltstypen werden unterstützt
Modified at 2025-03-13 04:03:56
Previous
Werkzeuge
Next
Wurzeln
Built with