Skills的概念由Anthropic提出,其本质是一个更高层次的模块化能力包,用于扩展 Claude的功能。每个Skill都打包了指令、元数据和可选资源(脚本、模板),Claude在执行时会根据相关性自动使用。
Skills是可重用的、基于文件系统的资源,为 Claude 提供特定领域的专业知识:工作流程、上下文和**实践,将通用代理转变为专家代理。与提示词(用于一次性任务的对话级指令)不同,Skills 按需加载,无需在多个对话中重复提供相同的指导。
关键优势:
- 专业化Claude:针对领域特定任务定制能力
- 减少重复:一次创建,自动使用
- 组合能力:通过Skills组合构建复杂的工作流
Anthropic使用三种类型的内容对Skill做渐进式展开,分别对应三种加载级别。
Level 1: Metadata-元数据 (始终加载)
Skill 的 YAML 前置元数据提供发现信息:
--- name: pdf处理 description: 从 PDF 文件中提取文本和表格,填写表单,合并文档。在处理 PDF 文件时使用,或当用户提到 PDF、表单或文档提取时使用。 ---
Claude 在启动时加载此元数据并将其包含在系统提示词中。这种轻量级方法意味着你可以安装许多 Skills 而不会产生上下文损耗;Claude 只知道每个 Skill 的存在以及何时使用它。
Level 2: Instructions-详细说明 (触发时加载)
SKILL.md 的主要内容包含程序性知识:工作流程、**实践和指导:
# PDF处理 Quick start 使用pdfplumber从PDF文件中提取文字 python import pdfplumber with pdfplumber.open("document.pdf") as pdf: text = pdf.pages[0].extract_text() 更多高级表格填写指南, 请见[FORMS.md](FORMS.md).
当你请求符合Skill描述的内容时,Claude会通过bash从文件系统读取 SKILL.md。只有在这时,这些内容才会进入上下文窗口。
Level 3: Resources and code-资源和代码 (按需加载)
Skills可以额外捆绑的资料:说明、代码和资源
pdf-skill/ ├── SKILL.md (主要说明) ├── FORMS.md (表单填写指南) ├── REFERENCE.md (详细的API参考) └── scripts/ └── fill_form.py (程序脚本)
- 说明:额外的md文件(FORMS.md、REFERENCE.md),包含专业指导和工作流程
- 代码:Claude通过bash运行的可执行脚本(fill_form.py、validate.py);脚本提供确定性操作而不消耗上下文
- 资源:参考资料如数据库模式、API文档、模板或示例
文件系统模型意味着每种内容类型都有不同的优势:说明用于灵活指导,代码用于可靠性执行,资源用于事实查询。在调用时Claude会根据需要判断是否需要加载对应的文件。
通过以下表格说明三个加载级别的区别:
以下是Skills架构图:
让我们通过一个PDF处理的Skill来说明Skill是如何加载和使用的:
-
启动: 在系统提示词中包含 PDF处理的 Skill的描述- 从 PDF 文件中提取文本和表格,填写表单,合并文档。在处理 PDF 文件时使用,或当用户提到 PDF、表单或文档提取时使用 -
用户请求: 从PDF文件中提取文本信息并进行汇总 -
Claude调用: bash: read pdf-skill/SKILL.md → 将详细说明加载到上下文中 -
Claude决策: 不需要使用到表单填写,所以不需要读取 FORMS.md -
Claude执行: 使用SKILL.md中的详细说明完成用户请求的任务
上述示例说明了:
- Skill的元数据信息被预加载到系统提示词中
- Claude通过
bash工具读取 SKILL.md 触发Skill - Claude可以根据需要选择性读取额外的捆绑文件,比如 FORMS.md
- Claude完成任务
总体上,Skills的技术栈强调模块化和按需加载,解决了传统提示词工程上下文大小的局限,并通过可执行代码注入程序性知识。
目前还只有Claude支持Skills,Claude预置了多种Skills例如:
- PowerPoint (pptx): ppt创建、编辑
- Excel (xlsx): excel创建及分析
- Word (docx): word文档创建、编辑
- PDF (pdf): 生成pdf文件
除了预置的Skills外,Claude还提供了一系列RestFul接口创建、编辑、删除自定义Skills
通过API可以按照如下方式使用Skills:
response = client.beta.messages.create( model="claude-sonnet-4-5-", max_tokens=4096, betas=["code-execution-2025-08-25", "skills-2025-10-02"], container={ "skills": [ { "type": "anthropic", "skill_id": "xlsx", "version": "latest" } ] }, messages=[{ "role": "user", "content": "Create a quarterly sales tracking spreadsheet with sample data" }], tools=[{ "type": "code_execution_", "name": "code_execution" }] ) Ai Agent的实现一半靠LLM,另一半靠工程,Skills实际上又是从工程的角度对agent能力进行增强,关于Ai agent的开发范式目前来说开始在探索阶段,而Skills是这一阶段的又一产物,过去Anthropic Agent开发工程师们引入了MCP,现在引入了Skills,将来也许还是引入新的概念(比如Ability),对于普通的应用开发者来说还是要理性看待没有必要盲目跟风应用在实际项目中,更何况Anthropic对中国是完全封禁的,在项目中接入claude是不明智的选择。
但是也不是说Skills对应用开发者们没有用处,其最大的价值是:Anthropic将他们的Agent能力管理设计模式开源了;我们完全可以将这个模式借鉴过来,用在自己的Agent内,而不用关注到底使用的是哪个大模型。
当你的Agent能力越来越多时,一个包含几十个工具、几十种应用场景动辄成百上千的System Prompt如何维护?如何调优?而Skills的设计模式为我们提供了一种解耦、模块化的解决方案。你的Agent不再是依赖一个巨大的、难以维护的system prompt,而是一个由几十个标准化的Skill文件夹组成的能力库,每个Skill都可以单独测试和迭代。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/278331.html