发布时间:2026/7/13 22:23:45
MCP 系列(05):Resources 和 Prompts 进阶——动态数据、参数化 URI 与多轮模板 Resources 和 Tools 的本质区别第 04 篇主要演示了 Tools。Resources 和 Tools 的分工需要先说清楚:Tools → LLM 主动执行的操作(动词) LLM 决定什么时候调用,调用会产生副作用 示例:create_issue、update_status Resources → LLM 可读取的数据(名词) Host 决定何时注入到上下文,只读,无副作用 示例:当前 Sprint 状态、项目统计"读取某个状态"用 Resource,"执行某个操作"用 Tool。同一个数据可以两种都实现:get_issue作为 Tool(LLM 控制何时调用),jira://issue/PROJ-101作为 Resource(Host 在需要时自动注入)。模式 1:动态 ResourceStatic Resource 每次返回相同的数据(如项目列表)。Dynamic Resource 每次读取返回当前最新状态,内容随时间变化。Sprint 状态资源:每次读取都是实时数据_sprint_progress_pct=65# 模拟随时间推进的进度@server.read_resource()# type: ignore[arg-type]asyncdefread_resource(uri:str)-str:ifstr(uri)=="jira://sprint/current":global_sprint_progress_pct _sprint_progress_pct=min(100,_sprint_progress_pct+random.randint(0,3))returnjson.dumps({"sprint_name":"Sprint 42","progress_pct":_sprint_progress_pct,# ← 每次不同"last_updated":datetime.now(timezone.utc).isoformat(),# ← 时间戳变化"days_remaining":5,"p0_open":count_p0_open(),# ← 随 issue 状态变化},indent=2)测试结果:Read 1: progress=65% last_updated=...62+00:00 Read 2: progress=67% last_updated=...04+00:00 → ✓ data changed between readsDynamic Resource 让 LLM 始终读到最新数据,适合监控类信息(Sprint 健康、队列深度、服务状态)。把这类数据硬编码在 Prompt 里,LLM 会用过时的数据做决策。Resource 描述里标注动态性,LLM 就知道何时需要重读:Resource(uri="jira://sprint/current",name="Current Sprint Status",description=("Live status of the active sprint: progress, issue counts. ""Read this when the user asks about sprint health or velocity. ""Re-read if you need up-to-date data — content changes over time."# ↑ 明确告知 LLM 这是动态数据,必要时重新读取),)模式 2:参数化 URI一种 Resource 类型对应多个具体实例时,用参数化 URI——list_resources()枚举所有实例,read_resource()用一个 handler 处理所有。每个项目有自己的统计资源:@server

相关新闻

2026/7/13 22:23:45

工业信号隔离与抗干扰:FOD4216与TM4C123GH6PZ实战

1. 工业环境中的信号挑战与解决方案概述在电机控制、自动化产线等工业场景中,电磁干扰(EMI)就像一场永不间断的电子风暴。我曾在某包装机械项目中,遇到过编码器信号被变频器干扰导致定位偏移5mm的案例——这足以让一箱药品的铝箔封…

2026/7/13 22:23:45

BigData-Notes 16.9k Star 项目解析:从 Hadoop 到 Flink 的 13 个组件学习路径

从Hadoop到Flink:16.9k Star开源项目的系统学习路径设计大数据技术生态的复杂性常常让学习者感到无从下手。一个优质的开源学习项目能帮助开发者快速构建知识体系,而BigData-Notes正是这样一个拥有16.9k Star的明星项目。本文将基于该项目的内容架构&…

2026/7/13 22:59:14

跳频通信系统 3 大核心模块解析:序列、合成器与同步器实战拆解

跳频通信系统三大核心模块深度解析:从原理到工程实现在无线通信技术日新月异的今天,跳频通信凭借其卓越的抗干扰能力和隐蔽性,已成为军事通信、物联网和工业控制等领域的核心技术。不同于传统定频通信的固定频率传输模式,跳频通信…

2026/7/13 22:59:14

手写最速下降法与牛顿法:从零理解优化算法原理与工程陷阱

1. 项目概述:为什么两个“下山”算法值得你亲手写一遍在数值优化的世界里,“找最低点”这件事,听起来简单,做起来却像在浓雾中攀爬一座没有路标的山——你只能靠脚下每一步的坡度和曲率来判断方向。Steepest Descent(最…

2026/7/13 22:59:14

计算机毕业设计之基于SpringBoot野生动物保护与宣传系统

随着大数据、人工智能的快速发展,传统的手工管理方式已难以满足现代用户的需求。为了提升工作效率、优化用户体验并降低运营成本,本研究设计并实现了一套基于Spring Boot的野生动物保护与宣传系统。该系统充分利用Spring Boot框架的简洁性、高效性和易用…

2026/7/13 22:59:14

Cheat Engine 7.7 实战:3种内存扫描策略对比与10倍效率提升技巧

Cheat Engine 7.7 实战:3种内存扫描策略对比与10倍效率提升技巧1. 内存扫描的核心逻辑与效率瓶颈在游戏逆向工程领域,内存扫描的效率直接决定了修改体验的流畅度。传统教程往往只教会用户"怎么做",却很少解释"为什么这样做更高…

2026/7/13 6:38:38

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/13 14:26:14

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/13 18:07:53

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/13 0:00:24

广氟 PTFE 高速线缆膜 —— 高端线缆绝缘材料新选择

PTFE高速线缆膜的基本概念与特点 PTFE 高速线缆膜是以聚四氟乙烯树脂为原料,经膨化双向拉伸制成的多孔绝缘薄膜,作为高速高频通信线缆的核心介质材料,内部形成均匀连通的微孔结构,兼具极低介电常数与介电损耗,能有效降…

2026/7/13 11:33:05

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…