
# 基本用法
Agent skill是给大模型看的说明文档,那agent是从哪个文件夹读取skill文档呢?
以cursor为例,cursor会从如下目录中加载skill文档
| 位置 | 作用域 |
|---|---|
| .agents/skills/ .cursor/skills/ | 项目级 |
| ~/.agents/skills/ ~/.cursor/skills/ | 用户级 (全局) |
| .claude/skills/ .codex/skills/ ~/.claude/skills/ ~/.codex/skills/ | 为了兼容cursor还会从claude和codex目录加载skill |
每个skill为一个包含SKILL.md文件的文件夹,文件夹的名字则是skill的名字
.agents/
└── skills/
└── my-skill/
└── SKILL.md
技能还可以包含脚本、参考文件和资源等可选目录,这个我们后面会介绍
.agents/
└── skills/
└── deploy-app/
├── SKILL.md
├── scripts/
│ ├── deploy.sh
│ └── validate.py
├── references/
│ └── REFERENCE.md
└── assets/
└── config-template.json
skill的执行流程如下图所示

我们写一个简单的skill,用来统计一段文本中出现的人物,目录结构如下
.claude
└── skills
└── count
├── references
│ └── info.md
├── scripts
│ └── save.py
└── SKILL.md
SKILL.md
---
name: count
description: 统计出现的人数
---
# 统计出现的人数
## 简介
根据文本,统计出现的人数
如果需要获取人物的年龄信息,则读取本目录下references/info.md文件
如果需要保存,则执行本目录下的scripts/save.py
```python
python3 save.py "要保存的内容"
```
## 示例
输入:
小红和小明出去玩了
输出:
总共出现了2个人,分别为小红,小明
如果需要输出人物的年龄信息,则输出如下
总共出现了2个人,分别为小红,小明
| 名字 | 信息 |
|------|------|
| 小红 | 18岁 |
| 小明 | 20岁 |

可以看到agent加载了需要的skill并进行了应用,当然我们可以直接指定需要的skill
/skill的名字再加上用户的输入即可

# 高级用法
# references
info.md
# 个人信息
| 物品 | 价格 |
|-----|-----|
| 小红 | 18岁|
| 小明 | 20岁 |
| 小白 | 20岁 |
可以按需读取参考文档,如下图,加载了info.md,并输出了人物的年龄信息

# scripts
save.py
import sys
def main():
content = sys.argv[1]
print("📝 要保存的内容为:")
print(content)
if __name__ == '__main__':
main()
还可以执行特定的脚本,这个脚本简单打印了一下要保存的内容,就不实际进行保存操作了

# 渐进式披露原则
agent并不会把一开始就把skill的所有内容都传给大模型,而是按需加载

# mcp 和 agent skill 的区别
| 技术 | 作用 |
|---|---|
| mcp | 给大模型提供数据 |
| Agent skill | 教大模型如何处理数据 |
skill不用我们自己写也行,可以描述内容,让大模型自己生成。我们也可以安装别人写好的skill
← mcp指南