sampling/createMessage (Sampling, depreciat) în Model Context Protocol (MCP)

Protocol și Arhitectură Specificația MCP 2026-07-28 (funcție depreciată)

Cererea prin care un server MCP obține o completare de la LLM-ul clientului, fără cheie API proprie; funcție depreciată din 2026-07-28.

Specificație & cod MCP
inputRequests: {"<cheie>": {"method": "sampling/createMessage", "params": {"messages": [...], "maxTokens": N, ...}}}

Ce face sampling/createMessage (Sampling, depreciat)

Sampling este depreciat din revizia 2026-07-28 (SEP-2577): rămâne funcțional cel puțin 12 luni, dar implementările noi nu ar trebui să-l adopte, iar cele existente ar trebui să treacă la integrarea directă cu API-ul furnizorului LLM. Funcția permite serverului să ceară o generare de la modelul clientului; clientul păstrează controlul asupra accesului la model, alegerii modelului și permisiunilor. Specificația recomandă ca utilizatorul să poată vedea, edita sau refuza cererea și să poată revizui răspunsul.

În 2026-07-28 serverul nu mai trimite sampling/createMessage ca cerere separată. Îl pune în inputRequests al unui InputRequiredResult, iar clientul întoarce CreateMessageResult în inputResponses la reîncercarea cererii originale. Clientul declară capabilitatea sampling; sampling.tools permite cereri cu unelte, iar sampling.context (depreciat) permite includeContext. Dacă utilizatorul refuză, clientul nu trebuie să reia cererea inițială cu un mesaj de eroare.

Parametrii: messages (roluri user/assistant, conținut text, imagine sau audio), modelPreferences (hints ca subșiruri de nume de model, plus priorități 0–1 pentru cost, viteză și inteligență), systemPrompt, includeContext (implicit none; thisServer și allServers sunt depreciate), temperature, maxTokens (obligatoriu, respectat de client), stopSequences, metadata, tools și toolChoice. Clientul poate modifica sau ignora systemPrompt, includeContext, temperature, stopSequences și metadata.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
messages Mesajele trimise modelului. Nu ar trebui păstrate între cereri separate.
modelPreferences.hints Sugestii de model (subșiruri, în ordinea preferinței); clientul alege modelul final.
costPriority / speedPriority / intelligencePriority Priorități normalizate 0–1.
systemPrompt Prompt de sistem cerut; clientul îl poate modifica sau ignora.
includeContext none (implicit). thisServer și allServers sunt depreciate.
maxTokens Obligatoriu. Clientul trebuie să-l respecte.
temperature / stopSequences / metadata Opționale; clientul le poate modifica sau ignora.
tools / toolChoice Unelte pentru această cerere; toolChoice.mode: auto (implicit), required, none.
role / content / model / stopReason Rezultatul. stopReason: endTurn, stopSequence, maxTokens, toolUse sau valori proprii.

Exemple practice

Exemplul 1: Cererea de sampling din inputRequests

{
  "method": "sampling/createMessage",
  "params": {
    "messages": [
      {
        "role": "user",
        "content": {
          "type": "text",
          "text": "What is the capital of France?"
        }
      }
    ],
    "modelPreferences": {
      "hints": [
        {
          "name": "claude-3-sonnet"
        }
      ],
      "costPriority": 0.3,
      "intelligencePriority": 0.8,
      "speedPriority": 0.5
    },
    "temperature": 0.1,
    "systemPrompt": "You are a helpful assistant.",
    "includeContext": "thisServer",
    "maxTokens": 100
  }
}

Exemplul 2: Rezultatul trimis de client în inputResponses

{
  "role": "assistant",
  "content": {
    "type": "text",
    "text": "The capital of France is Paris."
  },
  "model": "claude-3-sonnet-20240307",
  "stopReason": "endTurn"
}

Greșeli frecvente și bune practici

  • Începi un proiect nou pe Sampling. Specificația îl depreciază și recomandă apelarea directă a API-ului furnizorului LLM.
  • Amesteci într-un mesaj tool_result cu text sau imagini. Un mesaj cu rezultate de unelte conține doar rezultate, câte unul pentru fiecare tool_use.
  • Trimiți cereri cu tools unui client care n-a declarat sampling.tools. Specificația interzice asta.

Comenzi înrudite