← 返回 AI应用开发图解 目录

🔌 MCP与Skills与提示词图解

MCP协议原理 · Skills系统 · 提示词工程 · AI如何连接世界

🔌 S1: MCP协议 — AI的USB-C统一接口

MCP = USB-C统一接口
之前:每个AI应用要连数据库、连文件、连API,都要自己写一套接口——像一堆不同的充电线
现在:MCP定义了统一协议,AI应用只需支持MCP,就能连所有工具——像USB-C统一了所有充电线

三个角色
🖥️ MCP Host = 你的电脑(WorkBuddy/Claude Desktop/Cursor)
🔌 MCP Client = USB口(Host内置,负责和Server通信)
📦 MCP Server = USB设备(文件系统/数据库/API——提供具体能力)

工作流程:你插上U盘(Server) → 电脑(Host)通过USB口(Client)识别 → 能读写U盘里的文件(Tools/Resources)
MCP 协议架构与工作流程 🖥️ MCP Host WorkBuddy / Claude Desktop / Cursor 🧠 LLM (AI大脑) 🔌 MCP Client (内置) 📝 提示词管理 + 对话管理 MCP协议 📦 文件系统Server 🔧 read_file / write_file 📂 list_directory / search → AI能读写你电脑上的文件 📦 数据库Server 🔧 query / insert / update 📊 schema / explain → AI能直接操作数据库 📦 GitHub Server 🔧 create_issue / merge_pr 📋 search_code / review → AI能管理代码仓库 📦 Web Server 🔧 fetch / search / scrape 🌐 API调用 / 网页抓取 → AI能访问互联网 MCP核心能力:Tools + Resources + Prompts 🔧 Tools = AI能调用的函数(read_file, query_db, search_code)— AI主动调用 📂 Resources = AI能读取的数据(文件内容, 数据库schema)— AI按需获取 📝 Prompts = 预定义的提示词模板 — AI可复用 三者组合 = AI的"工具箱+资料库+手册"
MCP架构:Host(Client) ↔ Server(Tools/Resources/Prompts),标准化连接

MCP实际工作流程(以"帮我查一下用户表有多少数据"为例)

① 用户提问 ② Host发给LLM ③ LLM决定调Tool ④ Client调DB Server ⑤ 返回结果给LLM ⑥ LLM总结回答

整个过程对用户来说,就像在和AI"聊天"——AI自动决定要不要调工具、调哪个工具、怎么解读结果。

📱 S2: Skills系统 — AI的App Store

Skills = App Store里的App
你的手机(AI Host)出厂只有基本功能(聊天),装上不同的App(Skill)就有了不同能力:
📲 装了"微信支付"App → AI能帮你付款
📲 装了"GitHub"App → AI能帮你管理代码
📲 装了"PDF"App → AI能生成PDF文档
📲 装了"数据库"App → AI能帮你查数据

Skill = 一份SKILL.md文件,里面写好了:
• 这个Skill干什么(触发条件:用户说什么话时激活)
• 怎么干(步骤:1→2→3→4)
• 用什么工具(调哪些MCP Server / 什么API)
Skills系统架构:AI的App Store 🤖 AI Host (WorkBuddy/Claude) 出厂能力: 💬 聊天对话 📝 文本生成 🧠 逻辑推理 装Skill后: 📱 各种专项能力 🔧 调用外部工具 📲 Skills目录(按需安装) 💰 微信支付 触发:"付钱/支付" 调MCP支付Server 📄 PDF生成 触发:"生成PDF" 调文件+PDF库 🎨 多模态生成 触发:"生成图片/视频" 调ImageGen API 🔍 Expert管理 触发:"创建专家" 调文件+模板 ☁️ 云部署 触发:"部署/发布" 调CloudStudio 📝 Skill创建 触发:"创建Skill" 生成SKILL.md 📄 SKILL.md 文件结构(一个Skill就是一份Markdown文件) 1️⃣ name = Skill名称 2️⃣ trigger = 触发条件 3️⃣ steps = 执行步骤 4️⃣ tools = 需要的工具 5️⃣ output = 输出格式 6️⃣ examples = 使用示例
Skills = AI的App,SKILL.md定义触发条件+执行步骤+使用的工具

Skill vs MCP vs Function Calling 三者关系

维度MCPSkillsFunction Calling
是什么通信协议(USB-C)能力包(App)API接口(函数签名)
层级底层协议上层应用中间接口
类比USB-C标准App Store里的AppAPI文档
定义者Anthropic(开放标准)用户/社区(SKILL.md)AI厂商(OpenAI/Anthropic)
运行时机AI需要外部数据/操作时用户触发特定意图时AI判断需要调用函数时
关系Skill可以调MCP ServerMCP是Skill的底层FC是MCP Tools的底层机制
简单理解:MCP是"管道",Skills是"管道上的水龙头"(按需开关),Function Calling是"水龙头的阀门"(底层调用机制)。

📝 S3: 提示词工程 — 怎么跟AI说话才有用

提示词 = 给实习生的工作说明书
你说"帮我写个功能" → 实习生一脸懵,不知道写什么、什么风格、给谁用
你说"帮我在Spring Boot项目中,给UserService添加分页查询方法,用MyBatis-Plus,返回Page<UserVO>,按照现有代码风格" → 实习生秒懂!

提示词核心法则
1️⃣ 角色 = 你是谁("你是一个资深Java架构师")
2️⃣ 任务 = 干什么("帮我设计一个高并发秒杀系统")
3️⃣ 上下文 = 背景信息("技术栈是Spring Boot + Redis + RocketMQ")
4️⃣ 示例 = 参考格式("输出格式参照以下JSON...")
5️⃣ 约束 = 不能做什么("不要使用synchronized,只允许用JUC包")
5种提示词模式对比 零样本提示 直接问,不给示例 "什么是synchronized?" 简单问答 ✅ 复杂任务效果差 ❌ 少样本提示 给几个示例再问 Q:2+3 A:5 Q:4+1 A:5 格式控制 ✅ 最常用 思维链CoT 一步步推理 "请一步一步思考" "Let's think step by step" 推理/数学题必用 ✅ ReAct模式 思考→行动→观察循环 思考:需要查数据库 行动:调用query_tool Agent核心模式 ✅ 系统提示词 预设角色和规则 "你是Java专家" "只回答编程问题" 所有模式的基础 💡 提示词实战模板(直接抄) 📌 通用模板:角色 + 任务 + 上下文 + 输出格式 + 约束 📌 代码生成:技术栈 + 需求 + 代码风格 + 参考代码 + "只输出代码" 📌 Debug:报错信息 + 代码片段 + 环境信息 + "分析原因并给出修复方案" 📌 Agent:目标 + 可用工具列表 + 输出格式 + "逐步推理,每步说明你在做什么"
5种提示词模式:零样本→少样本→思维链→ReAct→系统提示词

🎯 S4: Function Calling — AI调用函数的底层机制

Function Calling = 给实习生配工具箱
没有FC → 实习生只能"说",不能"做"——"你该查数据库了"但实际查不了
有了FC → 实习生能"做"——AI判断需要查数据库→自动调用query函数→拿到结果→继续推理

FC流程
你说:"今天北京天气怎么样?"
→ AI判断需要调工具 → 返回函数调用意图 get_weather("北京")
→ 你的代码执行这个函数 → 拿到结果 "25°C,晴天"
→ 把结果喂回AI → AI回答:"北京今天25度,晴天,适合户外活动!"
Function Calling 完整流程 ① 用户消息 "北京今天天气?" ② LLM判断 需要调用get_weather ③ 返回函数调用 get_weather("北京") ④ 执行+返回结果 "25°C,晴天" → 喂回LLM ⑤ LLM拿到结果,生成最终回答 // OpenAI Function Calling 示例 tools: [{ name: "get_weather", parameters: { city: "string" } }] // LLM返回 → { "function": "get_weather", "arguments": { "city": "北京" } } // 你的代码执行 → 拿到结果 → 作为tool message喂回 → LLM最终回答
Function Calling流程:用户→LLM判断→返回函数调用→执行→结果喂回→最终回答

🆚 S5: MCP vs Skills vs Function Calling 对比与选型

三层关系:从底层协议到上层应用 🔧 底层:Function Calling(AI厂商提供) AI模型"能调函数"的基础能力 — OpenAI/Anthropic/Claude都支持 每个AI厂商有自己的FC格式,不互通 🔌 中层:MCP协议(行业标准) 统一了FC的格式 — 不管用哪家的模型,MCP Server都能连 MCP Server里的Tools最终通过FC被AI调用 📱 上层:Skills系统(应用层) 封装了"什么时候用MCP + 怎么组合多个MCP + 业务逻辑" 用户只需要装Skill,不用关心底层MCP和FC的细节
三层架构:FC(底层能力) → MCP(标准协议) → Skills(上层应用)

什么时候用哪个?

场景用什么为什么
简单的AI对话/问答只需提示词不需要外部工具,纯语言能力足够
AI需要调一个APIFunction Calling最直接,定义函数→AI调用→拿到结果
多个AI应用共享工具MCP写一次Server,Claude/Cursor/WorkBuddy都能用
需要组合多个工具完成复杂任务Skill + MCPSkill编排多步流程,MCP提供底层工具
企业级AI应用MCP + Skills + FC标准化协议+可复用能力包+底层调用,三层全用

❓ MCP/Skills/提示词FAQ

MCP和传统API有什么区别?
核心区别:传统API是"人调API",MCP是"AI调API"。

传统API:程序员写代码 response = http.get("/api/weather?city=北京")
MCP:AI自己决定什么时候调、调哪个、传什么参数。

类比:传统API = 你自己打开天气App查 → MCP = 你问AI"今天天气怎么样",AI自动帮你查
写好提示词的关键是什么?
4个关键
1️⃣ 具体:不说"帮我写代码",而说"用Spring Boot写一个分页查询接口,返回PageResult<UserDTO>"
2️⃣ 给示例:给一个输入输出的例子,比描述1000字更有效
3️⃣ 设约束:告诉AI不要做什么("不要用synchronized""输出不要超过500字")
4️⃣ 链式思考:让AI"一步步思考",推理类任务效果提升30%+
Skill可以自己创建吗?
可以!Skill就是一份SKILL.md文件,你可以在 ~/.workbuddy/skills/ 目录下创建自己的Skill。

创建步骤
1️⃣ 在skills目录下新建文件夹,如 my-skill/
2️⃣ 创建 SKILL.md,写明触发条件、执行步骤、使用的工具
3️⃣ (可选)创建 scripts/references/ 目录放辅助脚本和参考
4️⃣ 重启WorkBuddy,Skill自动加载

类比:就像给自己的手机写一个App——写好代码、打包、安装就能用
MCP安全吗?AI会不会乱删我的文件?
MCP有安全机制
1️⃣ 信任机制:新的MCP Server需要用户手动"Trust"才能启用
2️⃣ 权限控制:每个Server只暴露特定的Tools,AI只能调允许的函数
3️⃣ 沙箱隔离:文件操作等危险操作在沙箱中执行
4️⃣ 用户确认:敏感操作(支付/删除)需要用户二次确认

类比:手机App要权限才能访问相册/麦克风——MCP也一样,不是AI想干什么就干什么
不同语言开发MCP Server有什么区别?
语言MCP SDK适合场景上手难度
TypeScript官方SDK ✅Web API/前端工具⭐ 最简单
Python官方SDK ✅数据/AI工具⭐⭐ 简单
Go社区SDK ✅高性能/云原生⭐⭐⭐ 中等
Java社区SDK企业级集成⭐⭐⭐ 中等

推荐:先学TypeScript SDK(官方支持最好),数据类用Python。

— 全栈资料库 · MCP与Skills与提示词图解 —

核心三原则速记

AI应用三原则:① 能RAG就不裸调(减少幻觉)→ ② Prompt是工作说明书,角色/约束/格式都要写清 → ③ 始终预留人工审核通道