本文总结Skills 的使用经验,帮助开发者快速掌握编写、调试与优化技巧,将通用 AI 转化为贴合工作场景的专业助手。
一、什么是 Skills?
Skills 是可重用的、基于文件系统的资源,为 AI 提供领域专业知识(工作流程、上下文、最佳实践),将通用 AI 助手转变为专业助手。
与普通提示词(Prompt)的区别
| 对比项 | 普通提示词 | Skills |
|---|---|---|
| 作用范围 | 单次对话 | 全局可用 |
| 重复成本 | 每次都要写 | 一次创建,自动加载 |
| 专业深度 | 简单指令 | 完整工作流 + 资源 |
| 维护方式 | 复制粘贴 | 文件管理,版本可控 |
一句话理解:
Skills = 专业说明书 + 工具箱 + 使用指南,AI 需要时自动查阅。
二、为什么你需要 Skills?
-
告别重复解释
→ 不再每次说"请按以下步骤分析日志..."
-
固化团队知识
→ 把资深工程师的经验变成 AI 能力
-
提升任务一致性
→ 所有成员使用同一套标准流程
-
组合复杂能力
→ "日志解析" + "异常检测" + "生成报告" = 自动化运维
三、Skills 如何工作?(必读)
Skills 采用 渐进式披露机制,分三层加载,只在需要时加载必要内容:
第 1 层:元数据(始终加载)
-
内容:
name+description -
作用:AI 判断"是否该用这个 Skill"
第 2 层:指令(触发时加载)
-
内容:工作流程、最佳实践、分步指导
-
触发条件:用户请求匹配
description中的场景
第 3 层:资源(按需加载)
-
内容:参考文档、脚本、示例
-
加载时机:只有在 SKILL.md 中引用时才加载
设计哲学:
"用多少,加载多少" ------ 最大化上下文效率
四、如何使用 Skill?
4.1 触发 Skill
-
无需特殊命令!只需在对话中描述需求
-
AI 会自动匹配
description中的场景
示例:
你说:"统计一下我们 Java 项目的代码行数"
→ AI 自动调用 java-line-counter Skill
4.2 查看可用 Skills
-
在对话中问:"你有哪些技能?"
-
或查看
/Users/{用户名}/.iflow/skills目录下的所有 Skill
五、编写你的第一个 Skill
5.1 必填字段规范
markdown
---
name: your-skill-name # ← 必须!
description: 简要描述此 Skill 的功能和使用场景 # ← 必须!
---
5.2 完整示例:Java 行数统计器
markdown
---
name: java-line-counter
description: 统计当前项目中的Java代码行数。当用户想要分析其Java代码库的规模、跟踪代码增长或获取Java源文件的统计数据时,请使用此技能。
---
# Java代码行数统计器
此技能分析Java项目并提供有关代码库的详细统计信息,包括总行数、文件数量、每个文件的平均行数以及按包分类的分布情况。
## 使用方法
调用时,此技能将:
1. 扫描整个项目中的Java源文件(.java)
2. 统计每个文件的总行数、空白行和注释行
3. 提供整个项目的汇总统计信息
4. 按包/目录细分统计信息
## 输出格式
技能将生成包含以下信息的结构化报告:
- Java文件总数
- 代码总行数
- 空白行数
- 注释行数
- 实际代码行数(不包括空白行和注释行)
- 每个文件的平均行数
- 按包分类的分布情况
## 实现方法
技能将使用shell命令遍历项目目录并统计Java文件中的行数。它将利用标准Unix实用程序如`find`、`wc`和`grep`来高效地收集所需的统计数据。
对于每个Java文件,它将区分:
- 实际代码行(可执行语句)
- 空白行(仅有空白字符)
- 注释行(以//开头或包含在/* */中的行)
技能将排除生成的文件(通常位于target/build目录中)的统计。
六、什么任务值得做成 Skill?(避免过度设计)
不是所有任务都适合封装成 Skill。以下是判断标准:
✅ 推荐做 Skill 的场景:
-
高频:每周重复 ≥2 次
-
标准:需要多人遵循同一规范
-
易错:涉及复杂步骤或高风险操作
❌ 不建议做 Skill 的场景:
-
一次性任务或临时需求
-
简单问答(如"怎么查日志?")
-
个人偏好型操作(如"按我的习惯格式化代码")
口诀:"高频、标准、易错" ------ 三者满足其一,就值得做 Skill。
七、Skill 调试技巧:如何确认 AI 是否触发了你的 Skill?
这是实际使用中最常见的困惑。
调试方法:
-
直接询问 AI:
"你刚才用了哪个 Skill?" 或 "你是根据什么规则处理的?"
-
观察输出结构:
检查回复是否包含你定义的关键词、步骤或格式
-
测试边界场景:
故意提供模糊请求,看 AI 是否仍能正确匹配
八、团队协作建议:如何共享和管理 Skills?
个人 Skill 有价值,团队 Skill 才有放大效应。
推荐做法:
-
纳入版本控制:将
.iflow/skills/目录加入 Git 仓库 -
文档化核心 Skill:在项目 README 中说明关键 Skill 的用途
-
新人入职同步:作为团队知识资产传递
-
定期清理:删除过时或重复的 Skill
高阶实践:建立团队 Skill 库
-
template-skill.md:标准结构模板 -
review-checklist.md:编写质量检查清单 -
common-patterns.md:常用模式(如"日志分析"、"SQL 优化")
九、推荐:使用 skill-creator
9.1 什么是 skill-creator?
-
根据自然语言描述,自动生成符合规范的
SKILL.md
9.2 如何使用?
在对话中说:
"帮我创建一个 Skill,用于 [描述你的需求]"
示例:
"帮我创建一个 Skill,用于生成 Spring Boot Controller 的单元测试"
→ AI 会返回完整的 SKILL.md 内容,你只需保存到对应目录即可!
9.3 优势
-
自动生成合规的
name和description -
提供结构化模板(指令、示例、工作流程)
-
减少格式错误,加速开发
总结:高效使用 Skills 的关键
-
用对场景:高频、标准、易错任务优先封装
-
写得清晰:自由度匹配任务风险,结构明确
-
调得明白:掌握调试技巧,快速验证效果
-
管得有序:团队共享,持续优化
最终目标:
让 AI 成为你工作领域的专家,而不仅是通用助手。
补充一个SKILL