一个 Skill(技能包)本质是独立文件夹,用来存放AI智能体执行任务所需的全部资源。目录结构支持灵活配置:最简单的技能只需要单个 SKILL.md;复杂的企业级技能,可以划分多个子目录,存放示例、模板、脚本与测试用例,方便版本管理和团队协作。

完整目录示例
my-skill/
├── SKILL.md # 必选。技能核心文件,入口
├── metadata.json # 可选。扩展元数据
├── examples/ # 可选。输入输出样例
│ └── demo-case.md
├── templates/ # 可选。输出模板
│ └── report-template.md
├── scripts/ # 可选。可执行脚本
│ └── helper.py
└── tests/ # 可选。测试用例
└── test-01.md
文件与目录说明
SKILL.md(必填)
整个技能包的入口文件,AI读取这个文件来理解技能。
文件顶部一般是YAML元数据,包含技能名称、描述、版本、作者。AI依靠description判断是否触发该技能。元数据下方是Markdown正文,定义任务目标、执行步骤、输出规范、边界约束与异常处理。
metadata.json(可选)
用于存放额外扩展信息,比如依赖项、标签、平台兼容信息,部分AI工具会读取这个文件做展示和校验。简单技能可以不创建。
examples/ 示例目录
存放任务样例,包含输入指令和对应的标准输出。AI在执行时可以参考样例,减少输出偏差,保证结果稳定。适合复杂业务场景。
templates/ 模板目录
存放固定格式模板,例如报告模板、邮件模板、Markdown文档模板。AI执行任务时直接套用模板,统一输出样式。
scripts/ 脚本目录
放置可执行代码,用来处理文件解析、接口调用、数据计算等动作。SKILL.md里可以指引智能体调用这些脚本完成操作。
tests/ 测试目录
存放测试用例,用于验证技能逻辑是否符合预期。每次修改SKILL.md之后,可以运行测试用例,防止更新后技能逻辑出错,适合团队长期维护。
两种目录模式
- 极简模式
只保留SKILL.md,没有其他子文件夹。适合简单场景,快速搭建、快速调试。
simple-skill/
└── SKILL.md
- 完整模式
包含上面全部文件夹,适合企业业务场景,多人协同开发、持续迭代。
目录结构示意图(可直接放进文章)
┌─────────────────────────────────────┐
│ my-skill/(技能包根目录) │
│ ├─ SKILL.md 【核心入口】 │
│ ├─ metadata.json 扩展信息 │
│ ├─ examples/ 样例参考 │
│ ├─ templates/ 输出模板 │
│ ├─ scripts/ 执行脚本 │
│ └─ tests/ 测试用例 │
└─────────────────────────────────────┘
↓ AI读取逻辑
【第一步】读取 SKILL.md 头部元信息,判断技能是否匹配当前任务
【第二步】匹配成功,加载完整 SKILL.md
【第三步】按需读取 examples、templates、scripts、tests 资源
目录设计原则
- 职责分离:技能规则、样例、模板、脚本分开存放,不要全部写在SKILL.md中,方便单独修改维护。
- 按需添加:不需要的目录可以不创建,不要为了完整而增加多余文件。
- 适配渐进式加载机制:AI先读取SKILL.md头部元信息判断是否匹配任务;匹配成功后,才加载正文和相关资源文件。
- 支持Git版本管理:目录结构是纯文本文件,可以直接提交代码仓库,实现版本追踪、多人协作。
小结
Skills目录结构没有强制要求,核心是SKILL.md。其余目录都是可选扩展,按需选用。简单技能轻量化;业务复杂的技能,可以拆分examples、templates、scripts、tests目录,实现能力解耦,便于团队维护。
0 条笔记