由浅入深理解 Skills
一、前言Skills是Anthropic推出的模块化能力包系统通过渐进式披露机制实现按需加载大幅提升Token效率。Skills正在成为AI Agent能力扩展的事实标准具有跨平台兼容性和低创作门槛优势适合有固定工作流、团队协作和Token消耗大的用户使用。二、理解Skills1、Skill 是什么Skills是模块化的能力包包含指令、脚本和资源让Claude在需要时自动加载和使用。“模块化”Skills是一个个独立的文件夹每个Skill做一件事。比如生成PPT是一个Skill审校文章是另一个Skill。“能力包”每个Skill文件夹里可以包含SKILL.md核心指令文件必需scripts/可执行脚本可选references/参考文档可选assets/模板和资源可选“自动加载”你不需要手动告诉Claude现在用XX Skill。Claude会根据你的任务描述自动判断需要哪个Skill然后加载。举个例子:以前你让Claude帮你审校文章可能需要这样说“帮我审校这篇文章。注意检查事实准确性去掉AI味的表达比如’不是…而是…这种套话把长句拆成短句段落不要太长像手机屏幕3-5行这样加粗不要太多每200-300字1-2处就够了还要检查是否像真人在说话…”每次审校都要说一遍烦Token也烧得厉害。现在用Skills我提前把这些规则写进AI味审校这个Skill里。下次我只需要说“帮我审校这篇文章”Claude自动识别到需要审校能力加载AI味审校Skill按照我定义的规则执行。这就是Skills的核心价值把重复的指令打包按需加载。2、渐进式披露用Skills之前我一直有个疑问如果我装了50个SkillClaude启动时全部加载那Token不是照样爆炸研究了一圈才发现Anthropic用了一个很聪明的设计渐进式披露Progressive Disclosure。什么是渐进式披露简单说就是分阶段、按需加载。一个Skill包含很多内容核心指令、参考文档、执行脚本、模板资源。但Claude不会一次性把所有内容都加载进上下文。它采用三层加载机制第一层元数据Metadata—— 总是加载内容SKILL.md文件开头的YAML部分就两个字段name和description。name 技能叫什么名字description 这个技能是干嘛的加载时机Claude启动时就加载所有Skills的元数据。Token成本每个Skill大约100 tokens。就算你装了50个Skills也就5000 tokens。作用让Claude知道有哪些Skills可用什么时候该用哪个。第二层指令Instructions—— 触发时加载内容SKILL.md的主体部分详细的操作指南。加载时机当用户请求匹配某个Skill的description时Claude才加载这个Skill的完整内容。Token成本通常在3000-5000 tokens。作用告诉Claude具体怎么做。第三层资源Resources—— 引用时加载内容scripts/目录里的脚本、references/目录里的参考文档、assets/目录里的模板。加载时机只有当SKILL.md中的指令引用这些文件时才加载。Token成本几乎无限——脚本执行后只有输出进入上下文代码本身不占Token。作用提供确定性的执行能力和详细的参考资料。算一笔账说这个设计聪明是有数据支撑的。传统方式所有规则写在CLAUDE.md里每次对话都加载。我之前的写作CLAUDE.md有3000多行大约4万tokens。每次对话都烧4万tokens不管需不需要。Skills方式平时只加载元数据50个Skills × 100 tokens 5000 tokens需要审校时额外加载审校Skill3000 tokens需要配图时额外加载配图Skill2000 tokens一次对话通常只用1-2个Skills总共约10000 tokens节省了75%的Token消耗。而且这还没算脚本的优势。脚本的魔法Skills可以包含可执行脚本。比如我的图片配图与上传Skill里有一个Python脚本负责把图片上传到图床。当Claude执行这个脚本时Claude生成一条bash命令python scripts/upload_image.py image.png脚本在本地执行只有执行结果图床URL返回给Claude脚本代码本身不进入上下文。所以你可以写一个500行的Python脚本处理各种边界情况、错误处理、日志记录。Claude只需要知道执行这个脚本不需要理解每一行代码。这是Skills比传统Prompt方式更强的地方可以封装确定性的执行能力。二、Skills vs MCP vs SubagentMCP让Claude能碰到外部系统。Skills告诉Claude碰到之后怎么用。Subagent是派一个人出去干活。MCPModel Context ProtocolMCP是什么一个连接协议。它让Claude能够访问外部系统数据库、API、文件系统、各种SaaS服务。你可以把MCP想象成给Claude发工具。比如GitHub MCP让Claude能够读取仓库、创建PR、管理Issues。Notion MCP让Claude能够读写Notion页面。MCP的核心价值是连接。它解决的问题是Claude能访问什么数据。SkillsSkills是什么使用手册。它告诉Claude拿到数据之后怎么用。比如你用GitHub MCP连接了仓库Claude能读代码了。但怎么做代码审查——检查哪些方面、用什么标准、输出什么格式——这些是Skills的工作。你可以把Skills想象成教Claude怎么用工具。Skills的核心价值是程序化知识。它解决的问题是Claude应该怎么做。SubagentSubagent是什么派出去干活的人。当你让Claude Code派一个Subagent去做任务时Claude会新开一个独立的对话会话。这个Subagent有自己的上下文窗口、自己的系统提示、自己的工具权限。它干完活把结果带回来。你可以把Subagent想象成派一个助手出去。Subagent的核心价值是并行执行和上下文隔离。它解决的问题是怎么处理复杂的多步骤任务。什么时候用哪个用MCP当你需要连接外部系统。查询数据库调用第三方API读写Notion、Jira、GitHub等用Skills当你有重复性的工作流程。代码审查流程文章审校流程报告生成流程任何每次都要说一遍的规则用Subagent当任务复杂、需要并行执行。审查整个代码仓库耗时长同时处理多个独立任务需要防止上下文污染它们可以组合使用这三个不是竞争关系是互补关系。一个复杂的工作流可能同时用到三者1、MCP连接Salesforce拉取销售数据2、Skills定义数据分析流程怎么计算增长率、怎么生成报告3、Subagent并行处理不同区域的数据分析三、Skills 实战应用先说一个核心观点你不需要自己写Skill。Skill的价值在于它封装了什么——你的工作流程、你的经验沉淀、你的SOP。这些东西来源于你自己是你在实际工作中摸索出来的。但把这些东西写成SKILL.md文件这事让AI干就行。你要做的是1、想清楚你要解决什么问题2、把你的工作流程说清楚3、提供足够的context和参考资料然后告诉Claude Code“帮我创建一个Skill用来做XXX”。它会帮你生成符合格式的文件。如果你连Skill都需要自己手写那说明你还没真正AI Native。你应该先解决自己的AI工作流问题再来用Skills。下面我解释一下Skill的结构目的是让你理解逻辑知道该给AI提什么需求不是教你手写代码。Skill的基本结构YAML Frontmatter必需文件必须以YAML frontmatter开头包含两个必需字段nameSkill的唯一标识。最多64个字符只能用小写字母、数字、连字符不能以连字符开头或结尾不能有连续的连字符description告诉Claude什么时候用这个Skill。最多1024个字符要包含做什么和什么时候用触发关键词很重要Markdown主体可选但建议有Frontmatter之后是Markdown内容也就是Skill的详细指令。这部分没有格式限制但建议包含1、核心目标2、执行步骤3、示例输入/输出4、注意事项官方建议主体部分控制在500行以内。如果需要更多内容放到references/目录下。进阶添加脚本和参考文档scripts/ 可执行脚本。当SKILL.md中引用脚本时Claude会执行它。脚本代码不进入上下文只有执行结果进入。这意味着你可以写复杂的脚本来处理确定性任务而不占用Token。references/ 参考文档。当任务需要更多信息时Claude会读取这些文档。采用渐进式披露平时不加载。assets/ 模板和资源。比如报告模板、配置文件、样例数据。