从零创建 skill:Skill Creator 项目全解析
引言
随着大语言模型的普及,如何让 AI 助手更智能、更专业成为了开发者关注的焦点。Anthropic 推出的 Skill 系统 就是一个很好的解决方案,它允许开发者创建模块化的技能包,让 AI 助手在特定领域表现得更专业。
本文将深入解析 Skill Creator 项目,这是一个专门用于创建和管理 AI 技能的工具包,帮助你快速上手技能开发。
一、Skill 是什么?
Skills 是模块化、自包含的包,用于扩展 AI 助手的能力。简单来说:
- 它们是特定领域的"入职培训指南"
- 能将 AI 从通用代理转变为专业代理
- 提供程序性知识,弥补模型的知识缺口
技能能提供什么?
- 专业化工作流 - 针对特定领域的多步骤程序
- 工具集成 - 处理特定文件格式或 API 的指令
- 领域专业知识 - 公司特定知识、数据模式、业务逻辑
- 打包资源 - 脚本、参考资料和资产
二、Skill Creator 项目结构
项目采用清晰的目录结构,便于管理和扩展:
bash
skill-creator-0.1.0/
├── SKILL.md # 核心技能定义文档
├── _meta.json # 技能元数据
├── LICENSE.txt # Apache 2.0 许可证
├── scripts/ # 工具脚本目录
│ ├── init_skill.py # 技能初始化脚本
│ ├── quick_validate.py # 快速验证脚本
│ └── package_skill.py # 技能打包脚本
└── references/ # 参考文档目录
├── output-patterns.md # 输出模式参考
└── workflows.md # 工作流模式参考
三、核心工具脚本详解
1. init_skill.py - 技能初始化器
功能 :一键生成技能骨架,包含完整的目录结构和模板文件。
使用方法 :
xml
python scripts/init_skill.py <skill-name> --path <output-directory>
生成的结构 :
bash
skill-name/
├── SKILL.md # 主文件(带提示模板)
├── scripts/ # 示例脚本
├── references/ # 示例参考文档
└── assets/ # 示例资产文件
特点 :
- 自动生成带 [TODO] 提示的 SKILL.md
- 创建标准化的资源目录
- 提供可自定义的示例文件
2. quick_validate.py - 格式验证器
功能 :检查技能格式是否符合规范,确保打包顺利。
验证项 :
- ✅ SKILL.md 文件存在
- ✅ YAML frontmatter 格式正确
- ✅ 必需字段(name、description)
- ✅ 命名规范(小写字母、数字、连字符)
- ✅ 长度限制(name 64字符,description 1024字符)
- ❌ 不允许的字符(description 中的 < >)
3. package_skill.py - 技能打包器
功能 :将技能目录打包为可分发的 .skill 文件。
打包流程 :
- 自动运行验证
- 验证通过后创建 .skill 文件(实际是 zip 格式)
- 保持正确的目录结构 使用方法 :
bash
python scripts/package_skill.py <path/to/skill-folder> [output-directory]
四、技能创建的 6 步流程
1. 理解需求
通过具体示例理解技能的使用场景:
- 技能应该支持什么功能?
- 用户会怎么使用它?
- 什么请求会触发这个技能?
2. 规划资源
分析需要的文件:
- scripts/ :重复使用的代码
- references/ :需要参考的文档
- assets/ :输出中使用的模板
3. 初始化技能
使用 init_skill.py 生成骨架。
4. 编辑技能
- 实现脚本文件(并测试)
- 编写参考文档
- 更新 SKILL.md(注意:简洁性是关键)
5. 打包技能
运行 package_skill.py 生成 .skill 文件。
6. 测试和迭代
在实际使用中发现问题,不断改进。
五、核心设计原则
1. 简洁性是关键
- 上下文窗口是宝贵资源
- 只添加 AI 真正需要的信息
- 用简洁示例代替冗长解释
2. 适当的自由度
- 高自由度 :文本指令(灵活任务)
- 中自由度 :伪代码或参数化脚本
- 低自由度 :特定脚本(精确任务)
3. 渐进式披露
- 元数据 :始终在上下文(~100词)
- SKILL.md :技能触发时加载(<5k词)
- 打包资源 :按需加载(无限)
六、实战示例:创建 TXT 转 PDF 技能
1. 初始化技能
css
python scripts/init_skill.py txt-to-pdf --path skills/
2. 实现核心脚本
python
# scripts/txt_to_pdf.py
#!/usr/bin/env python3
"""Convert txt file to PDF"""
from fpdf import FPDF
import sys
def convert_txt_to_pdf(txt_path, pdf_path):
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
with open(txt_path, 'r', encoding='utf-8') as f:
for line in f:
pdf.cell(200, 10, txt=line.strip(), ln=1, align='L')
pdf.output(pdf_path)
return pdf_path
if __name__ == "__main__":
if len(sys.argv) != 3:
print("Usage: python txt_to_pdf.py input.txt output.pdf")
sys.exit(1)
convert_txt_to_pdf(sys.argv[1], sys.argv[2])
3. 编写 SKILL.md
yaml
---
name: txt-to-pdf
description: Convert text files (.txt) to PDF documents. Use when users want
to convert text content into PDF format.
---
4. 打包技能
bash
python scripts/package_skill.py skills/txt-to-pdf
七、最佳实践
- 描述清晰 :在 description 中明确技能的功能和触发条件
- 结构合理 :保持 SKILL.md 简洁,复杂内容放到 references 中
- 脚本测试 :所有脚本都要实际运行测试
- 避免冗余 :不要创建 README 等多余文件
- 按需加载 :使用渐进式披露模式
八、总结
Skill Creator 项目为创建 AI 助手技能提供了完整的工具链和最佳实践:
- 从初始化到打包的全流程支持
- 标准化的目录结构和验证机制
- 强调简洁性和模块化设计
- 提供实用的工作流和输出模式参考 通过这个项目,开发者可以更高效地创建高质量的 AI 技能,让 AI 助手在特定领域表现得更加专业。无论是企业内部工具还是面向公众的技能,Skill Creator 都能帮助你快速实现。
写在最后
AI 技能的发展为我们提供了一种全新的方式来扩展 AI 助手的能力。通过合理设计和实现,我们可以让 AI 在特定领域发挥出更大的价值。希望本文能帮助你快速上手技能开发,创造出更多实用的 AI 技能!