本文基于开源仓库 liqiang88/skills‑demo 中的 examples/hello‑world 示例,带你完成第一个最简 Skill。hello‑world 不涉及脚本调用、外部API,仅做文本应答,核心作用是验证本地 Skill 加载环境是否正常,熟悉 SKILL.md 文件格式、目录规范、触发逻辑与渐进式加载原理。
原skills-demo的例子:hello‑world,Cursor Agent 执行结果:

一、前期准备
- 安装 VS Code;安装支持 Agent Skills 的AI插件,例如 GitHub Copilot,并开启 Agent(智能体)模式。
- 克隆
skills‑demo仓库到本地,我们直接在该项目中练习:
git clone https://github.com/liqiang88/skills-demo.git
- VS Code打开
skills‑demo项目。
Agent Skills是开放标准,写好的 hello‑world 技能,也可以运行在 Claude Code、Cursor 等兼容Agent Skills的工具。
二、理解示例目录结构
仓库自带示例路径:examples/hello‑world。
Agent Skills有项目默认加载目录:.agents/skills/。
重要强制规范:技能文件夹名称,必须与SKILL.md头部YAML的
name字段完全一致,字母、连字符必须完全匹配。
两种使用方式:
- 直接使用仓库自带示例:
skills‑demo/examples/hello‑world - 将示例复制到默认扫描目录,方便插件自动识别:复制整个
hello‑world文件夹到.agents/skills/
复制完成后的目录树:
skills‑demo/
├── examples
│ └── hello‑world
│ └── SKILL.md
└── .agents
└── skills
└── hello‑world
└── SKILL.md
hello‑world属于极简技能,只需要SKILL.md一个文件,不需要examples、templates、scripts等子文件夹。
三、SKILL.md源码解读
打开 hello‑world/SKILL.md,完整参考示例代码如下:
--- name: hello-world description: Hello‑world最小测试技能,用户输入hello、你好、打招呼、测试技能时触发本技能。 version: 1.0.0 author: skills‑demo ---# Hello‑world 测试技能
## 任务目标
验证Skill是否被正确加载触发,向用户输出提示问候。 ## 执行步骤
1. 友好向用户问好;
2. 告知用户 hello‑world 技能已经成功触发;
3. 简单说明Skill的作用。## 输出规范
- 只做文本输出,不调用终端、脚本;
- 输出友好简洁,参考格式:
> ✋ Hello‑world 技能已成功激活!
> 这是你的第一个Agent Skill,Skill可以将业务流程、经验封装,交给AI智能体自动执行。
文件两大部分
- YAML头部元信息(文件最上方,
---包裹)
name:技能唯一标识符,和文件夹名必须完全一致;description:触发核心,Agent扫描该描述判断是否启用技能,需要覆盖用户提问关键词;version:版本号,用于迭代管理;author:作者标识。
- Markdown正文
技能激活之后,AI需要严格遵守的规则,包含任务目标、执行步骤、输出格式约束。
编辑完成保存文件 Ctrl+S。
四、加载与测试 hello‑world
- VS Code打开Copilot Chat面板,底部切换为 Agent智能体模式。
- 在聊天框输入
/skills,查看已加载技能列表,确认列表中出现hello‑world。
如果列表看不到技能,请排查:
① 文件路径,确认文件夹放置在插件扫描目录.agents/skills/;
② 文件夹名称与YAML中name完全一致;
③ 文件名为大写SKILL.md,不能小写;
④ 修改文件后,重启会话或者刷新技能列表。
- 输入测试提问,例如:
你好,测试技能。
✅ 预期行为:Agent匹配描述关键词,自动激活 hello‑world,严格按照输出规范返回问候文本。
❌ 常见问题:
- AI没有触发技能,只是普通对话回答:优化
description的关键词,刷新技能列表,尝试切换模型; - 输出内容和预期不一样:调整SKILL.md的执行步骤、输出规范,保存后重新测试。
五、底层运行原理:渐进式披露
hello‑world虽然简单,但完整走完Agent Skills的标准三阶段工作流程:
- 发现阶段
会话初始化,Agent扫描技能目录,仅读取所有技能的name和description元信息,不会加载完整SKILL.md,减少Token消耗。 - 激活阶段
用户提问和description描述匹配,此时才将完整的SKILL.md全部加载进入上下文。 - 执行阶段
AI读取任务目标、执行步骤、输出规范,按照文档规则输出结果。
和临时提示词对比:提示词只在单次对话生效;Skill保存在本地文件夹,支持Git版本管理,可重复调用、分享。
六、基于 skills‑demo 的练习拓展
- 版本管理,在项目根目录提交修改:
git add .
git commit -m "hello‑world:第一个测试技能"
- 修改练习:修改SKILL.md中的问候话术、新增触发关键词,保存重新测试,观察AI输出变化。
- 进阶练习:为hello‑world新增
examples文件夹,增加输入输出样例,让AI输出行为更加稳定。
小结
hello‑world是Skill的最小原型,掌握3个关键点:
- 文件夹名与
name字段必须完全一致; description是技能触发开关;- 文件分为YAML元信息 + Markdown正文;依靠渐进式加载,按需读取完整技能。
成功跑通hello‑world,代表你的Skill开发环境就绪。后续复杂的文档处理、命令调用Skill,都只是在这套基础结构之上,增加模板、脚本、测试用例。
文字流程示意图
用户提问:你好,测试技能
↓
Agent扫描目录,读取所有技能name+description【发现阶段】
↓
匹配 hello‑world,加载完整 SKILL.md【激活阶段】
↓
按照步骤、输出规范返回问候文本【执行阶段】
↓
输出:✋ Hello‑world 技能已成功激活!……
0 条笔记