Agent Skills 的作用,是把一个可重复执行的任务封装成 Agent 能稳定调用的能力。它不是单纯的一段提示词,而是一套包含触发条件、执行步骤、工具脚本、模板文件、输出约束的任务包。
当任务只是一次性问答时,直接写提示词就够了;当任务会反复出现,比如分析 CSV 文件、整理会议纪要、生成竞品报告、处理科研论文、检查代码仓库,Skill 更合适。它能让 Agent 在相同场景下按同一套流程做事,而不是每次重新靠临场提示词发挥。
Agent Skill 解决的核心问题
普通提示词最大的问题是不可沉淀。今天写了一段很长的提示词,明天换一个任务、换一个窗口、换一个同事,很多细节又要重新解释。
Skill 把这些细节放进固定目录里:
my-skill/
├── SKILL.md # Skill 的入口说明
├── scripts/ # 可选:Python、Shell、Node.js 等脚本
│ └── analyze.py
├── templates/ # 可选:报告模板、邮件模板、文档模板
│ └── report.md
├── examples/ # 可选:输入输出样例
│ └── sample-output.md
└── assets/ # 可选:参考资料、规范文件、配置文件
其中最重要的是 SKILL.md。它告诉 Agent:
| 内容 | 作用 |
|---|---|
| 什么时候使用这个 Skill | 避免 Agent 在不相关任务里误调用 |
| 输入是什么 | 文件、文本、链接、数据表还是业务描述 |
| 执行步骤是什么 | 把任务拆成稳定流程 |
| 可以使用哪些工具 | 例如 Python、命令行、浏览器、文件系统 |
| 输出格式是什么 | Markdown、JSON、表格、报告、代码补丁 |
| 有哪些限制 | 数据不能编造、字段不能缺失、格式必须固定 |
| 遇到异常怎么办 | 文件缺失、字段不匹配、脚本失败时如何处理 |
可以把 Skill 理解成“给 Agent 用的操作手册 + 工具箱”。
Skill 的典型运行流程
Agent 收到任务后,会根据 Skill 的描述判断是否匹配。如果匹配,就加载对应的 SKILL.md,再按里面的流程调用脚本、读取模板或生成结果。
flowchart TD
A[用户提出任务] --> B[Agent 判断任务意图]
B --> C{是否匹配某个 Skill}
C -- 否 --> D[按普通对话处理]
C -- 是 --> E[加载 SKILL.md]
E --> F[读取模板、示例、资源文件]
E --> G[调用脚本或工具]
F --> H[生成中间结果]
G --> H
H --> I[按 Skill 约束检查输出]
I --> J[返回最终结果]
这套机制的重点不是“让 Agent 更聪明”,而是把任务路径固定下来。比如做 CSV 分析时,Skill 可以明确要求:
- 先检查文件编码和分隔符;
- 再识别字段类型和缺失值;
- 对数值字段做统计;
- 对分类字段做频次分析;
- 必要时生成图表;
- 输出时必须包含数据质量问题和结论限制。
这样做出来的结果更稳定,也方便在团队里复用。
11 个可参考的 Agent Skills 仓库
从零开始写 Skill 并不划算。更高效的方式是先参考已有仓库,理解别人如何组织 SKILL.md、脚本、模板和示例,再按自己的业务改造。
| 仓库 | 地址 | 适合参考的方向 |
|---|---|---|
| Anthropic 官方 Skills | https://github.com/anthropics/skills | 官方示例,适合学习目录结构、SKILL.md 写法、文档处理和代码执行类 Skill |
| oai-skills | https://github.com/eliasjudin/oai-skills | 面向 OpenAI 执行环境的 Skill 组织方式,适合参考文件系统和执行环境设计 |
| Superpowers | https://github.com/obra/superpowers/tree/main/skills | 覆盖面很广,适合查找通用生产力任务的 Skill 写法 |
| ComposioHQ awesome-claude-skills | https://github.com/ComposioHQ/awesome-claude-skills | 偏业务场景,例如竞品分析、会议洞察、运营辅助 |
| BehiSecc awesome-claude-skills | https://github.com/BehiSecc/awesome-claude-skills | Skill 与 SubAgent 组合玩法,适合研究多角色任务拆分 |
| VoltAgent awesome-claude-skills | https://github.com/VoltAgent/awesome-claude-skills | 自动化流程相关,适合工作流编排场景 |
| Travisvn awesome-claude-skills | https://github.com/travisvn/awesome-claude-skills | 开发者工具链集成,适合代码、仓库、工程辅助类任务 |
| ClaudeKit Skills | https://github.com/mrgoonie/claudekit-skills/tree/main/.claude/skills | Web 开发相关 Skill,适合前端、全栈、项目脚手架场景 |
| K-Dense-AI Scientific Skills | https://github.com/K-Dense-AI/claude-scientific-skills | 科研文献、实验数据、学术分析相关任务 |
| Bear2u my-skills | https://github.com/bear2u/my-skills/tree/master/skills | 个人效率工具集合,适合参考轻量级 Skill 的组织方式 |
| n8n-skills | https://github.com/czlonkowski/n8n-skills | 工作流自动化,适合 n8n 场景下的任务封装 |
选择仓库时不要只看数量,重点看三个地方:
| 检查点 | 好的 Skill | 容易出问题的 Skill |
|---|---|---|
| 触发描述 | 明确说明什么任务该用 | 描述很泛,什么任务都像能用 |
| 执行步骤 | 能拆成可验证的动作 | 只有口号式要求 |
| 输出约束 | 格式、字段、边界都清楚 | 只说“生成高质量结果” |
| 工具脚本 | 脚本职责单一,输入输出明确 | 脚本和说明耦合混乱 |
| 示例文件 | 有输入输出样例 | 只能靠猜测使用方式 |
复用 Skill 的正确方式
直接复制一个 Skill 并不等于能用。Skill 的价值在于和自己的任务、目录、工具链匹配。比较稳的改造路径是:
flowchart LR
A[确定重复任务] --> B[搜索相似 Skill]
B --> C[复制最接近的目录]
C --> D[改写触发条件]
D --> E[替换业务步骤]
E --> F[补充脚本和模板]
F --> G[用真实样例测试]
G --> H[根据失败案例收紧约束]
常见本地操作可以这样开始:
# 克隆官方 Skills 仓库
git clone https://github.com/anthropics/skills.git
# 查看已有 Skill
ls skills/skills
# 复制某个 Skill 作为改造起点
mkdir -p .claude/skills
cp -R skills/skills/skill-creator .claude/skills/
不同 Agent 平台的 Skill 存放位置可能不同,项目级目录、用户级目录、上传式配置都有可能存在。目录怎么放要以对应平台文档为准,但 Skill 内部的设计思路基本一致:SKILL.md 负责说明,脚本和资源负责执行。
一个最小可用的 SKILL.md 示例
假设要做一个 CSV 分析 Skill,可以从这样的结构开始:
---
name: csv-analyzer
description: Use this skill when the user needs to inspect, clean, summarize, or visualize CSV files.
---
# CSV Analyzer
## When to use
Use this skill for tasks involving CSV files, including:
- checking data quality
- summarizing numeric and categorical columns
- finding missing values and duplicate rows
- generating simple charts
- producing a Markdown analysis report
Do not use this skill for non-tabular files or database queries unless the data has already been exported as CSV.
## Inputs
The user should provide one or more CSV files. If no file is provided, ask for the file before starting.
## Workflow
1. Inspect the file encoding, delimiter, row count, and column names.
2. Detect column types: numeric, categorical, datetime, text.
3. Check missing values, duplicated rows, and suspicious outliers.
4. Generate summary statistics for numeric columns.
5. Generate frequency tables for categorical columns.
6. If charts are useful, create simple visualizations.
7. Return a Markdown report with:
- dataset overview
- data quality issues
- key findings
- limitations
- recommended next steps
## Constraints
- Do not invent fields that are not present in the CSV.
- Do not make causal claims from descriptive statistics.
- If the file cannot be parsed, explain the exact failure reason.
- Keep all generated chart filenames relative to the working directory.
## Tools
Use Python with pandas and matplotlib when computation or visualization is needed.
这个示例已经具备一个 Skill 的基本骨架:触发条件、输入要求、执行步骤、输出格式和约束。实际使用时,可以继续加入 scripts/analyze_csv.py,把数据检查逻辑固化成脚本,而不是每次都让 Agent 临时写代码。
用 skill-creator 生成 Skill 初稿
Anthropic 官方 Skills 仓库里有一个 skill-creator,它的作用是辅助生成新的 Skill。更准确地说,它可以把自然语言需求整理成结构化的 SKILL.md,再由人补充业务细节、脚本和测试样例。
地址:
https://github.com/anthropics/skills/tree/main/skills/skill-creator
使用时,不要只说“帮我写一个 Skill”。需求越具体,生成的结构越接近可用版本。可以按这个格式描述:
请创建一个 Agent Skill,用于批量处理内容稿件。
目标:
- 输入一组 Markdown 文件
- 统一标题层级
- 检查代码块语言标识
- 删除推广尾部
- 生成摘要和标签
- 输出处理后的 Markdown 文件
运行环境:
- 可以读写本地文件
- 可以使用 Python 脚本
- 不需要联网
输出要求:
- 生成 SKILL.md
- 如果需要脚本,请给出 scripts/ 目录设计
- 输出格式必须包含目录结构、执行流程、异常处理和测试样例
限制:
- 不改动代码块内部内容
- 不凭空增加技术结论
- 遇到不确定内容时保留原句并标记 TODO
生成初稿后,要重点检查四件事:
| 检查项 | 需要确认的问题 |
|---|---|
| 触发条件 | 是否会被不相关任务误触发 |
| 执行流程 | 是否能按步骤完成真实任务 |
| 工具依赖 | 脚本、命令、文件路径是否真实存在 |
| 失败处理 | 输入缺失、格式错误、脚本失败时有没有处理方式 |
skill-creator 能节省从空白文件开始搭结构的时间,但它不能替代业务判断。真正决定 Skill 是否好用的,仍然是任务边界、测试样例和失败案例处理。
Skill 不等于提示词模板
很多人写 Skill 时,会把它写成一段很长的系统提示词。这种写法能用,但复用价值不高。Skill 和提示词模板的区别可以这样理解:
| 对比项 | 提示词模板 | Agent Skill |
|---|---|---|
| 主要内容 | 一段指令文本 | 指令、流程、脚本、模板、示例 |
| 适合任务 | 一次性生成、轻量改写 | 重复任务、复杂流程、文件处理 |
| 可维护性 | 长了以后难改 | 可以拆目录、拆脚本、拆模板 |
| 稳定性 | 依赖模型临场发挥 | 用步骤和工具固定执行路径 |
| 团队复用 | 复制粘贴为主 | 可以放进仓库版本管理 |
如果一个任务只需要一句话就能说清,没必要做成 Skill;如果一个任务每次都要解释背景、规则、输出格式和异常处理,就该考虑封装成 Skill。
哪些场景适合做成 Skill
| 场景 | 是否适合 | 原因 |
|---|---|---|
| CSV、Excel、日志分析 | 适合 | 有固定输入格式和固定分析流程 |
| 周报、会议纪要、报告生成 | 适合 | 输出结构稳定,模板复用价值高 |
| 代码检查、项目初始化、脚手架生成 | 适合 | 可以结合脚本和仓库规范 |
| 科研论文整理、实验数据分析 | 适合 | 需要固定引用规则和数据处理流程 |
| n8n、Zapier 等自动化流程设计 | 适合 | 步骤明确,适合沉淀为工作流说明 |
| 临时闲聊、开放式创意发散 | 不太适合 | 边界不稳定,封装成本高 |
| 只运行一次的小任务 | 不太适合 | 写 Skill 的成本可能高于直接完成任务 |
判断标准很简单:任务是否会重复出现,流程是否可以固化,输出是否需要稳定。如果三个答案都是“是”,Skill 就有价值。
写 SKILL.md 时最容易踩的坑
1. description 写得太泛
错误写法:
description: Use this skill when the user needs help with data.
这个描述几乎什么都能匹配,Agent 很容易误用。更好的写法是把任务边界写清楚:
description: Use this skill when the user provides CSV files and asks for data quality checks, summary statistics, or simple visualizations.
2. 只有要求,没有流程
“请生成专业报告”“请确保质量很高”这类句子不能指导执行。Skill 需要写成可操作步骤,例如检查输入、解析文件、生成中间结果、校验输出。
3. 把所有逻辑塞进 SKILL.md
SKILL.md 应该负责说明流程,不适合承载大量复杂代码。能脚本化的逻辑放到 scripts/,能模板化的内容放到 templates/,能作为案例的内容放到 examples/。
4. 没有失败处理
真实任务一定会遇到文件缺失、字段变化、编码错误、脚本失败。Skill 里要提前说明这些情况怎么处理,否则 Agent 可能会跳过错误继续生成一个看似完整的结果。
5. 没有用真实样例测试
一个 Skill 写得是否清楚,不是靠肉眼判断,而是用真实输入跑几遍。每次失败都要反向修改触发条件、步骤或约束。经过几轮测试后,Skill 才会从“能看”变成“能用”。
一个实用的 Skill 建设顺序
个人或团队刚开始引入 Agent Skills 时,不需要一次性做很多。更稳的顺序是:
- 从重复次数最高的任务开始,例如日报、报告、数据检查、代码审查;
- 去已有仓库找相似 Skill,优先参考官方库和同领域仓库;
- 复制结构,不直接照搬业务描述;
- 用 skill-creator 生成初稿或改写现有
SKILL.md; - 加入真实样例,跑通一次完整任务;
- 把失败情况写回 Skill;
- 放进版本管理,让团队持续迭代。
Agent Skills 的核心价值不在于写出一份漂亮的 Markdown,而是把经验变成可重复调用的工程资产。提示词解决一次问题,Skill 解决一类问题。