Rules、Skills、MCP 到底是什么?

Rules、Skills、MCP 到底是什么?

我们常在 AI IDE(比如 Cursor、Windsurf、Cline 等)里看到过很多自带的 Rules 功能,还有之前的 MCP 工具,以及新出的 Skills 技能树。但这三者到底有什么关联,意义分别是什么呢?

仔细看了一下,这三个在本质上根本不是一个东西:

  • Rules(规则)
  • Skills(技能)
  • MCP(Model Context Protocol)

很多人会混用,甚至理解成一类东西。实际上,这三者属于完全不同层级的设计。为了方便理解,你可以想象咱们招了一个"超级学霸实习生"(大模型):

text 复制代码
        ┌───────────────┐
        │     Rules     │   ← 员工手册与岗位说明(怎么做 / 立人设)
        └──────┬────────┘
               ↓
        ┌───────────────┐
        │     Model     │   ← 学霸实习生(决策核心 / 纯大脑)
        └──────┬────────┘
               ↓
        ┌───────────────┐
        │    Skills     │   ← 配发的作案工具(做什么 / 长手眼)
        └──────┬────────┘
               ↓
        ┌───────────────┐
        │      MCP      │   ← 万能拓展坞(怎么连 / 标准协议)
        └───────────────┘

Rules(规则)

它的作用是可以输出你自己的风格,为行为划分边界,控制他的安全限制,还可以按照你自己的思维写一个任务偏好。

本质:

Rules 的本质其实就是 System Prompt(系统提示词)

它不仅是"护栏",更是"人设"。在 AI IDE 里,你可以通过写 Rules,把一个通用的 AI 变成**"精通 Vue3 和 Tailwind 的暴躁老哥架构师"**。没有 Rules,AI 每次都会给你生成最平庸、最通用的代码;有了 Rules,它写出来的代码就带上了你的"个人签名"。

比如:

markdown 复制代码
## Rules
- 用中文回答我的问题
- 回答要简洁明了
- 不要编造数据
- 不要生成测试文件和多余的测试代码
- 必须要仔细熟悉代码风格后开始编写代码

当然了,一个比较好的 Rules 不只是这么简单,是需要一套专业术语的,像是"寸止"、"三术"就配置了对应的很不错的 Rules。

它的特点很明显: 不能执行逻辑,不能调用外部工具,不能直接产出结果,只是让 AI 具备了提前动脑的操作,给它立规矩。


Skills (技能)

它的作用可以让 AI 具备实际的执行能力,让 AI 用手干活。

本质:

Skills 的底层技术原理,其实就是 OpenAI 搞出来的 Function Calling(函数调用)

以前的 AI 只能"动嘴皮子"(聊天),你问它天气,它只能瞎编。有了 Skills,AI 在遇到"需要获取当前用户信息"的问题时,它会输出一段 JSON,告诉外面的系统:"老铁,帮我跑一下这个函数,把结果扔给我"。

举个例子:

  • 给我调用一下当前用户信息的接口
  • 帮我查询一下当前数据库信息
  • 帮我直接生成一个能跑的代码
  • 执行 shell
  • 读一下我 xx 文件夹下的 hello.js 文件

按第一条举例,AI 实际输出的结构是这样的:

json 复制代码
{
    "name": "getUserInfo",
    "description": "获取用户信息",
    "parameters": {
        "userId": "string"
    }
}

它的特点: 是可以执行逻辑的,并且可以调用外部的系统以及产出的结果。可以把它理解成大模型的 "手" 。比如你让 AI 帮你修个 Bug,它得先用 read_file 技能看代码,再用 run_terminal 技能跑一下 npm run build 看报错,这都是在放技能。


MCP (协议)

什么是 MCP?它是如何运作的?Smithery 是如何使用 MCP 的?

本质上是 Model Context Protocol(模型上下文协议)

官方解释:MCP 是一个开放标准,它使 LLM 能够访问定制工具和上下文,只要 LLM 支持 MCP 并且该工具实现了 MCP 协议。

本质:MCP 是 AI 调用外部工具的标准接口协议。它就像一个万能的 Type-C 拓展坞。

为什么需要 MCP?

当你希望从外部获取信息或者代表你执行某些操作时,MCP 就很有用。

在没有 MCP 的时候,你想使用不同的工具(比如搜索工具、UI 工具、思维模式工具),每个工具的接入方式不同,AI 本身不知道怎么去调用,而且这些工具没有办法统一进行管理。这就会导致系统内部的结构很混乱,这里拼一个那里拼一个,到后面自己都不知道在哪里该调用什么。

MCP 是个划时代的玩意儿,因为它做到了"车同轨,书同文"。

在 MCP 出现之前,Cursor 想连 MySQL 得自己写一套代码;Windsurf 想连又得重新写一套。现在有了统一的 MCP 标准!只要写一个 MySQL MCP Server,不管是哪款 IDE,只要支持 MCP,插上这个统一的拓展坞,瞬间全都能连上 MySQL!

MCP 的三大法宝(很多人以为它只能调工具,其实格局小了):
  1. Tools(工具/也就是前面的 Skills): 让 AI 能"干活"(比如帮你连上本地机器执行脚本)。
  2. Resources(资源/上下文): 让 AI 能"长眼"。你可以直接把本地的 SQLite 数据库、公司的 Github 仓库挂载给 AI。AI 可以自己去里面翻找资料,再也不用你手动 Copy Paste 了。
  3. Prompts(提示词模板): 标准化的工作流指令。
服务器、客户端和传输

MCP 与 HTTP 一样,是一种客户端-服务器协议。客户端是 LLM,服务器则向 LLM 提供工具。客户端和服务器通过传输层进行通信(可以是本地 STDIO,也可以是通过互联网的 HTTP)。

  • 服务器向客户端公开工具。
  • 客户端可以调用服务器上的工具。
  • 传输方式是两者之间相互通信的方式。

MCP 解决了什么问题:

  • 工具的注册方式得到统一
  • 参数的描述格式可以列举出来
  • 调用的协议统一
  • 会返回 AI 需要的数据结构

如何配置在 IDE 中:

json 复制代码
{
  "tools": [
    {
      "name": "search",
      "description": "搜索信息",
      "input_schema": {...}
    }
  ]
}

配置在项目代码中:

javascript 复制代码
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { createConnection } from "@smithery/api/mcp"

const { transport } = await createConnection({
  mcpUrl: "[https://server.smithery.ai/upstash/context7-mcp](https://server.smithery.ai/upstash/context7-mcp)",
})

const mcpClient = new Client(
  { name: "my-app", version: "1.0.0" },
  { capabilities: {} }
)
await mcpClient.connect(transport)

const { tools } = await mcpClient.listTools()
const result = await mcpClient.callTool({
  name: "tool_name",
  arguments: { key: "value" }
})

https://smithery.ai/servers

Smithery 这个网站可以帮你快速了解 MCP 以及如何上手里面的配置。你可以把它理解成是 MCP 时代的"App Store(应用商店)"。

全网大佬写好的各种牛逼的 MCP 插件都在上面。我这边随便点击了一个进去,可以看到 Skill.md 文件,这是可以方便前端拿来使用的规范,右侧就是可以使用模型对应的安装命令以及文件位置:


总结归纳

所以,当你下次在 AI IDE 里折腾的时候,别再把它们混为一谈了:

  • 发现 AI 废话太多、代码风格不对? 去改 Rules(调教它的脑子,改人设)。
  • 发现 AI 想帮你干活但提示"无权限/找不到命令"? 说明它缺了 Skills(给它配发趁手的工具)。
  • 发现你想让 AI 读取你私有的数据库或第三方平台却连不上? 去找个对应的 MCP Server 挂载上(给它插上新设备的拓展坞)。
相关推荐
doiito8 分钟前
【Agent Harness】为什么我把 JSON‑LD “编译成 DAG” 后,整个 Agent 平台立刻聪明了
ai·rust·架构设计·系统设计·ai agent
xiezhr5 小时前
折腾半小时,终于让AI 能直接帮我写飞书文档了
ai·飞书·ai agent·飞书cli·飞书文档
岳小哥AI5 小时前
Claude Fable和Claude Mythos 5同时发布:注意力机制下愈加强大的AI大模型
ai·ai基础
Artech6 小时前
[MAF预定义的AIContextProvider-04]Mem0Provider——长期记忆基于的云端解决方案
ai·agent·maf·aicontextprovider·chathistorymemoryprovider·mem0provider
哥不是小萝莉15 小时前
一文读懂 OpenAI Codex 源码的原理、架构与未来
ai
AlfredZhao1 天前
AI 编程工作总结:从体验问题到模块能力建设
ai·codex
cup112 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
IT王师傅2 天前
从 豆包 到 Codex CLI:一名普通开发者的 AI 工具进化路线
ai·codex cli·openclaw
岳小哥AI2 天前
Siri要接入AI了,苹果手机上一句话让GPT写文案、DeepSeek写代码的时刻来了
ai·ai基础
Artech2 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf