其实我觉得,Skills和之前的MCP Tools说白了没什么太大区别,都是让大语言模型(LLM)增加额外的能力。只是两者在定义和使用上有些不同而已。
根据Anthropic的官方说法:
Skills就像一组包含指令、脚本和资源的文件夹,Claude能够动态加载这些内容,从而在特定的任务上提升表现。它们教会Claude如何以可重复的方式完成特定任务,比如按照公司标准创建文档、分析数据或自动化个人事务。
换句话说,Skills是用来扩展Claude功能的一种模块化能力。每个Skill里都打包了指令、元数据,还有可选的资源(比如脚本和模板),当任务需要时,Claude会自动调用这些内容来执行。
所以说,Skills和MCP Tools其实都是LLM的外挂,但Skills的定义更复杂一些。

接下来,我们具体看看Skills的文件系统是怎么设计的。以PDF Skill(让模型具备PDF文档理解和编辑能力)为例。这个文件夹里得有一个SKILL.md文件,这个文件开头必须是YAML frontmatter,里面包含一些必要的元数据,比如name(名称)和description(描述)。

大家可以看到,这个YAML frontmatter其实就是对这个Skill的简要说明,跟Tool的说明挺像的。在启动时,Agent会把所有已安装Skill的名称和描述预先加载到系统提示词(system prompt)中。这种轻量化的方式允许你安装很多Skills而不占用上下文空间,Claude只需知道每个Skill的存在和何时使用它。
Metadata只是SKILL.md文件的第一层内容。如果用户请求的内容和这个Skill的描述匹配,Claude会通过Bash从文件系统中读取SKILL.md,并加载第二层内容:Instructions。Instructions是SKILL.md的主体部分,使用Markdown格式。它详细列出了使用这个能力的工作流、最佳实践以及使用指导等信息。
不过如果Skill的复杂度很高,可能会有太多内容无法放进单个SKILL.md文件,因为LLM的上下文长度是有限的。这个时候就可以在Skill目录中捆绑额外的文件,并在SKILL.md中引用它们。这样额外的文件就构成了第三层内容,Claude只会在需要时加载这些文件。比如在PDF Skill中,SKILL.md引用了两个额外文件(reference.md和forms.md)。通过把填写表单的指令放到单独的forms.md文件,可以保持核心Skill的简洁,同时Claude只有在需要填写表单时才会去读取forms.md。

更具体一点,第三层的内容就是捆绑的Resources and code,它们只有在需要的时候才会被加载。

这些内容有三种类型:
- 指令:额外的Markdown文件(比如FORMS.md、REFERENCE.md),包含专业指导和工作流程;
- 代码:可执行脚本(如fill_form.py、validate.py),Claude通过Bash来运行;这些脚本提供确定性操作,却不占用上下文;
- 资源:参考材料,比如数据库架构、API文档、模板或示例。
这种分层的设计是让Skills灵活且可扩展的核心理念。就像一本结构清晰的手册,先有目录,再有具体章节,最后才是详细的附录,Skills让Claude只在需要时加载信息,这样可以减轻LLM的上下文负担。

下面是一个Claude如何加载并使用PDF Skill的示例:
- 首先,上下文窗口里包含核心系统提示和每个已安装技能的元数据,以及用户的初始消息;
- Claude通过调用Bash工具读取pdf/SKILL.md来触发PDF技能;
- Claude选择读取技能捆绑的forms.md文件;
- 最后,Claude在加载了PDF技能的相关说明后,开始执行用户的任务。

PDF Skill里还包含一个预先编写的Python脚本extract_fields.py,用于读取PDF并提取所有表单字段。Claude可以运行这个脚本,而不需要把脚本或PDF加载到上下文中。由于代码是确定性的,这个工作流程的稳定性和可重复性都很高。

从上面的Skill定义和使用可以看出,Skill与LLM是紧密配合的,期间需要多次交互。这和MCP Tool是有区别的。MCP Tool的定义简单明了,而且需要一次性加载到LLM的系统提示词中:

所以,MCP Tool适合那些非常具体的能力配置,比如阅读PDF文档并返回具体内容,这种情况就比较适合MCP Tool,Agent调用这个MCP Server,然后Server执行任务返回结果。但是如果LLM需要的能力比较复杂,很难通过一个简单的工具说明来实现,那么采用这种分层设计的Skill就更合适了。
官方实际上也给出了Skills和MCP的区别说明:
MCP将Claude连接到外部服务和数据源,而Skills则提供流程性知识,即完成特定任务或工作流的操作指令。两者可以结合使用:MCP提供工具访问能力,Skills教Claude如何高效使用这些工具。


Skills与MCP Tools的比较非常有意思,确实看起来都是扩展LLM能力的方式,但Skills的模块化设计让人觉得更灵活。期待Claude在实际应用中的表现。
Skills的模块化设计真是个好主意,能够灵活应对不同的任务需求,提升了Claude的工作效率。
通过具体案例理解Skills的结构,感觉对如何使用和管理LLM的能力提升有了更清晰的认识。
文章对Skills的深入分析让我意识到,如何合理组织文件和指令是实现高效操作的关键。
对Skills的详细讲解让我了解到,模块化设计不仅提高了Claude的灵活性,还能有效减少重复劳动,真是个实用的创新。
文章清晰地阐述了Skills的文件系统设计,尤其是如何通过模块化提高Claude的功能,令人印象深刻。
Skills的动态加载机制真是个创新,能根据具体任务优化Claude的表现,未来的应用场景很广阔。
Skills的设计不仅提升了Claude的功能,还让任务执行变得更加高效,尤其是动态加载的机制,真是太实用了。
对Skills的介绍让我对Claude的能力扩展有了新的认识,模块化设计让功能实现更灵活,确实是个值得关注的方向。
Skills的设计理念让我对Claude的使用方式有了更深刻的理解,尤其是动态加载的部分,让任务处理变得更为智能和高效。
对Skills的理解让我意识到,模块化设计不仅让Claude的功能更强大,还能根据任务需求进行灵活调整,提升了使用效率。
Skills的模块化设计让我意识到,Claude在处理复杂任务时的表现可以更加灵活,而且在资源管理上也更加高效。