从 MCP 到 Agent Skills

什么是 agent skills?

Agent Skills 是一种轻量级、开放的格式,用于扩展 AI Agent 的能力和专业知识。本质上,一个 Skill 就是一个包含 SKILL.md 文件的文件夹

Agent Skills 的作用在于:

  • 专业知识封装:将特定领域的程序化知识(procedural knowledge)和公司/团队/用户特定的上下文打包
  • 按需加载:Agent 启动时只加载 Skill 的 namedescription,任务匹配时才加载完整指令
  • 可执行能力:可以包含脚本、工具,扩展 Agent 的实际操作能力
  • 版本化管理:Skills 就是文件,易于编辑、版本控制和分享

那么这里就有个问题,为什么有了 MCP 之后还需要 Agent Skills?

这个问题其实有过很多争论,有开发者评论说:"Skill 和 MCP 是两种东西,Skill 是领域知识,告诉模型该如何做,本质上是高级 Prompt;而 MCP 对接外部工具和数据。" 也有人认为:"从 Function Call 到 Tool Call 到 MCP 到 Skill,核心大差不差,就是工程实践和表现形式的优化演进。"

其实我还是觉得要从 MCP 和 Agent Skills 设计上区分他们到底有什么不同。

MCP 其实就是指的提供了一个远程的接口,可以用这个接口来接外部世界:能读取数据库、能访问 API、能执行命令行;

Agent Skills 更像一个操作手册,主要存在本地的文件里面,不需要调用外部接口,主要是用来告诉 AI 有那些领域知识,然后教 AI 如何正确、高效地使用这些手,按照什么步骤去完成特定任务。

除此之外,Agent Skills 解决了 MCP 无法解决的三个核心问题:

  1. 节省 token

    在使用 mcp 工具的时候,通常工具的定义(名字、参数、描述)全部塞进 AI 的提示词(Prompt)里,AI 才能知道怎么调用。这会极大地消耗 Token,可能占用数万个 token。据社区开发者反馈,仅加载一个 Playwright MCP 服务器就会占用 200k 上下文窗口的 8%,这在多轮对话中会迅速累积,导致成本飙升和推理能力下降。

    而对于 Agent Skills 来说通过渐进式披露(Progressive Disclosure)机制,智能体按需逐步加载,既确保必要时不遗漏细节,又避免一次性将过多内容塞入上下文窗口,来解决这个问题。

  2. 解决“会用工具但不懂业务”的问题(业务流程固化)

    AI 只懂 MCP 是不会理解业务的,比如 MCP 提供了 delete_database()(删除数据库)的工具。这很强大,但也危险。AI 可能因为你的一个模糊指令直接删库。这个时候就可以写一个 Skill,规定:

    当用户要求删除数据库时,必须严格执行以下流程:

    1. 先调用 MCP 工具 check_backup() 确认有备份。
    2. 再调用 MCP 工具 send_alert() 给管理员发通知。
    3. 最后才允许调用 delete_database()
  3. 降低开发门槛

    开发一个 MCP Server 需要后端开发能力,提供接口。Skills 只需要提供 SKILL.md 即可。比如你是资深运营,你可以写一个“小红书文案 Skill”,里面不需要代码,只需要写清楚:“第一步先分析竞品,第二步提取关键词,第三步套用这个模板…”。

所以综上 Agent Skills 至少为开发者带来三大核心价值:

  • 能力复用:一次编写,在 Copilot、Cursor、Claude 等多个 Agent 产品中使用,还可跨团队共享或通过 GitHub 公开发布。

  • 知识沉淀:将团队最佳实践固化为版本化的 Skills,如代码审查规范、部署流程、数据分析模板等,确保工作流程的一致性。

  • 提升效率:通过明确的指导让 Agent 更准确地执行复杂任务,减少试错和修正,提供一致的输出质量。

设计理念

Agent Skills 最核心的创新是渐进式披露(Progressive Disclosure)机制。AI 在使用 Agent Skills 的时候并没有将整个知识库加载到人工智能有限的上下文窗口中,而是以智能的、高效的层级方式加载信息。

  • 第一层:元数据(Metadata):首先只看到每个可用Agent Skills的名称和描述,也就是 Frontmatter buff。这种轻量级信息使其能够快速识别哪些技能可能与用户的请求相关,而不会消耗大量资源。
  • 第二层:技能主体(Instructions):一旦确定了相关技能,AI 就会读取主 SKILL.md 文件。该文件包含执行任务的分步指令和核心逻辑。
  • 第三层:附加资源(Scripts & References):如果说明中提到了其他文件(例如用于数据验证的 Python 脚本或报告模板),AI 会根据需要访问这些特定资源。

这种分层方法使得整个 Agent Skills 系统具有极高的可扩展性。关键在于,当Agent Skills执行脚本时,代码本身永远不会进入上下文窗口;只有脚本的输出才会进入。

社区开发者分享的实践案例充分证明了渐进式披露的威力。在一个真实场景中:

  • 传统 MCP 方式:直接连接一个包含大量工具定义的 MCP 服务器,初始加载消耗16,000 个 token
  • Skills 包装后:创建一个简单的 Skill 作为"网关",仅在 Frontmatter 中描述功能,初始消耗仅500 个 token

如何实现一个

一个最简单的 agent skill 其实只需要包含一个 SKILL.md 文件即可,其他的 scripts、 references、assets 都是可选的。

my-cool-skill/          <-- 技能文件夹
├── SKILL.md            <-- 核心文件:包含元数据和指令(必须)
├── scripts/            <-- (可选) 包含 Python/Bash 脚本
│   └── analyze.py
└── templates/          <-- (可选) 包含模板文件
│   └── report.md
└── assets/             <-- Optional: 一些模版资源

编写 SKILL.md

文件内容分为两部分:YAML 头信息 (Frontmatter)Markdown 正文

A. Frontmatter 头信息(必填)

Frontmatter 必须用 — 包裹起来,像下面这样,最短可以只包含 name 和 description 两个字段:

---
name: skill-name
description: A description of what this skill does and when to use it.
---

name 字段规则

  • 长度:1-64 字符
  • 字符:仅允许小写字母、数字和连字符 (a-z, -)
  • 不能以连字符开头或结尾
  • 不能包含连续的连字符 (--)
  • 必须与父目录名完全一致

description 字段规则

  • 长度:1-1024 字符
  • 应说明技能的功能和使用时机
  • 包含关键词帮助 Agent 识别适用场景

包含可选字段:

---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents.
license: Apache-2.0
metadata:
  author: example-org
  version: "1.0"
---

B. 正文 (Instructions)

这是 AI 加载技能后看到的具体操作指南。包括步骤、规则、输入输出格式等。

比如我想要写个示例:

构建一个“代码审查专家”技能。
假设你想创建一个技能,专门用来按你团队的风格审查 Python 代码。

那么我们可以写一个这样的 SKILL.md

---
name: python-code-review
description: 当用户要求审查 Python 代码,或者需要检查代码质量、寻找 bug 时使用此技能。不要用于其他语言。
---

# Python Code Review Guidelines

作为 Python 代码审查专家,请遵循以下步骤审查代码:

## 1. 核心原则
- **类型提示 (Type Hints)**: 所有函数必须包含参数和返回值的类型提示。
- **文档字符串 (Docstrings)**: 使用 Google 风格的文档字符串。
- **错误处理**: 检查是否使用了裸露的 `except:`,必须捕获特定异常。

## 2. 审查清单
请按以下顺序检查代码:
1. 运行静态分析逻辑(如果在 scripts/ 文件夹中有 lint 脚本,请优先参考)。
2. 检查变量命名是否符合 snake_case。
3. 寻找潜在的 N+1 查询问题(如果涉及数据库)。

## 3. 输出格式
请以以下格式输出审查报告:

**🔍 审查摘要**
- 评分: [1-10]
- 主要问题: [摘要]

**📝 详细建议**
| 行号 | 问题 | 建议修改 | 优先级 |
|------|------|----------|--------|
| 12   | 缺少类型提示 | `def func(a: int) -> str:` | 高 |

最佳实践 (Best Practices)

为了让 Skill 更聪明、更好用:

  1. 精确的 Description: AI 只有在 description 与用户请求匹配时才会加载这个技能,尽量应包含:

    • 动作关键词:split, extract, convert, merge
    • 领域关键词:PDF, document, pages
    • 场景关键词:when you need to divide, when working with
    ❌ 坏的写法: "一个帮助代码的工具"
    ✅ 好的写法: "当用户需要根据 PEP8 标准审查 Python 代码并生成表格报告时使用。"
  2. 提供清晰的示例,在 SKILL.md 正文中提供:

    • 常见用例的示例
    • 不同参数组合的效果
    • 预期的输出格式
  3. 原子化: 一个 Skill 最好只做一件事(例如:一个 Skill 做代码审查,另一个 Skill 做文档生成),不要把所有功能塞进一个文件。

  4. 对于复杂的 Skill,将详细文档分离,可以使用 References 目录:

    data-analysis/
    ├── SKILL.md           # 简要说明和快速开始
    ├── scripts/
    │   └── analyze.cs
    └── references/
       ├── REFERENCE.md   # 详细 API 参考
       ├── examples.md    # 更多示例
       └── algorithms.md  # 算法说明

安装和使用 Agent Skills

步骤一:下载

Agent Skills 和 MCP 一样都是 anthropics 公司提出来的,所以他们也提供了很多好用的 skills 供大家使用,如果选择将官方 Skills 安装到当前项目,就在终端输入这条命令:

openskills install anthropics/skills

安装成功后,你就会在Cursor、Trae等工具的文件管理区看到 .claude/skills 的文件夹。

当然也可去下面三方的收集网站上面下载别人写好的 skills:

https://skillsmp.com

https://agentskills.so/

步骤二:配置

先在项目根目录创建一个 AGENTS.md 文件,然后运行

openskills sync

确认后按回车键,你选择的 Skills 就会写进之前空白的 AGENTS.md 文档中。它将作为 Cursor、Trae 等 Coding Agent 接下来使用 Skills 的指导文件。

步骤二:调用

Skills 是可以被自动调用的,如果你想手动调用,可以直接在提示词中指定要调用的具体 Skills,比如:

调用 frontend-design skills,用HTML开发一个视频剪辑软件的SaaS介绍页

最后

最后在举个例子 MCP 如何协同 Agent Skills 一起完成工作。想象一下要实现一个自动化的金融分析代理:

  • MCP 层: IT 部门将内部财务数据库和报表 API 以安全的 MCP 服务器的形式对外开放。这使得 AI 能够直接访问财务数据并生成文件。
  • Agent Skill 层:该技能包含财务的领域知识,包含公司专有分析方法的精确分步说明。它告诉 AI 要查询哪些数据库表(通过 MCP 工具)、如何执行特定计算、如何构建分析以及最终演示文稿应采用何种格式。

在这种情况下,MCP 处理底层标准化的工具调用任务,而Agent Skills负责协调高层智能工作流程。 Agent Skills是一种可重用的资产,它捕捉了分析师的独特专业知识,使其能够立即扩展。这种强大的组合使开发人员能够构建健壮的系统,其中任务逻辑与其所用工具的实现完全分离。

Reference

https://agentskills.io

https://agentskills.so/

https://skillsmp.com

https://www.cnblogs.com/sheng-jie/p/19381647

https://zhuanlan.zhihu.com/p/1986802048608527579

https://www.zhihu.com/question/1890546618509538123

https://agentskills.so/skills-blogs/agent-skills-compare-mcp