Leader 说Skills就是Prompt换皮,我不听,花一周给团队写了30个Skill。他偷偷找我:这个月的绩效你拿A!
大家好,我是二哥呀。
上个月,我们组在讨论要不要引入 Skills。Leader 当场泼冷水:"这不就是把 Prompt 换个名字吗?有啥好折腾的。"
我没说话,但心里不服。
一周后,我默默给团队写了 30 个 Skill。代码审查时间从平均 2 小时降到 20 分钟,文档生成效率提升了 5 倍。Leader 偷偷把我拉到茶水间:"这个月的绩效,你拿 A。"
今天,我就把 Skills 的底层原理、开发实战、最佳实践,全部掏心窝子分享给你。
固定的流程我一般会用脚本来完成,需要借助一点AI能力的我会用Skills,最后才是上OpenClaw。
所以今天这篇我打算深入剖析一下Skills。

冲突: 每次和 AI 对话,都要把相同的指令重复一遍,费时费力还容易出错。更扎心的是,你辛辛苦苦写好的 Prompt,下次换个对话就没了,根本没法沉淀。
结果: Skills 的出现,就是为了解决这个问题。它把公共的 Prompt 封装成可复用的“技能模块”,一次开发,到处使用。更重要的是,它采用了“渐进式披露”架构,不会让你的上下文窗口爆炸。
收益: 读完这篇文章,你会彻底搞懂 Skills 的底层原理,掌握三步加载机制,学会从零开发一个属于自己的 Skill。别再重复造轮子了,让 AI 真正为你所用。
01、什么是 Skills?
先说结论:公共的 Prompt 就是 Skills。
听起来很简单对吧?但这个定义背后,藏着 AI 开发的一个核心问题——重复建设。
你想想看,每次让 AI 帮你写代码,是不是都要先告诉它“用 Java”、“遵循阿里巴巴代码规范”、“注释要写清楚”?
每次让 AI 帮你写文章,是不是都要先说“用二哥的风格”、“口语化一点”、“不要用 AI 味词汇”?
这些重复的指令,就是软件开发中的“重复代码”。而在软件开发中,我们解决重复代码的方法是“封装复用”。
Skills 做的就是这件事。它把这些公共的 Prompt 封装起来,变成一个“技能模块”。下次你需要用的时候,直接调用这个 Skill 就行,不用再把那些指令重复一遍。

这就像你写了一个工具类,以后所有项目都能直接调用。区别在于,这个工具类是给 AI 用的,不是给人用的。
02、Skills 的设计哲学
理解了什么是 Skills,接下来要搞懂一个问题:为什么 Skills 不直接把所有内容都加载进去?
答案是:AI 的工作空间是有限的。
我们知道 AI 在工作的时候,并不是一个无限的资源空间,而是运行在一个特定大小的窗口上。
也就是上下文窗口(Context Window)。我的Claude Code 配的是GLM-5,目前大小是 200K,看起来很大,但真用起来,你会发现很快就不够用了。

如果你有 100 个 Skills,每个 Skill 的完整内容都是几千字的 Prompt,全部加载进去,上下文窗口直接爆炸。AI 还没开始干活,光加载这些 Skills 就把 token 用完了。
所以 Skills 的设计理念是:不是让 AI 知道更多,而是让 AI 在恰当的时间知道恰当的事。
这就是“渐进式披露(Progressive Disclosure)”架构的核心思想。
具体怎么实现呢?搞个分级缓存。当输入 Prompt 的时候,不要带上全量的 Skills 信息,而是最基本的元信息。AI 会按照语意进行匹配,匹配到了才会加载实际的内容。

这个过程分为三步:
第一步:发现阶段。 启动时,AI 扫描所有 Skills 的元数据,建立一个“技能注册表”。这个注册表只包含最基本的信息:Skill 名称、描述、触发关键词。就像图书馆的目录卡片,只告诉你书名和位置,不会把整本书都给你看。
第二步:语义匹配。 当用户输入一个问题,AI 会根据语义去匹配相关的 Skills。比如你问“帮我写一个 Java 的单例模式”,AI 就会匹配到“Java 代码生成”相关的 Skill。这个过程是动态的,基于向量相似度计算。
第三步:执行阶段。 匹配成功后,才会加载这个 Skill 的完整内容。这时候,AI 才真正“看到”这个 Skill 的详细指令、示例、约束条件。
这三步走完,一个 Skill 才算真正被激活。而那些没被匹配到的 Skills,全程只占用几个 token 的元数据空间。这就是为什么你可以拥有几十上百个 Skills,却不用担心上下文爆炸。
03、为什么 Skills 可以复用?
说到复用,可能有人会问:我直接把 Prompt 保存到笔记里,下次复制粘贴不就行了?为什么还要搞个 Skills?
这个问题问得好。复制粘贴确实能解决一部分问题,但它有三个致命缺陷:
第一,没法共享。 你的 Prompt 只能在你自己的笔记里躺着,同事要用还得重新写一遍。团队里 10 个人,同样的 Prompt 可能被写了 10 次,每次还都不一样。
第二,没法迭代。 你今天发现 Prompt 可以优化,改了一版。但你的同事还在用旧版,他们的笔记里躺着的是过时的 Prompt。版本混乱,没法统一升级。
第三,没法组合。 有些任务是复合的,需要多个 Prompt 配合使用。复制粘贴的方式,你得手动把多个 Prompt 拼在一起,容易出错,还不好维护。
Skills 完美解决了这三个问题。
首先,Skills 可以在团队内快速传播。你写好一个 Skill,放到团队的 Skills 仓库里,所有人都能直接用。个人经验将会以 Skills 的形式快速在团队内传播,团队的整体战斗力也随之迈上了一个新的台阶。
其次,Skills 是可迭代的。你优化了一个 Skill,所有人都能立刻用上最新版本。就像 npm 包一样,一处更新,处处生效。
最后,Skills 是可组合的。你可以把多个 Skills 组合起来,完成复杂的任务。比如“代码审查 Skill”可以和“安全检查 Skill”组合,一键完成代码质量和安全的双重检查。

当 Skills 的数量达到一定规模时,其实我们就相当于搭建了一个专门给 AI 用的技能商店。这就像手机上的 App Store,你需要什么功能,就去商店里下载对应的 Skill。
AI 时代,系统设计将从面向于人设计转向面向 AI 设计。这个转变,正在发生。
04、如何开发一个 Skill?
理论讲完了,接下来是实操。我们来看如何开发一个属于自己的 Skill。
开发 Skill 的核心思路是:将工作中的案例总结提炼(归纳),固化为 Skill,用以应对同类问题(演绎),或是再次反馈完善这个 Skill。
听起来有点抽象,我用一个具体的例子来说明。
假设你经常需要让 AI 帮你做“逆向建模”。什么是逆向建模?就是你有一段现有的代码,想让 AI 帮你分析它的设计思路,然后生成对应的设计文档或者架构图。这是开发过程中最高频的场景之一,对应着我们最常见的应用场景:需求迭代。
第一步,观察你的 Prompt 过程。你可能会这样问 AI:
“帮我分析这段代码的设计思路,然后画一个架构图。” “注意要标注清楚各个模块的职责。” “用 PlantUML 语法。” “模块之间的关系用箭头表示。”
第二步,总结提炼。把这些指令固化为一个 Skill:
---
name: reverse-modeling
description: 逆向建模,分析代码设计思路并生成架构图
trigger:
- 逆向建模
- 代码分析
- 架构图
---
## 任务目标
分析给定代码的设计思路,生成清晰的架构图。
## 输出要求
1. 标注清楚各个模块的职责
2. 使用 PlantUML 语法
3. 模块之间的关系用箭头表示
4. 包含关键数据流
## 示例
输入:一段 Spring Boot 应用的代码
输出:展示 Controller -> Service -> Repository 层级关系的架构图第三步,验证和迭代。在实际使用中,你可能会发现这个 Skill 还不够完善。比如有时候需要支持 Mermaid 语法,有时候需要生成时序图。你可以把这些新需求加进去,让这个 Skill 越来越强大。

这里有一个关键点:你是否有去洞察问题的眼力见。
在这个 AI 飞速发展的时代,解决问题的能力会被 AI 逐步取代,但精准发现一个有价值的问题,恰恰是最难被替代的核心能力,也是 Skill 的价值根源。
很多人用 AI 解决完一个问题,就关掉对话框,继续下一个任务。但如果你想让 AI 越来越懂你,你得学会让它帮你沉淀经验。
怎么做?
很简单。当你用 AI 解决完一个新问题的时候,别急着关闭对话框,让 Agent 自己观察你的 Prompt 过程,让它自己总结沉淀。这个过程只需要你在解决完问题后,加一句 Prompt:
“观察我们刚才的对话过程,总结出可以复用的 Skill,保存下来。”
AI 会自动帮你提炼出一个 Skill,下次遇到类似问题,直接调用就行。
05、开发一个“简历优化” Skill
光说不练假把式。我们来开发一个真正实用的 Skill——简历优化。
这个 Skill 的场景是:你有一份简历,想让 AI 帮你优化措辞、突出亮点、规避常见问题。
首先,创建 Skill 文件。在你的 Skills 目录下,新建一个 resume-optimizer/SKILL.md 文件:
---
name: resume-optimizer
description: 简历优化专家,帮助优化措辞、突出亮点、规避常见问题
trigger:
- 简历优化
- 简历
- CV
- 求职
---
## 角色定义
你是一位资深的简历优化专家,拥有 10 年以上的 HR 和猎头经验。你擅长从招聘者的视角审视简历,帮助求职者突出核心竞争力。
## 优化原则
1. 用数据说话:将模糊的描述转化为量化的成果
2. 突出关键词:根据目标岗位调整关键词密度
3. 精简冗余:删除与目标岗位无关的经历
4. 规避雷区:避免使用“参与”、“协助”等弱动词
## 优化流程
1. 分析目标岗位的 JD,提取核心要求
2. 对比简历内容,找出匹配点和差距
3. 优化措辞,突出成果而非过程
4. 检查格式和排版,确保专业美观
## 输出格式
### 简历诊断
- 当前问题:[列出 3-5 个主要问题]
- 优化方向:[给出具体的优化建议]
### 优化后简历
[输出优化后的简历内容]
### 亮点提炼
[列出简历中的 3 个核心亮点]然后,你就可以直接使用这个 Skill 了。在对话中输入:
“用 resume-optimizer Skill 帮我优化这份简历:[粘贴简历内容]”
AI 会自动加载这个 Skill,按照你定义的流程帮你优化简历。

这个 Skill 你可以不断迭代。比如加入“针对不同岗位的优化策略”、“ATS 系统兼容性检查”等功能。每次迭代,都是在积累你的 AI 资产。
06、Skills 的最佳实践
开发了一段时间 Skills 之后,我总结了几个最佳实践,分享给大家。
第一,因需而建。 不要为了建 Skill 而建 Skill。只有当你发现某个 Prompt 被重复使用 3 次以上,才考虑把它封装成 Skill。过度封装反而会增加维护成本。
第二,可组合。 一个 Skill 只做一件事。复杂任务通过组合多个 Skills 来完成。这就像 Unix 的设计哲学:每个工具只做一件事,但做到极致。
第三,可迭代。 Skill 不是一劳永逸的。随着业务变化,你需要不断更新 Skill 的内容。把 Skill 当成活文档,而不是死文档。
第四,有触发词。 每个 Skill 都要有明确的触发关键词。这样 AI 才能准确匹配。触发词要具体,避免歧义。
第五,有示例。 在 Skill 中加入具体的示例,能大大提高 AI 的理解准确度。示例是最好的文档。

ending
写完这篇文章,我回头看了一眼自己的 Skills 目录。
删掉了一些我之前装了,但并没有用到的。
目的就是希望,Agent在加载我的Skills时能够最轻量级,减少Skills太多以后对Agent上下文的干扰。

大家也千万不要在自己的Agent里装太多Skills,用到的才是最好的,如果你用不到,即便是别人说的天花乱坠,那也要及时清理掉。
就像我们人,也要学会断舍离。
及时情况自己的大脑,重新来过,也许就会有新的不一样。
学习AI的各种名字,使用AI的各种工具,我认为目的只有一个,那就是让AI为我们所用,真正去帮助到我们。
假如没有帮助到你,狠心删掉也罢。
我们下期见。
