大白话讲解SKILL和MCP

智能体是不知疲倦的机器人。SKILL 是给机器人看的说明书、工作指南,比如车辆维修手册。MCP 是给机器人用的工具,比如维修工具箱里的扳手、螺丝刀。

机器人的工作能力靠 SKILL 和 MCP 共同实现。只给工具 MCP,不给说明书 SKILL,机器人能力有限——就像一个普通人有扳手螺丝刀也修不了汽车发动机。反过来只有 SKILL 没有 MCP,机器人就成了”巧妇难为无米之炊”。

好在很多 SKILL 开头就会写清楚需要哪些 MCP、怎么安装这些 MCP。就像汽车维修手册前面写着”所需工具清单”和”工具购买渠道”。也有些 MCP 没有对应的 SKILL——大部分情况下 MCP 的名称已经足够让机器人知道怎么用了。就像你拿到一根吸管不需要说明书,看一眼就知道是做什么的。


什么是 SKILL

一句话定义

SKILL 就是一个文件夹,里面有一份写满了”怎么干活”的 Markdown 文件,外加可选的脚本、参考文档、模板等辅助材料。

打开任何一个 SKILL,你会看到一个 SKILL.md 文件,开头是元信息,后面是具体的操作步骤。就像你买宜家家具时附带的那张安装图纸——告诉你第一步拧哪个螺丝、第二步装哪块板。

Skill 长什么样

1
2
3
4
5
my-skill/
├── SKILL.md # 核心:元数据 + 操作步骤
├── scripts/ # 可选:可执行的脚本
├── references/ # 可选:参考文档
└── assets/ # 可选:模板、资源文件

SKILL.md 文件的前半段是 YAML 头,记录”我是谁、我干什么、我需要什么”:

1
2
3
4
5
6
7
8
---
name: pdf-processing
description: 提取PDF文字、填表单、合并文件。处理PDF时使用。
license: Apache-2.0
metadata:
author: example-org
version: "1.0"
---

后半段是纯文本操作指南——告诉机器人第一步做什么、第二步做什么、遇到问题怎么办:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 这个 Skill 什么时候用
当你需要处理 PDF 文件时。

## 操作步骤
1. 先用 `pdftotext` 提取文字
2. 如果需要填表单,用 `pdf-filler` 工具
3. 如果需要合并,用 `pdfunite`

## 常见坑
- 扫描件 PDF 需要先 OCR,不能直接提取文字
- 加密 PDF 需要先输入密码

## 验证方法
运行 `ls output.pdf` 确认文件生成成功

Skill 的核心理念:渐进式披露

机器人不需要一开机就把所有说明书读完。Skill 设计了三层加载:

  1. 第一层(启动时加载):只读 Skill 的 namedescription,约 100 个 token。机器人知道”我有这些说明书可用”,但不打开看内容;
  2. 第二层(任务匹配时加载):当用户说”帮我处理这个 PDF”,机器人才打开对应的 SKILL.md,读完整操作步骤,通常不超过 5000 token;
  3. 第三层(按需加载):如果操作步骤里引用了 references/api-docs.md,只在真正需要时打开那个文件。

这套机制意味着机器人可以随身携带 100 本说明书,但只有干活时才翻对应的那本。不干活的书不占脑容量。

一个真实例子:systematic-debugging

拿 Hermes Agent 自带的 systematic-debugging 这个 Skill 举例。它不教机器人怎么用某个工具,而是教机器人怎么思考——遇到 Bug 时该怎么排查:

  • Iron Law:不找到根因,不许动手修。
  • 四阶段:Phase 1 找根因 → Phase 2 找模式 → Phase 3 提假设并验证 → Phase 4 修根因。
  • 红线清单:如果脑子里冒出”先随便改改试试”,立刻 STOP,滚回 Phase 1。
  • 如果改了 3 次还没修好:别再改了,是架构问题,不是 Bug 问题。

这本”说明书”不会修任何一个具体的 Bug,但它让机器人学会了正确的修理姿势。就像驾校教练不帮你打方向盘,但教你什么时候看后视镜。

Skill 的行业标准

Skill 不是某一家公司的私有格式。它遵循 agentskills.io 开放标准,最初由 Anthropic 提出,现已被 Claude Code、GitHub Copilot、VS Code、Cursor、OpenAI Codex、Gemini CLI、Hermes Agent 等 30+ 个 AI Agent 产品支持。你写一份 Skill,可以在不同产品间复用。


什么是 MCP

一句话定义

MCP(Model Context Protocol)是连接 AI 和外部系统的”USB-C 接口”——一个标准协议,让 AI 可以调用任何外部工具,不管这个工具是本地文件系统、数据库、浏览器,还是远程 API。

为什么需要 MCP

传统方式下,每个 AI 应用要对接一个新工具,开发者就得单独写一套集成代码。100 个 AI 应用 × 100 个工具 = 10,000 套集成。MCP 把这个变成了 N + M 的关系:工具开发者按 MCP 标准写一个 Server,所有支持 MCP 的 AI 应用都能用它。

就像 USB-C 出现之前,手机、笔记本、充电宝各有各的接口。USB-C 统一后,一根线通吃所有设备。MCP 在 AI 世界里干的就是这件事。

MCP 怎么工作

MCP 架构分三部分:

  1. MCP Host:AI 应用本身(比如 Claude Desktop、Hermes Agent、VS Code)
  2. MCP Client:Host 内置的客户端,负责和各个 Server 维持连接
  3. MCP Server:一个个独立的”工具包”进程,暴露具体能力
1
2
3
用户 → AI 应用(Host) → MCP Client → MCP Server(GitHub)  → GitHub API
→ MCP Server(数据库) → PostgreSQL
→ MCP Server(浏览器) → Playwright

机器人不需要知道每个工具后面是什么。它只看到一个标准化工具列表,像这样:

1
2
3
4
mcp_github_create_issue    # 创建 GitHub Issue
mcp_github_list_issues # 列出 Issues
mcp_playwright_navigate # 浏览器导航
mcp_filesystem_read_file # 读文件

两种 MCP Server

Stdio 型(本地子进程):Server 跑在本地电脑上,通过标准输入输出和 AI 通信。适合文件系统操作、本地数据库等场景。配置起来只是一行命令:

1
2
3
4
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"]

HTTP 型(远程服务):Server 部署在云端,AI 通过网络连接。适合企业内部 API、SaaS 工具等场景:

1
2
3
4
mcp_servers:
linear:
url: "https://mcp.linear.app/mcp"
auth: oauth

现实世界的 MCP 应用

  • AI 直接操作你的 GitHub:创建 Issue、Review PR、合并分支,不需要你打开网页
  • AI 查询公司数据库:用自然语言”上个月销售额最高的 10 个产品”,背后是 MCP 连 PostgreSQL
  • AI 操控浏览器:打开网页、填表单、截屏,通过 @playwright/mcp 实现
  • AI 管理 Linear/Jira:创建任务、更新状态、查 Sprint 进度

SKILL 和 MCP 怎么配合

回到开头那个”说明书 vs 工具箱”的比喻,看一个真实配合案例:

场景:机器人帮你创建 GitHub PR

只有 MCP 没有 SKILL:

机器人看到工具列表里有 mcp_github_create_pull_request,但它不知道该填什么参数、分支命名规范是什么、commit message 要遵循什么格式。它只能胡乱尝试,出来的 PR 标题可能是 “fix stuff”。

只有 SKILL 没有 MCP:

SKILL 里写了”先创建分支,命名规则 feat/描述,commit 用 Conventional Commits 格式,然后 gh pr create“。但机器人没有 gh 工具,也没有 GitHub API 工具。它看着说明书干瞪眼——“巧妇难为无米之炊”。

SKILL + MCP 配合:

SKILL 写了完整工作流:

1
2
3
4
5
6
7
8
## 操作步骤
1. git checkout -b feat/描述
2. git add . && git commit -m "feat: 简要描述"
3. 使用 mcp_github_create_pull_request 创建 PR
- title: feat: 简要描述
- base: main
- body: 包含改动摘要和测试计划
4. 使用 mcp_github_request_review 请求审查

MCP 提供了第 3、4 步的精准工具。SKILL 告诉机器人第 3 步该填什么参数、走什么顺序。两者缺一不可。

什么情况不需要 SKILL

有些 MCP Server 的工具名称和参数已经足够自解释。比如:

  • mcp_filesystem_read_file(path="/tmp/data.csv")——不需要说明书
  • mcp_github_list_issues(state="open")——看一眼就懂

这就好比你不需要”吸管使用说明书”——工具本身的设计已经足够直观。

什么情况不需要 MCP

很多操作不需要 MCP,用 Skill 直接调终端命令就够了:

  • 搜索 arXiv 论文:curl + jq 走 API,Skill 写步骤,不用起 MCP Server
  • PDF 转文字:pdftotext 一行命令,Skill 写步骤,不需要 MCP
  • git 工作流:git 命令自带,Skill 写规范,不需要 MCP

原则:已有的系统命令能搞定的事,Skill 就够了。需要新”工具语义”(数据库连接、浏览器操控、持续运行的第三方 API 对接),才上 MCP。

总结

维度 SKILL MCP
是什么 说明书、操作手册 工具、工具箱
本质 Markdown 文本指令 运行中的服务进程
给机器人什么 告诉它怎么做 给它新工具
标准 agentskills.io 开放标准 Model Context Protocol
创建方式 写 Markdown,5 分钟 运行一个兼容 MCP 的 Server 进程
加载方式 按需渐进式加载,不占资源 后台维持连接,常驻内存
适合场景 工作流编排、专家知识传授 新能力接入、外部系统对接

两者不是竞争关系,是互补关系。 Skill 管过程(How),MCP 管能力(What)。能力不够先上 MCP,流程复杂再包一层 Skill。大多数真实场景里两者一起用——就像修车师傅既需要维修手册,也需要工具箱。