东莞哪里做网站有名的网站
2026/5/21 16:17:53 网站建设 项目流程
东莞哪里做网站,有名的网站,查询商标是否已注册官网,php可以做手机网站吗FastMCP 开发指南#xff1a;从入门到精通 本文档详细总结了 FastMCP 的核心概念、工作机制以及最佳实践。适用于希望构建高质量 MCP Server 的开发者。 1. 什么是 FastMCP#xff1f; FastMCP 是 Model Context Protocol (MCP) 的一个高级 Python 封装库。 定位#xff1a;…FastMCP 开发指南从入门到精通本文档详细总结了 FastMCP 的核心概念、工作机制以及最佳实践。适用于希望构建高质量 MCP Server 的开发者。1. 什么是 FastMCPFastMCP是 Model Context Protocol (MCP) 的一个高级 Python 封装库。定位它是 MCP 领域的FastAPI。设计哲学Ergonomic (人体工程学)利用 Python 类型提示 (Type Hints) 和装饰器提供极致的开发体验。Automatic (自动化)自动将 Python 函数签名转换为 MCP 工具定义 (JSON Schema)。Fast (快速)基于uvicorn和anyio支持异步高性能运行。2. 核心三支柱Tool, Resource, PromptMCP 协议定义了三种主要的能力原语FastMCP 对它们进行了完美的封装。类型装饰器核心意图类比典型场景Toolmcp.tool()执行动作(Do)函数 / API POST计算数据、修改数据库、发送消息、重启服务Resourcemcp.resource()读取数据(Read)文件 / API GET读取配置文件、获取用户资料、查看日志Promptmcp.prompt()预设指令(Templating)快捷指令 / 模板“代码审查”、“生成周报” 等常用对话模板3. 深入解析指令与描述 (The “Brain” of MCP)在开发 MCP Server 时最容易混淆的是“我应该在哪里告诉 LLM 怎么做”。这涉及到两个层级3.1 宏观层级Instructions (指令)定义在创建FastMCP实例时传入的instructions参数。作用Server 级别的 System Prompt。内容定义 Server 的“人设”、全局行为准则、安全限制、工具使用的优先顺序。示例“你是一个专业的运维助手。这是一个生产环境执行任何删除操作前必须先备份。”3.2 微观层级Docstrings (文档字符串)定义Python 函数体内的第一行注释。作用Tool 级别的说明书。内容定义单个工具的功能、参数含义、参数单位、返回值描述。示例“计算 BMI 指数。参数 weight_kg 必须是公斤height_m 必须是米。”3.3 交互流程图System Prompt 是如何生效的很多开发者误以为 Tool 的描述是在调用时才给 LLM 的。其实不然所有信息都在 Step 0 就注入了。模型 (Claude 3.5)MCP Server客户端 (Cursor/Claude)用户模型 (Claude 3.5)MCP Server客户端 (Cursor/Claude)用户Step 0: 握手与注入 (隐形步骤)Step 1: 用户提问LLM 思考中...用户让我删人但 Instructions 说必须先备份。Step 2: 决策与调用Step 3: 再次决策连接建立你是谁有哪些工具我是运维助手(Instructions) 工具列表(Docstrings)拼接 System Prompt [Client Prompt] [Server Instructions] [Tool Schemas]帮我删掉用户 John发送完整上下文 (包含上述 System Prompt)请求调用工具: backup_user(John)执行 backup_user备份成功结果: 备份成功请求调用工具: delete_user(John)删除成功已为您安全地删除了用户 John (已备份)。3.4 深度辨析Instructions vs Prompts这是开发者最容易混淆的两个概念。虽然它们看起来都是“给 LLM 的话”但机制完全不同。特性instructions...(指令)mcp.prompt()(提示词模板)本质System Prompt (系统级设定)User Message Template (用户消息模板)生效方式被动、强制、全局主动、可选、单次比喻背景音乐 (BGM)一直在后台放潜移默化影响气氛点歌机只有你去点歌调用它才会播放Cline/Cursor 表现用户不可见但模型时刻遵守用户在菜单中选择填入后变成用户提问的一部分关键结论Instructions是为了约束AI的行为例如安全规范。mcp.prompt是为了节省用户的打字时间例如常用提问模板。4. 高级功能4.1 上下文感知 (Context)工具不仅仅是孤立的函数它们可以与 MCP 系统的上下文交互。用法在参数中添加ctx: Context。能力ctx.info(msg)/ctx.error(msg): 发送日志到客户端控制台。ctx.report_progress(current, total): 在客户端显示进度条。ctx.request_sampling(prompt): 反向请求 LLM 帮助Human-in-the-loop。4.2 返回图片 (Image)Tool 可以直接返回图片客户端会直接渲染出来。用法返回fastmcp.Image对象。5. 最佳实践代码示例以下是一个集大成的示例展示了所有核心概念的正确用法。fromfastmcpimportFastMCP,Context,Image# # 1. 定义 Server 与 宏观指令 (Instructions)# # Instructions 是给 LLM 的全局行为准则非常重要mcpFastMCP(nameDataAssistant,instructions 你是一个资深数据分析师助手。 原则 1. 在进行任何复杂计算前先获取配置确认精度要求。 2. 如果计算过程很长请务必报告进度。 3. 永远优先使用图表Image来展示结果。 )# # 2. 定义工具 (Tools) - 微观说明书 (Docstrings)# mcp.tool()asyncdefanalyze_data(dataset_id:str,ctx:Context)-str: 分析指定数据集的统计特征。 Args: dataset_id: 数据集的唯一标识符 (UUID格式)。 ctx: MCP 上下文用于报告进度。 # 使用 Context 记录日志ctx.info(f开始分析数据集:{dataset_id})# 模拟长耗时操作报告进度foriinrange(0,100,20):awaitctx.report_progress(i,100)returnf数据集{dataset_id}分析完成均值42, 方差1.5mcp.tool()defgenerate_chart(data_points:list[float])-Image: 根据数据点生成趋势图。 Args: data_points: 一组浮点数列表。 # 这里通常会用 matplotlib 绘图并转为 bytes# 模拟返回一个简单的 PNG 图片数据fake_png_datab\x89PNG\r\n...returnImage(datafake_png_data,mime_typeimage/png)# # 3. 定义资源 (Resources) - 数据访问# mcp.resource(config://app/settings)defget_app_config()-dict:获取应用程序的全局配置信息。return{precision:high,max_items:1000}# # 4. 定义提示词 (Prompts) - 快捷指令模板# mcp.prompt()defcode_review(code:str)-list[dict]:生成一个标准的代码审查 Promptreturn[{role:user,content:f请作为架构师审查以下代码关注安全性\n\n{code}}]if__name____main__:mcp.run()6. 常见误区解答Q: 我需要手动写一个 Resource 来列出所有 Tool 吗A: 绝对不需要。MCP 协议会自动发现所有被mcp.tool装饰的函数生成清单并注入给 LLM。手动维护列表不仅多余还容易出错。Q: Docstring 真的那么重要吗A: 非常重要。Docstring 就是 LLM 的“眼睛”。如果你不写 Docstring或者写得含糊不清比如参数没写单位LLM 就只能瞎猜导致调用失败。把 Docstring 当作是写给 AI 看的代码逻辑。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询