👆 微信扫一扫,关注公众号

获取最新 AI 技术文章与实战教程

用过 ChatGPT/Claude 的人都有这种经历:

每次想让 AI 按特定格式输出(比如写周报、生成表格),都要打一大段"规矩"——

“请按以下格式:1. xxx 2. xxx,语气要正式,用中文…”

更烦的是,每次新开对话都要重新交代一遍

今天介绍的 Agent Skill,就是来解决这个问题的。


🤔 先花 1 分钟理解:什么是 Skill?

生活类比:手机的"快捷指令"

你一定用过手机的快捷指令(iPhone)或宏命令(Android):

  • 不用快捷指令:每天早上手动打开天气 App → 查看温度 → 打开音乐 App → 播放歌单 → 打开日历…(5 步操作)
  • 用了快捷指令:对 Siri 说"早上好",一键完成以上所有操作

快捷指令 = 把你常做的一系列操作,打包成一个"咒语"

AI 领域的 Skill 同理

Skill 就是把你常让 AI 做的重复任务,连同"规矩"一起打包

你的重复任务 每次要交代的"规矩" 打包成 Skill 后
写周报 格式要求、要包含哪些模块、语气风格 只需说"帮我写周报"
整理会议纪要 模板结构、要提炼行动项、@责任人 只需说"整理一下纪要"
生成数据报告 图表类型、分析维度、输出格式 只需说"生成本周数据报告"

一句话定义

Skill = 预置的 Prompt 模板,你把"规矩"写成文件,AI 在需要的时候自动加载,不用每次都手动交代。


🔍 深入理解:Skill 在 AI 对话里是怎么工作的?

现在你知道 Skill 是什么了,来看看它的底层机制。

AI 对话时,实际发生了什么?

每次你和 AI 聊天,传过去的结构是这样的:

[系统提示词] ← AI 的"出厂设置"(比如"你是 Claude,一个AI助手")
    ↓
[上下文历史] ← 你们之前的对话记录
    ↓
[你的输入] ← 你刚刚说的话
    ↓
AI 开始思考并回复...

问题在这里:如果你希望 AI 按特定格式回复,传统做法是:

你:请按以下格式帮我写周报:
1. 本周完成事项(用 bullet points)
2. 遇到的问题及解决方案
3. 下周计划
4. 需要的支持
记得用中文,语气正式一点,发给领导的...

(每次新开对话都要打 100 多字,烦不烦?)

Skill 的方案:把"规矩"外挂到文件里

使用 Skill 后,你的输入变成:

你:帮我写本周周报

AI 实际收到的完整 Prompt:
---
[系统提示词]
+
[检测到 Skill: weekly-report]
Skill 内容:"当用户要求写周报时,请按以下格式...(此处省略 300 字详细规矩)"
+
[用户输入:帮我写本周周报]
---
↓
AI 直接输出符合格式的周报

关键区别

  • 传统方式:你的"规矩"散落在每次对话里,换对话就丢了
  • Skill 方式:"规矩"写在文件里,AI 自动挂载,一次配置,永久复用

🛠️ Skill 的三层加载机制

为了让这套机制高效运行,Skill 采用了分层设计:

┌────────────────────────────────────────────────────────────┐
│              AI 启动时扫描 Skills 目录                       │
│  ~/.claude/skills/       ← 全局 Skills(在哪都能用)          │
│  ./.claude/skills/       ← 项目 Skills(只在当前项目生效)     │
└────────────────────────────────────────────────────────────┘
                            ↓
┌────────────────────────────────────────────────────────────┐
│              Level 1:所有 Skill 的"索引"进入上下文            │
│  加载每个 Skill 的 name + description(约 50 字/个)           │
│  AI 靠这个判断:用户的话应该触发哪个 Skill?                    │
│                                                            │
│  例:weekly-report: "按公司模板生成周报"                     │
│       meeting-notes: "整理会议纪要,提取行动项"               │
└────────────────────────────────────────────────────────────┘
                            ↓
┌────────────────────────────────────────────────────────────┐
│              Level 2:触发时注入完整提示词                     │
│  当用户说"帮我写周报"→ AI 匹配到 weekly-report               │
│  → 将该 Skill 的 SKILL.md 完整内容插入当前 Prompt            │
│                                                            │
│  【你的输入变成这样】:                                      │
│  [系统提示] + [weekly-report Skill 全文] + [帮我写周报]      │
└────────────────────────────────────────────────────────────┘
                            ↓
┌────────────────────────────────────────────────────────────┐
│              Level 3:按需引用额外资源                        │
│  如果 Skill 引用了模板文件、示例文档 → 需要时再加载           │
│  不占用初始上下文空间,省 Token!                            │
└────────────────────────────────────────────────────────────┘

为什么要分层?

AI 的上下文窗口是有限的(比如 Claude 3.5 Sonnet 是 200K tokens)。如果一次性加载所有 Skill 的完整内容,几百个 Skill 就会占满空间。

分层设计的巧妙之处:

  • 平时:只加载"索引"(name + description),占用极小
  • 触发时:才加载该 Skill 的完整内容
  • 引用资源:按需读取,用不到就不加载

📝 实战:手把手创建一个周报 Skill

第一步:创建文件结构

在你的项目根目录下:

你的项目/
└── .claude/
    └── skills/
        └── weekly-report/     ← 文件夹名就是 Skill 名
            └── SKILL.md       ← 必须大写,AI 靠这个文件名识别

💡 路径说明:

  • ./.claude/skills/ —— 项目级,只在该项目生效(Claude Code)
  • ./.github/skills/./.agents/skills/ —— GitHub Copilot 也支持
  • ~/.claude/skills/ —— 全局级,在哪都能用

第二步:写入 Skill 内容

文件:SKILL.md

---
name: weekly-report
description: "当用户要求写周报、生成周报、总结本周工作时启用"
---

# 周报生成 Skill

## 触发条件
当用户要求写周报、生成周报、总结本周工作时启用。

## 输出格式要求

【周报】XXX部门-姓名-第X周(日期范围)

一、本周重点工作完成情况
- [事项1]:完成情况(量化描述)
- [事项2]:完成情况
- ...

二、问题与风险
| 问题描述 | 影响程度 | 解决方案 | 需支持 |
|---------|---------|---------|--------|
| ...     | ...     | ...     | ...    |

三、下周工作计划
- [优先级P0] 事项1(预期完成时间)
- [优先级P1] 事项2

四、需要的支持
(如有)

## 注意事项
1. 所有事项必须量化,避免"基本完成"等模糊表述
2. 风险问题必须给出解决方案,不能只抛问题
3. 语气正式,适合发给直属领导
4. 如果用户提供了具体完成事项,直接填充到表格中

文件结构说明

  • --- 包裹的部分叫 frontmatter,必须包含 namedescription
  • name 必须和文件夹名一致
  • description 很重要,AI 靠它判断是否触发这个 Skill
  • 下面的内容就是完整的 Prompt 指令

第三步:测试使用

  1. 保存文件后,重新开启一个 AI 对话(Skill 在启动时扫描)
  2. 输入:帮我写本周周报
  3. AI 会自动按你预设的格式输出,无需再交代"规矩"

🎯 Skill vs 其他方案:为什么要用它?

对比 1:Skill vs 手动复制 Prompt

维度 手动复制 Prompt Agent Skill
持久性 每次新对话都要重新粘贴 文件持久化,自动加载
便捷性 找历史记录 → 复制 → 粘贴 一句话触发
团队协作 只能自己用 写在项目里,团队共用
版本管理 混乱,不知道哪个是最新版 Git 管理,可追溯

对比 2:Skill vs 自定义指令(Custom Instructions)

你可能想问:“这和我直接在 AI 设置里写’自定义指令’有什么区别?”

对比维度 自定义指令 Agent Skill
作用范围 全局生效,所有对话都用同一套 按项目/场景灵活选择
内容长度 通常几百字,长了容易冲突 每个 Skill 独立,可以写很长
触发方式 每次对话都加载 按需触发,不相关时不加载
适用场景 个人通用习惯(如"我是程序员,用中文回答") 具体任务(如"写周报"“生成 API 文档”)

结论:两者不冲突。

  • 自定义指令 = 你的"个人人设",放全局偏好
  • Skill = 你的"工作任务包",按场景加载

🔧 进阶玩法

玩法 1:多 Skill 协同

一个项目可以有多个 Skill,AI 自动匹配:

.claude/skills/
├── weekly-report/      # 写周报
├── meeting-notes/      # 会议纪要
├── data-analysis/      # 数据分析报告
└── email-reply/        # 邮件回复模板

你说什么,AI 就触发什么:

  • “帮我写周报” → 触发 weekly-report
  • “整理一下刚才的会议内容” → 触发 meeting-notes

玩法 2:引用外部资源(Level 3)

Skill 可以引用项目里的其他文件,实现模板和指令分离:

---
name: proposal
description: "生成技术方案文档"
---

请读取 template/proposal.md 文件,按该模板结构生成方案。
模板包含章节:背景、技术选型、架构设计、风险评估...

使用场景

  • 公司 PPT 模板更新了 → 只需改 template/proposal.md,不用改 Skill
  • 不同项目用不同模板 → Skill 复用,只换模板文件

好处:模板和 Skill 解耦,维护更方便。

玩法 3:全局 + 项目级搭配

~/.claude/skills/           # 全局
    └── my-style/           # 个人写作风格

./.claude/skills/           # 项目级
    └── weekly-report/      # 公司周报模板
  • 全局 Skill:走到哪用到哪(如个人偏好的语气风格)
  • 项目 Skill:只在特定项目生效(如该团队的周报模板)

💡 总结

维度 手动 Prompt Agent Skill
本质 每次对话临时写 预写的结构化 Prompt 文件
持久性 对话结束就消失 文件存储,跨会话复用
加载方式 每次手动发一遍 AI 自动按需挂载
团队协作 无法共享 项目成员共用
管理方式 散落在各处 集中管理,版本可控

一句话概括

Skill 是 AI 时代的"提示词工程化"——把零散的手写 Prompt,变成可复用、可管理、可共享的文件资产。


🎁 给你的行动建议

  1. 今天就开始:在你最常用的项目里创建 .claude/skills/
  2. 从高频场景入手:列出你每周让 AI 做 3 次以上的重复任务 → 做成 Skill
  3. 参考社区:访问 skills.sh 看别人怎么写

你平时最常让 AI 做哪些重复性任务? 评论区聊聊,看看能不能提炼成 Skill 👇

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐