标准化、可复用、渐进式——让 AI 高效完成重复性任务
一、 为什么需要 Skills
在传统 LLM 使用场景中,我们通常依赖 Prompt 来让模型完成任务,例如:
"你是一个项目经理,请根据输入内容生成符合公司规范的周报……"
这种方式存在三个核心问题:
-
不稳定:模型对同一个 Prompt 的理解可能不同,输出结果不一致。
-
不可复用:每次都要重新编写 Prompt,效率低。
-
不可组合:难以将多个任务整合成复杂工作流。
Claude Skills 提供了解决方案:
Skills = 可复用的、结构化的 Prompt + 执行规则 + 资源
它将“如何做一件事”封装成 Claude 可长期记住和调用的能力模块,让 AI 的执行更标准、稳定、可组合。
二、什么是 Skills
Skills 是 Claude 的可复用能力包,用于将领域知识、最佳实践、工作流程和执行逻辑封装,使 Claude 高质量、稳定地完成任务。
1. 基本目录结构
一个标准的 Skill 项目,目录结构清晰且轻量化,核心文件仅1个,其他均为可选补充:
my-skill/
├── SKILL.md # 必需:元数据 + 执行指令
├── scripts/ # 可选:可执行脚本
├── templates/ # 可选:模板文件
└── resources/ # 可选:其他资源文件
2. 核心文件 SKILL.md 示例
---
name: report-automation
description: 根据输入生成日报/周报/月报,并按模板输出 Markdown。
---
## 指令
1. 提取岗位、报告类型、姓名、日期和工作内容
2. 选择对应模板
3. 生成结构化 Markdown 报告
这里要注意:
-
头部的 name 和 description 是元数据,主要用于 Claude 快速匹配——当你输入需求时,Claude 会根据这两个字段判断是否需要调用该 Skill;
-
下方的“执行指令”是核心,必须清晰、可落地,相当于给 Claude 写的“操作手册”,避免执行偏差。
三、Skills 的「渐进式架构」
当我们需要同时用到多个Skill(比如周报生成、需求分析、文档校验)时,直接全量加载所有Skill会遇到三个核心问题,这也是渐进式架构要解决的核心痛点:
-
Token消耗暴涨:每个Skill包含的脚本、模板等都是文本内容,全量加载会让单次调用的Token量大幅增加,直接提升使用成本;
-
任务干扰严重:无关Skill的内容会占用上下文,比如生成周报时加载了需求分析的规则,可能导致Claude误解需求,降低执行精准度;
-
逻辑冲突风险:不同Skill的执行规则可能存在重叠(比如都有格式校验步骤),全量加载会让Claude难以判断执行优先级,影响输出稳定性。
针对这些问题,Claude Skills采用**渐进式披露(Progressive Disclosure)**架构,核心思路是:不一次性加载所有Skill内容,而是先匹配需求,再按需逐步加载对应内容,核心载体是“三层加载模型”:
| 层级 | 内容 | 作用 |
| ------- | ------------------------------- | -------- |
| Level 1(初始加载) | 各Skill的name + description(元数据) | 意图匹配:快速匹配用户需求,确定是否需要调用某个Skill,不占用过多上下文 |
| Level 2(确定调用后) | 目标Skill的SKILL.md核心执行指令 | 执行规则:明确该Skill的执行步骤,完成核心任务流程 |
| Level 3(按需加载) | 目标Skill的scripts/ templates/ resources等配套资源 | 按需加载:补充辅助资源,仅在需要时加载,避免无关内容干扰 |
渐进式架构的核心优势
-
支持大量 Skill 共存:即使你有十几个、几十个 Skill,初始也只加载元数据,不会占满上下文;
-
干扰最小化:只加载当前任务相关的 Skill 内容,执行更精准、效率更高;
-
可组合调度:多个 Skill 可以按层级依次加载、串联执行,轻松实现复杂工作流。
四、Skills 的使用方式
Claude Skills 支持两种主流使用方式,覆盖日常办公和技术集成场景:
4.1 桌面端 / CLI 端(日常办公用)
-
自动触发:你输入需求后,Claude 自动匹配对应的 Skill(根据 name + description),无需手动调用;
-
显式调用:如果需要指定 Skill,直接输入/skill-name 命令即可(比如 /report-automation);
-
参数传递:可以用自然语言输入参数(比如“生成产品经理的本周周报,内容包括:需求评审3次、原型设计2个、用户访谈5人”),也可以用结构化格式(如 JSON)传递,更精准。
4.2 API 集成(技术同学用,支持自动化部署)
如果需要把 Skill 集成到自己的系统、工具中,可以通过 Claude API 调用,示例代码(Python):
response = claude_client.messages.create(
model="claude-3-opus",
messages=[{"role": "user", "content": "帮我生成本周的周报"}],
tools=[{"type": "skill", "skill_id": "report-automation"}]
)
注:使用前需要先在 Claude 开发者平台创建 Skill,获取对应的 skill_id,并配置好 API 密钥
五、Demo 案例:日报 / 周报 / 月报自动生成 Skill
这里分享一个 Skills Demo 案例:自动生成日报/周报/月报。
1. 明确功能需求
-
接收用户输入的工作内容,自动识别报告类型(日/周/月);
-
按预设模板生成结构化 Markdown 报告;
-
支持将生成的报告自动上传到 S3 存储,生成可访问的链接。
2. 目录结构设计
report-generator/
├── SKILL.md
├── resources/
│ ├── daily_report_template.md
│ ├── weekly_report_template.md
│ └── monthly_report_template.md
├── scripts/
│ └── upload_report.py
3. 核心文件实现
SKILL.md 核心指令
scripts 脚本 upload_report.py
import sys
import os
from datetime import datetime
from pathlib import Path
from dotenv import load_dotenv
import boto3
load_dotenv(Path(__file__).parent / '.env')
report_type = sys.argv[1].lower()
report_content = open(sys.argv[3], 'r', encoding='utf-8').read() if len(
sys.argv) >= 4 and sys.argv[2] == "-f" else " ".join(sys.argv[2:])
S3_ENDPOINT = os.environ.get("S3_ENDPOINT")
S3_BUCKET = os.environ.get("S3_BUCKET")
S3_REGION = os.environ.get("S3_REGION", "us-east-1")
S3_ACCESS_KEY = os.environ.get("S3_ACCESS_KEY")
S3_SECRET_KEY = os.environ.get("S3_SECRET_KEY")
filename = f"{report_type}/{datetime.now():%Y-%m-%d}/{report_type}_report_{datetime.now():%Y%m%d_%H%M%S}.md"
client_config = {'region_name': S3_REGION,
'aws_access_key_id': S3_ACCESS_KEY, 'aws_secret_access_key': S3_SECRET_KEY}
if S3_ENDPOINT:
client_config['endpoint_url'] = S3_ENDPOINT
s3 = boto3.client('s3', **client_config)
try:
s3.put_object(Bucket=S3_BUCKET, Key=filename, Body=report_content.encode('utf-8'), ContentType='text/markdown; charset=utf-8',
ContentEncoding='utf-8', Metadata={'report-type': report_type, 'upload-time': datetime.now().isoformat()})
# 生成访问链接并打印
s3_url = f"{S3_ENDPOINT or f'https://{S3_BUCKET}.s3.{S3_REGION}.amazonaws.com'}/{filename}"
print("上传成功:", s3_url)
except Exception as e:
print("上传失败:", e)
exit(1)
模板示例(daily.md)
4. 测试流程
搭建完成后,我们可以通过两步测试验证 Skill 效果:
- 输入内容,生成报告
- 上传报告
六、Skills 与 MCP / Agent 的对比
很多人会混淆 Skills、MCP 和 Agent,这里用一张表清晰区分三者的核心差异,避免用错场景:
| 对比维度 | Claude Skills | MCP | Agent |
| ---- | --------------------- | ----------- | ------------------------------------ |
| 定义 | 可复用的业务能力模块 | 模型访问外部系统的协议 | 执行任务的智能体 |
| 目标 | 标准化流程、可复用 | 打通外部数据与操作 | 自主完成复杂任务 |
| 工作方式 | 被动触发 → 执行指令 → 使用模板/资源 | 请求-响应模式 | 理解任务 → 制定计划 → 调用 Tools/Skills → 调整策略 |
| 使用场景 | 重复性、结构化任务 | 外部数据访问、系统操作 | 复杂、多步骤任务或跨系统集成 |
总结一下:三者不是替代关系,而是互补关系——Agent 负责“统筹规划”,Skills 负责“具体执行”,MCP 负责“打通外部系统”,共同构成可扩展的智能自动化架构。
七、总结:Skills 的核心价值与适用场景
Claude Skills 的核心价值,在于把“人的经验和执行逻辑”转化为可复用、标准化的 AI 能力模块,解决了传统 Prompt 不稳定、不可复用、不可组合的痛点。
如果你有以下使用场景,强烈建议尝试用 Skills 优化:
-
需要反复做同类型的结构化任务(如写周报、整理会议纪要、格式化文档);
-
需要将多个简单任务串联成自动化工作流,提升效率。
八、参考资料
官方文档 platform.claude.com/docs/zh-CN/…
API 调用指南 platform.claude.com/docs/en/bui…