MCP 与 Skill 两种 Agent 工具机制的设计思路
它们都用于,但在上存在本质差异。
MCP 与 Skill 的区别:两种 Agent 工具机制的设计对比
在构建 Agent 系统时,有两类工具机制:
- Skill(技能):以 Claude Skills 为代表
- MCP(Model Context Protocol):以协议化工具调用为核心
它们都用于扩展大模型的能力边界,但在使用方式、系统假设、以及 token 成本上存在本质差异。
一、Skill 是什么?
Skill 的本质
Skill 本质上是一个“可复用的指令模板”。
-
通常以
SKILL.md存在 -
使用自然语言描述:
- 任务目标
- 操作步骤
- 注意事项
-
面向的是 模型的行为引导(Instruction)
它并不是一个“函数”,也不是一个“严格的工具接口”,而是:
一段在特定时机注入到上下文中的 Prompt
Skill 是如何被使用的?
Skill 的使用过程可以概括为 两阶段模型认知:
阶段一:只暴露“技能目录”
在对话或 Agent 启动时,模型看到的通常只是:
You have the following skills:
- report-gen: Generate structured reports
- db-migrate: Help migrate database schemas
- code-review: Review code changes
此时模型不知道技能的具体细节,只知道:
- 技能名称
- 简要用途
阶段二:按需加载 Skill 内容
当模型判断需要某个 Skill 时:
skill(name="db-migrate")
系统才会把 db-migrate/SKILL.md 的完整内容注入上下文:
Steps:
1. Read current schema
2. Identify breaking changes
3. Generate migration plan
...
Skill 解决的是什么问题?
Skill 解决的是:
- Prompt 过长、重复
- 操作流程难以复用
- Agent 行为不可控
它的核心思想是:
“让模型先做判断,等它确认要用,再告诉它细节。”
二、MCP 是什么?(Model Context Protocol)
MCP 的本质
MCP 是一种 协议级的工具描述机制。
它不是 Prompt 技巧,而是:
“模型如何理解外部能力”的统一接口规范
在 MCP 中,一个工具通常被描述为:
- 工具名称
- 功能描述
- 输入参数 schema(类型、必填项)
- 输出结构 schema
- 错误语义
本质上,它更接近 函数签名 + API 契约。
MCP 是如何被使用的?
与 Skill 不同,MCP 采用的是 前置能力声明。
在对话或 Agent 启动时,模型会直接看到完整的工具定义,例如(示意):
{
"name": "create_issue",
"description": "Create a GitHub issue",
"inputSchema": {
"repo": "string",
"title": "string",
"body": "string"
},
"required": ["repo", "title"]
}
模型在推理开始之前,就已经完全知道:
- 能不能用这个工具
- 需要哪些参数
- 返回什么结构
MCP 解决的是什么问题?
MCP 解决的是:
- 工具调用不稳定
- 参数 hallucination
- 多模型 / 多 Agent 行为不一致
- 无法进行自动校验与编排
它的设计目标是:
“让模型在 reasoning 阶段,就像调用函数一样理解工具。”
三、Skill 与 MCP 的差异
设计目标不同
| 维度 | Skill | MCP |
|---|---|---|
| 核心目标 | 引导行为 | 精确定义能力 |
| 面向对象 | Prompt / 人类理解 | 系统 / 协议 |
| 工具语义 | 软约束 | 强约束 |
上下文注入策略不同
| 维度 | Skill | MCP |
|---|---|---|
| 注入时机 | 按需(Lazy) | 预先(Eager) |
| 初始上下文 | 仅技能摘要 | 完整工具定义 |
| 细节暴露 | 延迟 | 即时 |
四、为什么 MCP 更消耗 Token?
在理解前面的差异后,token 成本的来源就非常清晰了。
MCP 描述的是“能力边界”,不是“操作提示”
- Schema
- 类型
- 结构
- 错误条件
这些内容 天然比自然语言指令更长。
MCP 必须在推理前完整可见
模型如果不知道:
- 参数结构
- 必填字段
就无法在 reasoning 阶段判断是否可以调用工具。
因此 MCP 不能延迟加载。
MCP 在为“系统稳定性”付出 token 成本
MCP 用 token 换来了:
- 更高 tool-call 成功率
- 更低 hallucination
- 可自动验证
- 可跨模型复用
五、Skill 更省 token,但代价是什么?
Skill 的低 token 原因来自:
- 延迟加载
- 非结构化描述
- 强 prompt 依赖
相应的代价是:
- 工具触发不稳定
- 参数不严谨
- 无法静态分析
六、结论:不是谁更好,而是谁更适合
- Skill 适合:
- 流程型任务
- 写作 / 分析 / 思维模板
- Prompt 驱动 Agent
- MCP 适合:
- 数据库 / Git / Infra
- 高风险操作
- 需要确定性的系统集成
真正成熟的 Agent 系统,往往是 Skill + MCP 的混合架构。
更多推荐




所有评论(0)