什么是 Skill?手把手带你写一个简单有用的 Skill!
1. 什么是 Skill?
Skill 是一种把「提示词 + 代码 + 资源文件」打包成可复用能力单元的方式。它让 AI 助手在特定场景下拥有更专业、更稳定的表现,而不需要每次对话都重新描述需求。
简单来说,Skill 就是给 AI 准备的一套「工作手册 + 工具箱」:手册告诉 AI 遇到什么情况该怎么做,工具箱提供它执行任务时需要的代码和资源。
一个 Skill 通常包含以下核心部分:
- SKILL.md:技能说明文件,描述 Skill 的用途、使用场景和具体执行步骤。
- scripts/:可执行的代码脚本,用于处理数据、调用接口或生成文件。
- assets/:模板、配置文件、参考文档等静态资源。
Skill 的价值在于:把零散的提示词变成结构化的、可复用的工程资产。团队可以共享、迭代和版本化管理这些技能,让 AI 的能力持续沉淀。
2. Skill 与普通提示词的区别
很多人会问:Skill 不就是一段提示词吗?其实两者有本质区别。
| 对比维度 | 普通提示词 | Skill |
|---|---|---|
| 结构 | 一段自由文本 | 目录 + 文件 + 代码的工程结构 |
| 复用性 | 复制粘贴,容易丢失上下文 | 独立打包,随时加载调用 |
| 可编程性 | 只能描述,不能执行 | 可调用脚本处理真实数据 |
| 协作方式 | 靠口头传播 | 可纳入版本管理,团队共享 |
| 稳定性 | 每次效果波动大 | 步骤固定,输出更可控 |
核心区别在于:Skill 不只是「告诉 AI 怎么做」,还提供了「AI 可以直接使用的工具」。这让 Skill 能完成普通提示词做不到的真实任务,比如批量处理文件、调用 API、生成结构化报告。
3. Skill 的典型应用场景
Skill 的应用范围非常广,以下是几个典型场景:
- 内容创作:自动生成符合特定风格的博客文章、营销文案或产品说明。
- 代码审查:按团队规范检查代码质量,输出问题清单和修改建议。
- 数据处理:读取 CSV、JSON 等文件,完成清洗、统计和可视化。
- 文档生成:根据代码仓库自动生成 README、API 文档或变更日志。
- 工作流自动化:把多步骤任务封装成 Skill,一键触发完整流程。
无论哪种场景,Skill 的核心思路都是一致的:把重复性的 AI 任务标准化、产品化。
4. 手把手实战:写一个「周报生成器」Skill
下面我们从一个真实需求出发,完整实现一个简单但有用的 Skill——周报生成器。它读取本周的工作记录文件,自动生成结构清晰、语言专业的周报。
4.1 设计 Skill 的目标
在动手写代码之前,先明确这个 Skill 要解决什么问题:
- 输入:一个包含本周工作记录的文本文件,每行一条工作事项。
- 输出:一份 Markdown 格式的周报,包含「本周完成」「问题与风险」「下周计划」三个部分。
- 约束:语言专业简洁,每条事项归类清晰,不遗漏原始记录。
明确目标后,我们开始搭建 Skill 的目录结构。
4.2 创建 Skill 目录结构
首先创建如下目录结构:
weekly-report-skill/
├── SKILL.md
├── scripts/
│ └── generate_report.py
└── assets/
└── report_template.md
这个结构非常简洁:SKILL.md 负责描述技能逻辑,scripts 目录存放处理脚本,assets 目录存放输出模板。
4.3 编写 SKILL.md 技能说明
SKILL.md 是整个 Skill 的「大脑」,它告诉 AI 何时使用、如何使用这个技能。内容如下:
---
name: weekly-report-generator
description: 根据本周工作记录自动生成结构化周报,适用于团队日常汇报场景。
---
周报生成器
使用场景
当用户提供本周工作记录文件,并希望生成周报时使用本技能。
执行步骤
读取用户提供的工作记录文件,文件为纯文本格式,每行一条工作事项。
调用 scripts/generate_report.py 处理记录,脚本会自动完成事项分类和统计。
根据脚本输出和 assets/report_template.md 模板,生成最终周报。
将周报呈现给用户,并提示可手动调整的部分。
注意事项
保留原始记录中的所有事项,不要遗漏。
分类时遵循「完成事项」「进行中事项」「问题风险」三个维度。
周报语言保持专业、简洁,避免口语化表达。
SKILL.md 中的 frontmatter(开头的 name 和 description)用于技能索引和自动匹配,执行步骤则指导 AI 按固定流程完成任务。
4.4 编写 Python 处理脚本
接下来编写核心处理脚本 generate_report.py。这个脚本读取工作记录,按关键词对事项进行分类:
#!/usr/bin/env python3
"""周报生成器:读取工作记录并输出结构化周报。"""
import sys
from collections import defaultdict
from pathlib import Path
def classify_item(item: str) -> str:
"""根据关键词将工作事项分类。"""
done_keywords = ["完成", "上线", "发布", "修复", "交付"]
risk_keywords = ["阻塞", "风险", "延期", "问题", "待确认"]
if any(kw in item for kw in risk_keywords):
return "问题与风险"
if any(kw in item for kw in done_keywords):
return "本周完成"
return "进行中事项"
def generate_report(input_file: str) -> str:
"""读取记录文件,生成分类后的周报内容。"""
records = Path(input_file).read_text(encoding="utf-8").strip().splitlines()
categories = defaultdict(list)
for line in records:
line = line.strip()
if not line:
continue
category = classify_item(line)
categories[category].append(line)
sections = []
for title in ["本周完成", "进行中事项", "问题与风险"]:
items = categories.get(title, [])
sections.append(f"## {title}")
if items:
sections.extend(f"- {item}" for item in items)
else:
sections.append("- 无")
return "\n".join(sections)
if name == "main":
if len(sys.argv) != 2:
print("用法: python generate_report.py <工作记录文件>")
sys.exit(1)
print(generate_report(sys.argv[1]))
这段代码的核心逻辑很清晰:逐行读取记录,通过关键词判断每条事项属于哪个分类,最后按固定顺序输出 Markdown 格式的周报内容。
4.5 编写输出模板
assets/report_template.md 定义了周报的最终排版结构:
# 本周工作周报
汇报人:{{author}}
周期:{{period}}
{{report_body}}
下周计划
待补充
需要协调
待补充
模板中的占位符会在最终生成时被替换为实际内容。这样既保证了格式统一,又保留了灵活性。
4.6 准备测试数据
为了验证 Skill 是否可用,我们准备一份测试工作记录 work_log.txt:
完成用户登录模块重构
修复订单列表分页 bug
上线支付回调新逻辑
数据库连接池参数调优中
第三方接口联调存在阻塞
完成接口压测报告初稿
这份记录混合了「完成」「进行中」「风险」三类事项,正好可以测试分类效果。
4.7 运行脚本验证效果
在终端执行以下命令:
python scripts/generate_report.py work_log.txt
输出结果如下:
## 本周完成
- 完成用户登录模块重构
- 修复订单列表分页 bug
- 上线支付回调新逻辑
- 完成接口压测报告初稿
进行中事项
数据库连接池参数调优中
问题与风险
第三方接口联调存在阻塞
可以看到,脚本正确地把六条记录分成了三类,分类结果完全符合预期。这说明我们的 Skill 核心逻辑已经可以正常工作。
4.8 在 AI 助手中使用这个 Skill
Skill 写好后,在支持 Skill 机制的 AI 助手中,只需要告诉它:
请使用周报生成器技能,根据 work_log.txt 生成本周周报。
AI 助手会按照 SKILL.md 中的步骤,自动读取文件、调用脚本、套用模板,最终输出一份完整的周报。整个过程不需要用户再描述任何处理逻辑。
5. 写 Skill 的实用技巧
通过上面的实战,我们已经掌握了一个 Skill 的完整开发流程。下面补充几个让 Skill 更好用的技巧:
- 职责单一:一个 Skill 只解决一个问题,不要试图把所有功能塞进一个技能里。
- 步骤明确:SKILL.md 中的执行步骤要足够具体,让 AI 不需要猜测下一步做什么。
- 输入输出清晰:在 SKILL.md 中明确说明输入文件格式和输出格式,减少歧义。
- 脚本健壮:处理脚本要考虑空文件、异常格式等边界情况,避免运行时报错。
- 持续迭代:Skill 不是一次写好的,要根据实际使用反馈不断优化分类规则和模板。
6. 总结
Skill 的本质,是把 AI 的能力从「一次性对话」升级为「可复用的工程资产」。通过 SKILL.md 定义流程、用脚本处理真实数据、用模板保证输出质量,我们就能构建出稳定、专业、可共享的 AI 技能。
本文通过一个完整的周报生成器实战,带你走通了 Skill 从设计、编码到验证的全过程。你可以在此基础上,结合自己的业务场景,开发出更多实用的 Skill。
更多推荐



所有评论(0)