欢迎加入:FSA全栈行动交流群 👋

AI 编码助手正迅速演进,从简单的自动完成工具,发展到能在你的项目中执行结构化工作流的代理,这些代理能够更精确地完成任务。然而,目前缺失的关键在于维护整个流程的上下文连贯性。

你可能遇到过这种情况:当你持续与模型对话一段时间后,它会给出一个不符合预期的输出,这个输出脱离了上下文,变得毫无用处。

为了解决代理模型中出现的上下文问题,Claude 推出了极其强大(且常被忽视)的功能——“Skills”,也被称为“Claude Skills”或“Agent Skills”。

Skills 通过允许代理按需访问程序化知识以及公司、团队和用户特定的上下文来解决这一痛点。拥有了一系列 Skills 访问权限的代理,可以根据其正在处理的任务,扩展其自身的能力。

什么是 Claude Skill?

Claude Skill 是一个可复用、结构化的自动化模块,它教会 Claude 如何在你的项目中以可预测且可重复的方式执行特定任务。

你可以这样理解:

**Claude Skills 就像是你 AI 代理的插件或脚本。**你无需每次都从头开始提示 Claude,而是为其提供一个 Skill,该 Skill 定义了:

  • • 任务的具体内容

  • • 任务的执行方式

  • • 期望的输入是什么

  • • 预期的输出是什么

Claude Skills 的诞生缘由?

Claude Skills 的创建,旨在解决仅依赖提示(prompt-only)工作流中的三个主要问题:

1. 提示漂移(Prompt Drift)

手动重复输入提示时,每次都可能产生细微差异,从而导致输出不一致。

而 Skills 固化了行为,确保了执行流程的一致性。

2. 缺乏复用性

在没有 Skills 的情况下,你需要:

  • • 反复编写相同的长提示。

  • • 在项目间复制粘贴指令。

有了 Skills:

  • • 一次定义,随处复用。

3. 缺乏团队共享性

Skills 可以:

  • • 进行版本控制。

  • • 通过 Pull Request (PR) 进行代码审查。

  • • 在团队之间共享。

  • • 像代码一样进行文档化。

这使得协作式、生产级别的 AI 应用成为可能。

Claude Skills 存储在哪里?

Claude 会在你的项目中的以下路径查找 Skills:

<span leaf="">.claude/skills/

每个 Skill 本质上是一个包含以下内容的文件夹:

  • • 指令(Instructions)

  • • 输入/输出模式(Input/output schema)

  • • 脚本(Scripts)

  • • 参考文档(Reference documents)

  • • 可选脚本或模板(Optional scripts or templates)

示例结构:

<span leaf="">.claude/<span leaf="">  
<span leaf=""> └──<span leaf=""> skills/<span leaf="">  
<span leaf="">      └──<span leaf=""> generate-ppt/<span leaf="">  
<span leaf="">           ├──<span leaf=""> skill.md<span leaf="">      # 必需<span leaf="">  
<span leaf="">           ├──<span leaf=""> scripts/<span leaf="">      # 可选<span leaf="">  
<span leaf="">           ├──<span leaf=""> references/<span leaf="">   # 可选<span leaf="">  
<span leaf="">           ├──<span leaf=""> assets/<span leaf="">       # 可选<span leaf="">  
<span leaf="">           └──<span leaf=""> template.pptx<span leaf=""> # 可选

如何安装 Claude Skill

步骤 1:克隆 Skills 仓库

<span leaf="">git<span leaf=""> clone<span leaf=""> git@github.com:anthropics/skills.git

步骤 2:将 skills 文件夹复制到你的项目

所有可用的 Skills 都位于克隆仓库的 skills/skills 目录下,你可以手动将所需的 Skill 复制到项目中的 .claude/skills 文件夹,如执行以下命令。

<span leaf="">mkdir<span leaf=""> -p .claude/skills<span leaf="">  
<span leaf="">cp<span leaf=""> -r skills/skills/pptx .claude/skills/pptx

现在 Claude 就可以发现并使用这个 Skill 了。

如果你想引入 Anthropic 提供的所有可用 Skills,可以将它们全部复制到你项目的 .claude/skills 文件夹中。

Claude Skill 的构成解析

每个 Skill 都以 SKILL.md 文件开始,该文件包含 YAML Frontmatter 和 Markdown 指令:

<span leaf="">---<span leaf="">  
<span leaf="">name:<span leaf=""> ppt-processing<span leaf="">  
<span leaf="">description:<span leaf=""> Extract<span leaf=""> text<span leaf=""> and<span leaf=""> tables<span leaf=""> from<span leaf=""> PPT<span leaf=""> files,<span leaf=""> fill<span leaf=""> forms,<span leaf=""> merge<span leaf=""> documents.<span leaf="">  
<span leaf="">---<span leaf="">  
<span leaf="">  
<span leaf=""># PPT Processing<span leaf="">  
<span leaf="">  
<span leaf="">## When to use this skill<span leaf="">  
<span leaf="">Use<span leaf=""> this<span leaf=""> skill<span leaf=""> when<span leaf=""> the<span leaf=""> user<span leaf=""> needs<span leaf=""> to<span leaf=""> work<span leaf=""> with<span leaf=""> PPT<span leaf=""> files...<span leaf="">  
<span leaf="">  
<span leaf="">## How to extract text<span leaf="">  
<span leaf="">1<span leaf="">.<span leaf=""> Use<span leaf=""> pptplumber<span leaf=""> for<span leaf=""> text<span leaf=""> extraction...<span leaf="">  
<span leaf="">  
<span leaf="">## How to fill forms<span leaf="">  
<span leaf="">...

SKILL.md 文件顶部必须包含以下 Frontmatter 字段:

  • • name: 一个简短的标识符。

  • • description: 描述何时使用此 Skill。

Markdown 正文部分包含实际的操作指令,其结构和内容没有任何特定限制。

Claude Skills 的工作原理

Claude Skills 的一个重要设计原则是上下文的渐进式披露(progressive disclosure of context)

Claude 不会一次性加载所有 Skill 的全部内容(这既缓慢又浪费资源),而是分阶段加载,只有在真正需要时,它才会逐步加载更多信息。

这使得即使你安装了大量 Skills,代理也能够保持快速、轻量且可扩展

我们来详细分解一下:

1. 发现阶段:轻量级的 Skill 识别

当 Claude 启动一个项目时,它不会完整读取每一个 Skill

它只会加载:

  • • Skill 的名称

  • • 一个简短的描述(说明 Skill 的功能)

这些信息足以让 Claude 判断:

“这个 Skill 是否与当前任务相关?”

示例:

<span leaf="">Skill:<span leaf=""> generate-ppt<span leaf="">  
<span leaf="">Description:<span leaf=""> Generates a PowerPoint presentation<span leaf=""> from<span leaf=""> a title<span leaf=""> and<span leaf=""> outline.

在此阶段,Claude 只知道它拥有哪些功能,但尚不清楚它们的内部工作细节。

这样做可以保证启动速度快,并避免不必要的上下文加载。

2. 激活阶段:仅加载所需内容

当 Claude 识别出用户请求与某个 Skill 的描述匹配时(例如,用户要求“生成一个 PPT”、“创建幻灯片”、“导出演示文稿”),它便会激活该 Skill

在激活时,Claude 会:

  • • 将完整的 SKILL.md 指令加载到上下文中。

  • • 读取输入模式(input schema)。

  • • 理解执行步骤。

只有相关的 Skill 会被“展开”,而其他 Skill 则保持轻量状态。

这就是系统的可扩展性所在:无论你拥有 5 个 Skills 还是 500 个 Skills,只有被激活的那个才会占用更多资源。

3. 执行阶段:遵循指令并利用文件或代码

一旦激活,Claude 就会像执行小型程序一样遵循 Skill 的指令:

  • • 根据输入模式(input schema)验证输入。

  • • 按步骤执行指令。

  • • 可以选择性地读取引用的文件、使用模板、运行内置脚本,并写入输出文件。

例如,在 generate-ppt Skill 中,Claude 的执行流程可能是:

  1. 1. 读取 template.pptx 文件。

  2. 2. 填充幻灯片内容。

  3. 3. 将文件保存到 /output 目录。

  4. 4. 确认任务完成。

这与现代前端框架中的惰性加载(lazy-loading)模块原理相似,也正是这种机制,使得 Claude Skills 既能像提示一样轻量,又能像软件模块一样强大

为什么开发者应该关注 Claude Skills?

Claude Skills 能够帮助开发者:

  • • ✅ 自动化文档编写

  • • ✅ 生成报告、幻灯片、图表

  • • ✅ 确保输出的一致性

  • • ✅ 无需编写完整应用即可构建内部 AI 工具

  • • ✅ 将 AI 转化为基础设施

它们成功地架起了AI 聊天AI 系统之间的桥梁。

何时应该使用 Claude Skills?

在以下场景下,建议使用 Skills:

  • • 任务需要频繁重复。

  • • 输出的结构至关重要。

  • • 团队需要共享工作流。

  • • 你期望得到确定性的行为结果。

  • • 你希望将 AI 集成到 CI/CD 或 DevOps 流程中。

请避免在以下场景使用 Skills:

  • • 一次性的创意头脑风暴。

  • • 高度主观的写作任务。

结语

Claude Skills 代表了 AI 应用方式的转变,从单纯地提示 AI 转向工程化 AI 工作流

不再是:

“请为 X 生成一个 PPT…”

你现在可以说:

“运行我的 generate-ppt Skill。”

这一转变将 AI 从一个独立工具变成了你系统的一部分。

如果你正认真考虑将 AI 集成到你的开发工作流中,Claude Skills 无疑是当前最强大的基础构建模块之一。

想要创建你自己的 Skill?或需更详细的信息,请参考下方的参考链接。

参考链接

[1] Anthropic: https://support.claude.com/en/articles/12512198-how-to-create-custom-skills
[2] Skills: https://github.com/anthropics/skills
[3] Doc: https://agentskills.io/home

🔥往期推荐

如何在 Flutter 中集成 Firebase Crashlytics

每个移动应用开发者都应该知道的必备命令

Dart 单例与 static 的区别和示例

深入理解 dart:io、defaultTargetPlatform 和 kIsWeb (各自的适用场景)

移动应用内部运行机制 — JIT、AOT、机器码与虚拟机(Kotlin、Swift、Flutter、RN)