一次 Agent Skill 的实战体验,以及 MCP 和 Skill 的区别
本周通过一个小需求尝试了下 Agent Skill,效果还不错。
比如你要做一个网站,以前没装技能的时候,AI 生成的代码又是那个熟悉的:
蓝紫渐变色 + 千篇一律的布局 + 明显的 AI 审美(不同的模型,产生的结果不同)
而通过 Agent Skill 的形式,可以提前配置好:
- 配色体系
- 字体
- 布局风格
当然,rules 和 prompt 也能做到这一点。
但 Agent Skill 的优势在于:把 Prompt 打包成一个文件夹,让 AI 按需读取和使用。
虽然本质上没啥区别,都是 prompt,但 Skill 的形态更工程化、更灵活。
MCP 和 Skill:经常一起出现,但不是一回事
现在用 AI Agent 工具(Claude Code、Cursor)时,经常会遇到两个概念:
- MCP
- Skill
我觉得有必要区分清楚:两者各有侧重,是互补关系,而不是替代关系。
Anthropic 官方的说法:
MCP connects Claude to external services and data sources.
Skills provide procedural knowledge—instructions for how to complete specific tasks or workflows.
翻成一句话就是:
MCP 让 AI 能拿到数据,Skill 教 AI 怎么处理数据。
MCP 在做什么?
MCP 的三个核心组成:
- Tools(工具)
- Resources(资源)
- Prompts(提示)
LLM(大语言模型)本身并不执行函数,在 Agent 架构中,通常是由规划层(Planner / System Prompt) 决定“要做什么”。
Function Calling 负责在推理过程中,表达模型想要调用某个工具的意图。MCP 构建在 Function Calling 之上,进一步规范工具的描述方式、发现机制与调用协议。可以理解为:
- 规划层:决定做什么
- Function Calling:表达要调用哪个工具
- MCP:规范这个工具从哪里来、如何被发现、如何被调用
MCP 更关注的是:AI 与外部世界的连接能力。
同时需要注意:
MCP 本身并不提供推理能力,
它解决的是连接与通信的标准化问题。
是否正确使用工具、如何组合工具,仍然取决于模型能力与上层 Agent 设计。
Skill 在做什么?
Skill 可以以文件夹(Prompt 资产)形式存在,里面包含:
- 指令
- 脚本
- 资源
但 Skill 的价值并不在于“文件夹本身”,而在于:
这些 Prompt 资产能够被 Agent 识别、发现、加载和组合使用。
在架构层级上:Skill 是「提示 / 知识层」、MCP 是「集成层」。
Skill 通常分三层加载:
- 元数据(始终加载)
- 核心指令(按需加载)
- 支持文件(按需加载)
它解决的是:如何把经验、规范、做事方法沉淀下来并复用。
同时需要明确:
从能力本质上看,Skill 并不是新的模型能力,
而是对 Prompt 的工程化封装与组织升级。
提升的是稳定性与可维护性,而不是智能本身的跃迁。
什么时候用 MCP?什么时候用 Skill?
-
用 MCP
- 获取外部数据
- 调接口
- 操作系统、文件、数据库
-
用 Skill
- 内部规范
- 标准化实践经验
- 固定工作方式
- 代码风格 / 设计风格约束
网上也有人提到 Skill 可以用于指定工作流程,这块我还没有深入实践,后面有时间会再尝试。
一个对照式实战示例:同一个需求,不同方式怎么做?
假设现在有一个需求:从接口获取用户数据,并生成一个用户列表页面。
只用 Prompt
你可能会这样写:
请从接口 api.xxx.com/users 获取用户数据,并使用 Vue3 生成一个简洁风格的用户列表页面。
特点:
- 每次都要重复写
- 输出风格不稳定
因此,这种方式更适用于一次性需求。
使用 Skill 固化“页面生成方式”
创建一个 Skill,例如:
/frontend-ui-skill
├── metadata.json
├── instructions.md
├── style-guide.md
instructions.md:
所有页面使用:
- 浅色背景
- 中性色配色
- 卡片式布局
- Vue3 + Composition API
之后你只需要说:
生成用户列表页面
AI 会自动套用该 Skill 的规则。适用于前端规范化输出的场景。
使用 MCP 获取真实数据
通过 MCP 暴露一个工具:
getUsers()
你对 AI 说:
调用 getUsers
AI 会通过 MCP 获取接口数据。
MCP + Skill 组合
流程:
- MCP:调用 getUsers()
- Skill:规定页面结构和风格
- AI:生成页面代码
你只需要说:“生成用户列表页面”,背后完成了:
- 拿数据
- 套规范
- 产出代码
一个更大的共性
不管是 MCP、Prompt 还是 Skill,本质目标都一致:
降低模型幻觉,提高稳定性,提高效率。
但也必须明确:
MCP、Prompt、Skill 都无法从根本上消除模型幻觉,
它们能做的是:降低出错概率、提高一致性、减少不确定性。
因此,完全脱离人工审核的流程化自动生成,在工程上仍然是不可靠的。
它们更合理的定位是:
放大工程师能力的工具,而不是替代工程师。