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 的混合架构。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐