Sampling – Model Context Protocol Specification

网页链接

  • https://spec.modelcontextprotocol.io/specification/draft/client/sampling/

主要内容概述

该网页详细介绍了Model Context Protocol (MCP) 中的“Sampling”功能。Sampling允许服务器通过客户端请求语言模型(LLM)生成文本、音频或图像内容,而无需服务器直接使用API密钥访问模型。客户端在模型访问、选择和权限方面保持控制权,同时为服务器提供AI能力。

核心内容笔记

1. 用户交互模型 (User Interaction Model)
  • Sampling允许服务器实现代理行为,通过在其他MCP服务器功能中嵌套LLM调用。
  • 协议本身不强制规定具体的用户交互模式,但建议:
    • 提供易于使用的界面,方便用户审查Sampling请求。
    • 允许用户在发送前查看和编辑提示。
    • 在交付前让用户审查生成的响应。
2. 功能声明 (Capabilities)
  • 支持Sampling的客户端必须在初始化时声明sampling能力:
    {"capabilities": {"sampling": {}}
    }
    
3. 协议消息 (Protocol Messages)
  • 创建消息 (Creating Messages)
    • 服务器通过发送sampling/createMessage请求来请求语言模型生成内容。
    • 请求示例:
      {"jsonrpc": "2.0","id": 1,"method": "sampling/createMessage","params": {"messages": [{"role": "user","content": {"type": "text","text": "What is the capital of France?"}}],"modelPreferences": {"hints": [{"name": "claude-3-sonnet"}],"intelligencePriority": 0.8,"speedPriority": 0.5},"systemPrompt": "You are a helpful assistant.","maxTokens": 100}
      }
      
    • 响应示例:
      {"jsonrpc": "2.0","id": 1,"result": {"role": "assistant","content": {"type": "text","text": "The capital of France is Paris."},"model": "claude-3-sonnet-20240307","stopReason": "endTurn"}
      }
      
4. 消息流 (Message Flow)
  • 服务器发起Sampling请求,用户在客户端审查并批准请求,客户端与模型交互并返回生成结果。
  • 流程图:
    LLMUserClientServerLLMUserClientServer
    Server initiates sampling
    Human-in-the-loop review
    Model interaction
    Response review
    Complete request
    sampling/createMessage
    Present request for approval
    Review and approve/modify
    Forward approved request
    Return generation
    Present response for approval
    Review and approve/modify
    Return approved response
    
5. 数据类型 (Data Types)
  • 消息 (Messages)
    • Sampling消息可以包含以下内容类型:
      • 文本内容 (Text Content)
        {"type": "text","text": "The message content"
        }
        
      • 图像内容 (Image Content)
        {"type": "image","data": "base64-encoded-image-data","mimeType": "image/jpeg"
        }
        
      • 音频内容 (Audio Content)
        {"type": "audio","data": "base64-encoded-audio-data","mimeType": "audio/wav"
        }
        
6. 模型偏好 (Model Preferences)
  • 由于服务器和客户端可能使用不同的AI提供商,MCP通过偏好系统抽象化模型选择。
    • 能力优先级 (Capability Priorities)
      • 服务器通过以下三个归一化优先级值(0-1)表达需求:
        • costPriority:成本优先级,值越高表示越偏好低成本模型。
        • speedPriority:速度优先级,值越高表示越偏好低延迟模型。
        • intelligencePriority:智能优先级,值越高表示越偏好高级功能模型。
    • 模型提示 (Model Hints)
      • 提示允许服务器建议特定模型或模型家族:
        • 提示被视为模型名称的子字符串,可以灵活匹配。
        • 客户端可以根据提示将请求映射到其他提供商的等效模型。
        • 示例:
          {"hints": [{"name": "claude-3-sonnet"},{"name": "claude"}],"costPriority": 0.3,"speedPriority": 0.8,"intelligencePriority": 0.5
          }
          
7. 错误处理 (Error Handling)
  • 客户端应为常见失败情况返回错误。
  • 示例错误:
    {"jsonrpc": "2.0","id": 1,"error": {"code": -1,"message": "User rejected sampling request"}
    }
    
8. 安全考虑 (Security Considerations)
  • 客户端应实现用户审批控制。
  • 双方应验证消息内容。
  • 客户端应尊重模型偏好提示。
  • 客户端应实现速率限制。
  • 双方必须妥善处理敏感数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-汇编2、外设

1.异常处理 reserved保留 ;将所有异常都初始化成一个函数 2.nop 空指令,什么不干&#xf…

汇能感知高品质的多光谱相机VSC02UA

VSC02UA概要 VSC02UA是一款高品质的200万像素的光谱相机,适用于工业检测、农业、医疗等领域。VSC02UA 包含 1600 行1200 列有源像素阵列、片上 10 位 ADC 和图像信号处理器。它带有 USB2.0 接口,配合专门的电脑上位机软件使用,可进行图像采集…

在C语言基础上学Java【Java】【一】

众所周知,Java是C风格的语言,对于学过C语言的人学Java可以快速适应。 废话不多说,直接边看代码边学。 数据类型,输入和输出 import java.util.Scanner;//为了使用Scanner public class a1 {//a1是类名,就是文件名&am…

Spring组件初始化扩展点:BeanPostProcessor

目录 一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessBeforeInitialization2、postProcessAfterInitialization 四、实战案例案例1:实现简单的属性打印案例2:动态代理增强(模拟AOP) 五、常见应用场景六、注意…

多模态RAG框架(二)OmniSearch (Self-adaptive Planning Agent) and Dynamic VQA Dataset

OmniSearch:Benchmarking Multimodal RAG with Dynamic VQA Dataset and Self-adaptive Planning Agent 文章链接:2411.02937 Github链接:Alibaba-NLP/OmniSearch: Repo for Benchmarking Multimodal Retrieval Augmented Generation with …

Multisim学习-04 示波器的使用

我们选择一个信号源来说明示波器的使用。 模拟电路中平常一般用ac,am,fm,clock就可以演示了。 截图说明: 1)波的周期时长,首先应该调整这个参数,它的倒数就是频率。这个参数如果不适合&#xf…

2025年03月16日Github流行趋势

项目名称:glance 项目地址url:https://github.com/glanceapp/glance项目语言:Go历史star数:13768今日star数:889项目维护者:svilenmarkov, c0smicdev, wfg, DVDAndroid, jonasknobloch项目简介:…

aws训练快速入门教程

AWS 相关核心概念 简洁地介绍一下AWS训练云服务的核心关联概念: AWS核心服务层: 基础设施层: EC2(计算), S3(存储), RDS(数据库)等人工智能层: SageMaker(训练平台), AI服务等 机器学习服务分级: 高层: 预构建AI服务(开箱即用)中层: SageMaker(主要训练平台)底层: 框架和基…

对接股票金融数据源API

StockTV 股票市场API StockTV 提供全面的实时和历史股市数据 API,涵盖全球股票、外汇、期货及市场新闻数据,助力投资者精准把握市场动态。 主要功能 实时和历史股市数据 API 获取全球股票市场的实时行情、历史数据及深度分析,支持多语言查询…

HTML图像标签的详细介绍

1. 常用图像格式 格式特点适用场景JPEG有损压缩,文件小,不支持透明适合照片、复杂图像PNG无损压缩,支持透明(Alpha通道)适合图标、需要透明背景的图片GIF支持动画,最多256色简单动画、低色彩图标WebP谷歌开…

Bilve 搭建手册

从零搭建 Bilive 需要提前安装docker bilive 第一步 docker cli to docker compose # https://www.mklab.cn/utils/docker sudo docker run \-itd \--name bilive_docker \-p 22333:2233 \ghcr.io/timerring/bilive:0.2.10version: 3.1 services:bilive_docker:image: ghcr…

内存高级话题

面试凉经,代码最近写的太少了,被面试官屠杀。 痛定思痛,对C新经典中的内存话题进行复现。 new A 与 new A() 的差别 (1)如果是一个空类,这两行代码没什么区别。当然现实中也没有程序员会写一个空类。 &am…

2025最全Xshell配置手册:从零开始下载安装搭建远程连接环境

🌈 软件介绍 Xshell 7 是由韩国 NetSarang 公司开发的一款功能强大的终端模拟器。它专为 Windows 操作系统设计,广泛应用于远程连接管理和服务器管理。 📥 软件下载与准备 1. 官方下载渠道(直接下载,安全无捆绑&…

算法模型从入门到起飞系列——广度优先遍历(BFS)

文章目录 前言一、广度优先遍历(BFS)简介1.1 广度优先遍历(BFS)的特点1.2 广度优先遍历(BFS)的要素 二、广度优先遍历(BFS)& 深度优先遍历(DFS)2.1 广度优…

CPP从入门到入土之类和对象Ⅱ

一、六大默认成员函数 默认成员函数是用户没有显式实现,编译器自动生成的成员函数。 一个类,我们在不写的情况下,编译器会默认生成六个默认成员函数 本文详细介绍构造函数和析构函数 二、构造函数 构造函数虽名为构造函数,但是…

【华三】路由器交换机忘记登入密码或super密码的重启操作

【华三】路由器交换机忘记登入密码或super密码的重启操作 背景步骤跳过认证设备:路由器重启设备翻译说明具体操作 跳过当前系统配置重启设备具体操作 背景 当console口的密码忘记,或者说本地用户的密码忘记,其实这时候是登入不了路由器的&am…

视图窗口的客户区

书籍:《Visual C 2017从入门到精通》的2.4.2 MFC应用程序类型 环境:visual studio 2022 内容:【例2.38】视图窗口的客户区 说明:以下内容大部分来自腾讯元宝。 1.创建一个单文档程序 一个简单的单文档程序-CSDN博客https://bl…

MySQL原理:逻辑架构

目的:了解 SQL执行流程 以及 MySQL 内部架构,每个零件具体负责做什么 理解整体架构分别有什么模块每个模块具体做什么 目录 1 服务器处理客户端请求 1.1 MySQL 服务器端逻辑架构说明 2 Connectors 3 第一层:连接层 3.1 数据库连接池(Conn…

慕慕手记项目日记 首页数据的渲染,使用js 2025-3-16

慕慕手记项目日记 首页数据的渲染,使用js 2025-3-16 到这部分我们先测试能不能使用js的方式来动态数据,先写出一个简短的demo出来 console.log("index.js文件引入了")var ClientHeight document.documentElement.clientHeight; // 可视区域…

当前企业使用VPN面临的不足和挑战

VPN的防护理念无法满足数字化转型的需求 古人云:知己知彼,百战不殆,既然要替换VPN,就要先了解VPN。VPN于1996年起源,98年首次在我国出现,历经25年的持续演进,直到现在依然广泛流行。VPN的起源背…