Agent Skills是技能定义规范(菜谱),MCP是工具连接协议(厨房),两者协同使用;Skills以SKILL.md为核心,可跨平台复用(Claude Code、Cursor、Codex等);skill-creator可自动生成技能文件。
你有没有遇到这种情况:同一个东西已经跟 Claude 解释过五六遍了?团队的 commit 格式、公司生成 PDF 报告的方式、站会格式的具体步骤。每次开新对话,你又把同一段指令粘贴进去,因为模型根本不记得前面四五次说过什么。
问题在于:这不是模型的能力限制,是封装问题。知识明明已经在你脑子里了,只是没有存放的地方,让 Claude 需要的时候能自动调取。
这就是 Agent Skills 要填补的空白。Anthropic 在 2025 年 10 月 16 日发布了这个功能,思路简单得令人耳目一新:一个 skill 就是一个文件夹,你把它交给 agent,只有任务需要时它才会读取这个文件夹。不需要微调,不需要插件 SDK,不需要反复解释。
让我们从第一性原理出发,把这事儿拆解清楚:skill 实际上是什么、怎么运作的、怎么用(以及怎么生成自己的)、为什么它和 MCP server 不是竞争关系而是不同的东西。
先把营销话术放一边。从根本上讲,一个 Agent Skill 就是文件系统上的一个目录。它的根目录放一个必需文件 SKILL.md,这就是整个 skill 的最小可行形态。
Anthropic 自己的比喻最到位:skill 就像你给新队友写的入职指南——他们完成某项具体工作所需的说明、参考资料,有时候还有脚本,而且要按照你们团队的方式来。

SKILL.md 有两部分。首先是一段 YAML frontmatter,包含两个必需字段:name 和 description。其次是正文,用普通 markdown 写,告诉 Claude 怎么完成这个任务。
---
name: pdf-processing
description: "Extract text and tables from PDFs, fill forms, merge documents. Use when working with PDF files or forms."
---
# PDF Processing
## Quick start
Use pdfplumber to extract text...
这个 description 字段承担的工作比看起来多得多。它是触发器,Claude 用它来匹配你的请求,判断这个 skill 是否相关。所以必须同时说明 skill 做什么、以及什么时候用它。描述模糊的话 skill 就永远不会触发。(规则很严格:name 最多 64 个小写字母和连字符,description 最多 1024 个字符。)
除了 SKILL.md,一个 skill 可以打包任务所需的任意内容:额外的 markdown 文件(FORMS.md、REFERENCE.md)、可执行脚本(fill_form.py),或者原始资源如 schema 和模板。一样都不强制要求——最简单可用的 skill 就是一个文件。
这里就开始有意思了。如果你安装了二十个 skill,你可能以为在打完一个字之前,Claude 就会把这二十本手册全塞进上下文窗口,成本和注意力都是灾难。
skill 要解决的根本问题就是上下文的经济性,机制叫做渐进式披露(progressive disclosure)。Claude 分三层加载信息,每层在不同时间点触发。
元数据(始终加载)。启动时,Claude 只读取每个已安装 skill 的 name 和 description,约为 100 个 token。就是这些。二十个 skill 总共消耗几千 token,Claude 知道了有什么可用,但不知道细节。
指令(触发时加载)。当你的请求匹配到某个 skill 的 description,Claude 执行一条 bash 命令从磁盘读取完整的 SKILL.md 正文。这时真正的指令才会进入上下文窗口,保持在 5k token 以内。
资源和代码(按需加载)。打包的文件在 Claude 真正打开之前零 token 消耗。需要 sales schema 但不需要 forms 指南?Claude 只读 schema。一个 skill 可以附带几十个参考文件,而不产生任何上下文损耗——因为那些任务根本不会触碰的文件就是零开销。

脚本处理是我最喜欢的一部分。当 skill 包含 validate_form.py 时,Claude 通过 bash 运行它,只得到输出结果("Validation passed" 或者一个错误),永远不会看到代码本身。因为代码是确定性的,这一步骤是一致的、可重复的,比让模型现场重新生成等价逻辑要便宜得多。在实际系统中,「思考它」和「直接跑脚本」之间的差距,往往就是可靠和不可靠之间的差距。
从实用角度来说,使用 skill 就两件事:放到 Claude 能找到的地方,让 description 去触发匹配。你不需要按名称调用 skill。当你的请求匹配时,Claude 自动就会 pick it up。
skill 放哪里取决于你用的是哪个界面:
~/.claude/skills/(个人)或 .claude/skills/(项目)。纯文件系统,不需要上传。/v1/skills 端点上传,用 skill_id 引用,在代码执行工具内运行。一个需要诚实说明的注意事项:skill 在不同界面之间不同步——上传到 claude.ai 不会自动出现在 API 上。同一个格式,分开安装。开箱即用,Anthropic 自带四个预构建文档 skill(PowerPoint、Excel、Word、PDF),还有来自 Canva、Notion、Figma、Atlassian 的合作 skill。
手工写 SKILL.md 很容易微妙地出错:description 太弱永远不触发、正文臃肿、打包的文件没有引用。所以 Anthropic 做了一个 skill,它的全部工作就是构建其他 skill:skill-creator。
向它提出需求,它会询问你工作流程,生成正确的文件夹结构,写出一个格式正确且触发优化的 SKILL.md,并打包你指向的资源。这是把一个你不断口述的重复流程变成 Claude 自动就懂的东西的最快方式。很 meta,但确实有用。
这是被问得最多的问题,所以直接消除困惑:Agent Skills 和 MCP 不是竞争对手。它们在不同的层次运作,我见过最清晰的思维模型是这样的:skill 是菜谱,MCP 是厨房。

skill 是静态的程序性知识。是躺在磁盘上的 markdown 和文件。它告诉 agent 要做什么以及怎么做——你的规范、你工作流程、你的步骤。它自己什么都不运行。
MCP(Model Context Protocol)是一个实时连接。是一个建立在 JSON-RPC 之上的客户端-服务端协议,将 agent 插入外部工具和数据,通过一个拥有自己身份验证和持久状态的运行中进程。它给 agent 提供真正执行任务的基础设施:查数据库、调 API、读工单。
让区别彻底明朗化的判断标准是:这个东西在每次调用之间会变化吗?一个实时的 Salesforce 连接、有新行的数据库、一个认证过的会话——那是 MCP。一个几周都稳定不变的工作流——那是 skill。
还有一个成本角度的考量。加载 50 个 MCP 工具及其完整 schema 可能在开始之前就吃掉约 8000 个 token;而一个教同样模式的 skill 可能只花 400 token。这不是说 MCP 不好,而是在说要因事制宜:MCP 用于实时、已认证、有状态的连接,skill 用来教一个稳定的流程。更理想的是把两者组合起来——skill 可以教 agent 怎么使用 MCP server 暴露的那些工具,而这也正是 Anthropic 官方指引所指的方向。
这里有个细节容易被忽略:这个格式不是专有的。Anthropic 把 SKILL.md 作为开放标准发布,生态采用得很快。同一个 skill 文件现在无需修改就能跨 Claude Code、OpenAI 的 Codex、OpenCode、Cursor 和 Gemini CLI 工作——二十多个 agent 都能读它。写一次 skill,它就跟着你走,不管你在用哪个工具或模型。你的专业知识不再锁定在某个供应商。
这种可移植性也意味着社区 skill 市场在增长。像 SkillHub 这样的目录收录了数千个可以直接秒级引入的现成 skill——这是看一个好的 SKILL.md 是什么样的的好地方。
但这里有一个关键警告,我不会粉饰:安装 skill 就是执行信任。skill 可以在你机器上运行代码和调用工具,所以一个坏的 skill 是安全问题,不是糟糕的下载。恶意和劣质 skill 确实存在。在你从某个目录安装任何东西之前,打开 SKILL.md 和每个打包的脚本读一遍,就像在运行别人软件之前要审查它一样。
从实际角度说,最安全的路——也是我默认走的——是用 skill-creator 自己构建 skill。你得到恰好想要的行为,而且没什么要审查的因为是你自己写的。去市场浏览找灵感;真正依赖的那些自己写。
Agent Skills 免费吗?
格式本身是免费开放的。在 Claude Code 中创建 skill 不花一分钱,就用你平时的用量。在 claude.ai 上,自定义 skill 需要付费计划(Pro、Max、Team 或 Enterprise)并启用代码执行,通过 API 则按常规支付底层代码执行和 token 费用。
构建 skill 需要会写代码吗?
不需要。skill 可以是纯 markdown,用大白话写说明就行。脚本是可选的,只在确定性代码比让模型现场发挥更好的地方才用。而且 skill-creator 会通过对话帮你搭好整个架子。
skill 运行的时候我的数据去哪了?
取决于你用的界面。在 API 上,skill 在没有网络访问的沙箱容器中执行,所以它们不能自己对外打电话。在 Claude Code 中它们和你机器上任何程序享有同等的网络访问权限,能力更强也值得尊重。需要注意的是:Agent Skills 不在零数据保留协议范围内,执行数据遵循 Anthropic 的标准保留政策。
skill 和一个好的 prompt 有什么区别?
prompt 是会话级别的。它存活和消亡于一次聊天。skill 是可复用的,按需加载到每次对话中,不需要你粘贴任何东西。而且得益于渐进式披露,你可以安装很多 skill 而几乎不产生任何固定上下文成本。
退后一步看,更大的图景就浮现出来了。有一段时间,让 AI 真正对你的工作有用,意味着要么微调模型,要么自己写集成。Skills 把这件事压缩成任何人都能做的事:把你的工作方式写下来,放进一个文件夹,一次搞定。
这是一个安静但真实的转变。价值从模型的原始能力转移到你打包在它周围的程序性知识——你的 commit 规范、报告格式、安全审查步骤,让工作真正属于你的那些东西。
问问你自己,每周都要跟 Claude 重新解释什么。那就是你的第一个 skill。用 skill-creator 处理它,下次看 Claude 自己就 pick it up。然后在你需要底层实时工具时用 MCP。先建菜谱;等做饭真的需要厨房的时候,厨房自然会来。
P.S. 如果你想直接看源头,去读 Anthropic 的 Agent Skills 工程深度解析,去浏览 anthropics/skills 仓库里的开源示例。
原文最初发表于 blog.stroutsluvaris.gr。