Agent Skills 是一套把「某类任务的专业知识」打包成文件夹、由智能体按需加载的开放格式;MCP(Model Context Protocol)则是让大模型连接外部工具与数据的开放协议。两者不是替代关系:MCP 解决「模型怎么调工具、取数据」,Skills 解决「模型遇到某类任务时该按什么流程做」。理解这点,就不会把二者混为一谈。下文先拆解 Skills 的构成,再放一张对照表厘清边界。
一、Agent Skills 的基本构成
Anthropic 在 2025 年把 Skills 作为开放标准发布,任何组织或个人都能按同一格式编写、跨平台复用。一个 Skill 本质是一个目录,基础可用形态只需要一个 SKILL.md 文件。
skill-name/
SKILL.md # 必需:名称、描述与执行说明
reference.md # 可选:深度参考资料
scripts/ # 可选:可执行的辅助脚本
main.py
resources/ # 可选:模板、数据等附加资源
template.xlsx
SKILL.md 顶部用 YAML 前置元信息声明 name 与 description 两个必填字段,正文写功能说明、步骤、示例与资源索引。智能体在启动时只把元信息(名称+描述)塞进上下文做语义匹配,命中任务才读取全文,需要更深内容再逐级拉取参考文件与脚本——这叫「渐进式披露」。
1.1 为什么需要渐进式披露
上下文窗口有限。把所有技能说明一股脑塞进每次请求,既浪费 token 又稀释注意力。按「元数据 → 全文 → 资源 → 脚本」四级只加载必要部分,模型在大上下文下仍跑得快。脚本尤其关键:排序、抽取表单字段这类确定性操作,用代码跑比让模型逐 token 生成更稳、更省。
二、Skills 与 MCP 的核心区别
MCP 走的是客户端—服务器架构:一个 MCP 服务器把某个数据源或能力(工具、资源、提示模板)按统一接口暴露出来,智能体侧的 MCP 客户端用 JSON-RPC 与它通信。它解决的是「连接」,好比给模型装上一堆即插即用的外设。
Skills 解决的是「封装」:把一类任务的流程性知识(步骤、约束、模板、脚本)收进一个目录,让模型遇到对应场景时直接套用。两者关注点完全不同。
| 维度 | Agent Skills | MCP |
|---|---|---|
| 定位 | 任务知识的封装格式 | 工具/数据的连接协议 |
| 形态 | 文件夹(SKILL.md + 资源) | 服务器 + 客户端 |
| 通信 | 无独立传输,靠上下文加载 | JSON-RPC 2.0 |
| 暴露内容 | 指令、脚本、参考资源 | Tools、Resources、Prompts |
| 加载时机 | 匹配任务时按需读 | 客户端连接服务器后列出 |
| 跨平台 | 同一格式到处用 | 同一服务器被多客户端复用 |
| 关注问题 | 模型「怎么做」某类事 | 模型「怎么连」外部系统 |
三、两者如何协作
把二者放一起看,关系就很清楚:Skills 告诉模型「处理 PDF 表单时该调哪个脚本、按什么模板输出」,MCP 则提供「这个脚本要读写哪个文件系统、连哪个数据库」的通道。一个管流程,一个管连接。
- 智能体扫描可用 Skills,靠
description命中当前任务; - 加载对应
SKILL.md,按其中步骤规划行动; - 步骤里若需访问外部系统,经由已连接的 MCP 服务器取数或执行;
- 需要确定性计算时,直接运行 Skill 自带的脚本,结果回写上下文。
3.1 一个基础 SKILL.md 示例
---
name: hotspot-summary
description: 当需要对社交平台热点事件做结构化摘要与风险分级时调用
---
# 热点摘要技能
收到热点原文后,按以下顺序处理:
1. 抽取实体、来源平台与发布时间;
2. 用 resources/prompt.json 中的模板生成三段式摘要;
3. 调用 scripts/score.py 计算风险分,输出 high/mid/low;
4. 把结果按 JSON 回传,不做额外发挥。
这个文件本身不依赖任何传输协议,换到支持 Skills 的任意平台都能被识别,这正是「可移植」的含义。
四、选型上常见的误判
把 Skills 当成「另一个 MCP」是常见的误解。MCP 标准化的是传输与握手,它不定义模型该按什么流程思考;Skills 标准化的是知识封装,它不负责建立连接。模型调 MCP 工具前,往往要先靠某个 Skill 决定「为什么调、调完怎么用」。另一个误判是认为 Skills 必须带代码——纯指令型 Skill 只要 SKILL.md 也能工作,脚本是可选增强项。实际落地时先确认要补的是连接能力还是流程知识,再决定上 MCP 还是写 Skill,避免两套标准互相错位。该格式发布后,多家平台相继支持同一结构,编写一次即可多处加载,迁移成本被压到很低。
五、结合热点监控举个例子
把这套关系落到 AI 热点监控工具上看就很具体。系统要判断一条社交平台话题是否值得告警,先用 grade-risk 这个 Skill 决定「按什么维度打分、怎么算高/中/低」;打分本身确定性高,就交给 Skill 目录里自带的 score.py 跑,不靠模型逐字生成。Skill 解决了「怎么做分级」。
但 score.py 要读历史热度、要写回结果库,这些外部系统不归 Skill 管。它们由 MCP 服务器暴露成统一接口,模型侧客户端连上去就能取数、回写。于是链路变成:Skill 提供流程与脚本,MCP 提供连接与数据通道,二者各管一段、互不越界。
这种分工的好处是替换成本极低。换数据源时只动 MCP 服务器,Skill 一行不改;换分级口径时只改 Skill 的资源文件,MCP 连接不受影响。把「流程知识」和「系统连接」拆成两个正交的标准,正是 Skills 与 MCP 能长期共存、互相放大的原因。
常见问题(FAQ)
Q1:Skills 和 MCP 谁替代谁?
都不替代。MCP 管连接,Skills 管流程,两者互补。
Q2:一个 Skill 必须含脚本吗?
不必。仅 SKILL.md 也能构成可用技能,脚本是可选项。
Q3:Skills 能跨平台复用吗?
能。同一文件夹格式被多家平台识别,编写一次多处加载。