前段时间,Anthropic发布了一项新能力Claude Skills,引起了社区的广泛讨论。起初我看到这个名字时,以为可能与MCP或者Function Calling类似,可当我真正动手研究之后,才发现Skills的设计思路完全不一样。它并不是单纯让Claude去调用工具,而更像是在给模型装上记忆与流程。你可以把一整套业务流程、模板、甚至公司内部知识,打包成一个个Skill模块,让 Claude在合适的时机自动调用。对开发者来说,它就像是给LLM加上一层轻量级workflow,既可控又灵活。
这篇文章,就是我在研究Claude Skills之后整理的学习笔记,尝试用尽量清晰的方式讲讲:
-
Skills到底是什么?
-
它和已有的MCP等有什么不同?
-
以及,为什么我觉得它可能是AI Agent优化上下文工程的一个新方向。
一 什么是Claude Skill?
Claude Skills 是 Claude 提供的一种可扩展机制。每个 Skill 本质上是一个文件夹,包含元数据、说明文档 以及可选的代码脚本和资源文件 。这些技能仅在需要时才会被加载,使 Claude 在执行特定任务时具备专门的知识和流程。与传统一次性提示不同,Skills 通过渐进式披露的方式工作:Claude 会在会话开始时扫描所有技能的元数据,包括名称和简要描述,将其作为系统提示的一部分,而这部分代价极低,通常几十个 token。只有当用户请求与某个技能描述相符的任务时,Claude 才会真正加载该技能的详细说明和相关资源,从而避免了上下文窗口超载。

在系统层面,Claude 为技能运行提供了一个安全的沙盒虚拟机环境。技能文件夹就像虚拟机中的目录,Claude 可以通过bash命令读取和执行其中的内容。元数据始终加载到提示中;当技能被触发后,SKILL.md的内容被读入上下文;如果文档中引用了其他资源或脚本,Claude 会再通过bash读取这些文件或执行脚本。值得注意的是,代码脚本通过bash调用,只将执行结果返回给 Claude,而脚本本身的代码并不会进入上下文。
这样的架构让技能能够包含大量参考资料和示例而不消耗上下文长度。下图展示了三个内容级别的加载方式:
一级 :元数据,始终加载。SKILL.md头部信息中的名称和描述字段会在启动时注入系统提示,通常只需要几十个token。
二级 :说明文档,技能触发时加载。SKILL.md本身包含具体的指令和示例,大约几千token。
三级:资源与脚本,按需加载。附加的 .md 文件、模板、数据库模式,以及可执行脚本仅在被调用时由Claude读取或执行。

如此一来,只有真正需要的信息才会进入上下文,有效地提升了效率和性能。
二 如何注册与使用Skills?
在Claude桌面端 ,开启和管理技能非常简单:用户进入 设置 > 功能 页面,开启代码执行和文件创建功能后,就能看到技能列表并上下线。Anthropic 已内置多种通用技能,比如专业级 Excel、Word、PowerPoint、PDF 处理等,默认在需要时自动使用。用户也可以通过上传技能按钮,将自己编写的技能打包为ZIP文件上传。上传后,技能会出现在列表中,用户可随时通过开关启用或禁用。 
对于Claude Code 用户,可以通过内置的插件市场管理技能。Anthropic 在其示例仓库 anthropics/skills 提供了多种开源 Skill,用户只需在 Claude Code 中运行类似/plugin marketplace add anthropics/skills的命令,即可添加并安装这些技能。安装后,这些技能会被自动发现并在相关对话中生效,无需额外上传。
对于开发者使用 Claude API ,Skills 也受支持:新推出了 /v1/skills 端点用于管理自定义技能 开发者可以本地准备技能文件夹(包含 SKILL.md、脚本等),然后调用 API 上传。例如,使用curl可以这样注册一个自定义技能:
bash
curl -X POST "https://api.anthropic.com/v1/skills" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: skills-2025-10-02" \
-F "display_title=My Excel Skill" \
-F "files[]=@excel-skill/SKILL.md;filename=excel-skill/SKILL.md" \
-F "files[]=@excel-skill/process_excel.py;filename=excel-skill/process_excel.py"
上传成功后,自定义技能会存储在开发者组织中。在后续的 POST /v1/messages 请求中,只需在请求体中加入 container 字段,指定 type、skill_id 和可选的 version,即可让 Claude 在对话中使用该技能。例如:
bash
{
"model": "claude-sonnet-4-5-20250929",
"messages": [
{"role": "user", "content": "根据这个简报生成一份 10 页的公司幻灯片"},
{"role": "assistant", "content": "..."}
],
"tools": [{"type": "code_execution_20250825", "name": "code_execution"}],
"betas": ["code-execution-2025-08-25", "skills-2025-10-02"],
"container": {"type": "custom", "skill_id": "skill_01AbCdEf", "version": "latest"}
}
在这个请求中,指定了自定义技能skill_01AbCdEf,Claude 会在执行过程中自动加载和运行该技能。技能执行完毕后,如果产生了文件,API 响应中会包含文件ID;开发者需要调用 Claude的File API下载这些文件。
三 Skill的意图识别与技能路由
当用户输入请求时,Claude会自动识别用户意图并选择合适的技能。具体而言,由于所有可用技能的名称和简要说明已经加载在系统提示中,Claude 会根据用户的需求与这些说明匹配。在执行任务时,Claude通过下面流程调度技能:
-
搜索匹配:Claude 回顾所有技能的元数据和描述,判断哪些技能与当前任务相关。
-
加载技能说明 :若匹配到某技能,Claude 会使用
bash命令读取该技能文件夹下的SKILL.md,将其中的详细流程和指导加载到上下文中。 -
执行内部流程 :根据
SKILL.md的说明,可能还需要读取额外的文档或运行代码脚本。Claude 会有选择地加载这些文件和脚本,并仅将脚本输出而非脚本本身代码纳入上下文,完成任务。 -
串联复用:如果一个任务需要多个技能协作,Claude 可以依序调用它们。Claude 的思考链中甚至可以显示出技能调用的过程,让用户了解它选用了哪些技能。
总的来说,Claude 会尽可能在恰当的时候自动调用相关技能,只有在技能说明不明确时才需要用户在提示中指明。
四 Skill的数据流与安全机制
所有技能执行都发生在 Claude 安全隔离的沙盒环境 中,不会泄露到外部系统,也不会在会话间保存数据。当技能需要执行代码时,Claude会在一个临时容器里运行该脚本;脚本读写的都是容器内的文件系统,输入输出都通过Claude的管道传递,外部无法直接访问这些内部数据。例如,处理Excel文件时,技能会在容器中生成 .xlsx文件,然后返回文件ID;开发者再调用File API下载结果文件,整个过程没有持久化存储在云端,只针对当前请求有效。
以下流程描述了一个典型请求中的数据流逻辑:
-
请求发起:用户通过Claude API 提交
POST /v1/messages请求,包含用户消息、工具和container参数。 -
容器调度:系统根据container参数,启动支持代码执行的环境,并将相关技能目录挂载进去。此时系统提示已包含了技能的元数据。
-
技能执行:Claude 按前述步骤加载并执行
SKILL.md和关联的脚本、资源,生成结果。对于需要生成文件的技能,代码执行后会创建文件并返回文件的ID。 -
结果返回:API响应中包含了Claude的回答和可能的工具执行结果。如果有文件生成,响应会有
bash_code_execution_tool_result类型的消息,其中带有file_id。 -
文件下载:客户端使用这些
file_id通过File API检索文件元数据并下载文件内容。下载后即可获得真正的.xlsx/.pptx/.pdf文件。
在安全方面,由于Skill有能力运行任意代码,Anthropic做了严格的隔离和限制,技能只能在已经批准代码执行功能的环境中使用。官方指出,主要风险包括提示注入和数据外泄,他们已在容器环境中采取多种缓解措施。总体而言,技能运行的环境与普通提示交互隔离开来,不会产生跨会话的数据残留。
五 与Function Calling/MCP的比较
Claude Skills与OpenAI的Function Calling本质上都是扩展模型能力的方式,但侧重点不同。OpenAI的Function Calling更侧重于让模型以结构化方式调用外部 API,像是把工具作为执行器直接调用;而Claude Skills则把操作流程、规则和参考资料打包成可复用的技能,让模型学会如何做某件事。例如,给定一个相同的自动化任务,Function Calling可能需要你定义一个函数接口让模型填充参数再调用,而在Claude Skill中,你可以创建一个Skill,在其中详细说明该任务的每个步骤以及边界条件,模型会根据说明自动运行脚本或生成结果。简单来说,Claude Skills更关注一揽子资源的打包和可版本化管理,而Function Calling则偏重快速组合各种API能力。
与 Claude的MCP相比,Claude Skills也表现出不同特点:MCP强调连接外部数据源,而Claude Skills强调内部流程指导。此外,Claude Skills在Token利用率上更高效,因为它们只在真正需要时才加载,大多数时间几乎不占用上下文。可以将两者结合使用:MCP连接使Claude能够访问工具,而Claude Skills则教会Claude如何有效地使用这些工具。
六 应用场景
Skills的扩展潜力非常广泛,团队可以将内部知识库、合规流程、行业专用分析流程等打包成技能,供整个组织使用,从而减少重复的工作内容。官方提供了一些常见的🫱Skills模板,里面列举出一些典型的应用场景:
-
文档自动化:内置的 Office 文档技能可以生成真正的 Word、Excel、PPT 文件,而不是简单的 Markdown。用户只需给出需求,如「生成公司的财务报告」,Claude 即可调用 Excel 技能处理数据、调用 PPT 技能制作演示文档。
-
品牌和内容规范:创建公司品牌规范 Skill 后,无论是创建幻灯片、写内部邮件,还是生成宣传资料,Claude 都会自动遵循统一的风格。例如,使用 Canva 或 Notion 的技能整合后,Claude 可以直接读取设计模板或工作流程,快速从问题转换到实际行动中去。
-
数据分析与报告:自定义数据分析流程 Skill 可以让 Claude 按团队规则分析数据、检查异常并生成报告。
-
开发与测试自动化:Skills 也可用于开发场景,如自动构建和测试代码、生成 API 服务器模板等。Anthropic 示例库中就有「webapp-testing」和「MCP 服务器生成」等技能,帮助自动化地运行 Playwright 测试或快速搭建本地服务。
-
创意和多媒体:社区用户创建了生成艺术图像、动画 GIF、播放列表等技能。
目前Claude支持团队和企业范围内的技能部署,组织管理员可以通过 API 在全局共享技能。未来随着生态的丰富,开发者还可以将Skills与其他能力,如 Claude 的记忆或外部数据库结合,实现更智能的端到端Agent。
七 总结
Claude Skills为模型提供了一种全新的插件式增强能力:通过封装说明、示例和代码,让 Claude 具备特定领域的专业知识,并在需要时动态加载。这种方式既比单纯的 Prompt 灵活,又比简单的函数调用更系统化。
不过,Skills不会让 Claude 成为你的完美Agent。他们不会解决每一个工作流程自动化问题,质量仍然取决于你对自己工作流程的理解深度。但这里的神奇之处在于,这使得操作你的工作流程变得容易得多。
这意味着下一波AI生产力收益可能不是更聪明的模型,而是让更多人能够将他们的专业知识编码为可重用的、可共享的、可改进的单元。
欢迎来到Skills 时代,这可能只是开始。