上周我在调一套代码审查流程,同一批问题交给Claude和Cursor各自处理,结果一个在15分钟内给出了可合并的修改建议,另一个在反复要我补充上下文。差别不在模型智商,而在前者多加载了一个Skill。这几天正好把几个主流工具的Skill机制全撸了一遍,也翻了不少社区里的推荐清单,整理成这篇博客慢慢更新。
这篇文章主要聊清楚三件事:Skill到底是什么、和Agent/Tool有什么区别;主流工具的Skill安装和推荐;以及怎么写一个能长期用、不翻车的自定义Skill。适合正在用Claude Code、Cursor、Codex、OpenCode等AI编程工具,觉得"效果不稳定"或"每次都要重复啰嗦同一套要求"的开发者。
1. Skill到底是什么:一个装着操作手册的文件夹
先说点基础的,因为很多踩坑都源于对Skill的误解。热词里反复出现"什么是skill"、"skill和agent的区别"、"skill脚本"、"skill语言",这说明大量使用者确实被这几个概念绕晕了。
1.1 Skill的本质是"给AI的操作手册",不是新模型
Skill本质上是一个非常朴素的东西:一个文件夹,里面放一份SKILL.md主文件,再配上参考文档、示例模板、甚至是几个辅助脚本。当你在对话中触发某个场景时,AI会把这个文件夹里的内容读入上下文,然后严格按照你写好的流程去执行。
我习惯用一个比喻来解释:模型是一个刚入职的天才员工,能力很强但不了解你们公司的做事方式。Skill就是给这个员工看的SOP(标准作业程序)手册。没有SOP,他每次都靠猜;有了SOP,他第一次上手就能按你的规矩出活。
这就引出了一个关键结论:Skill不改变模型智商,它改变的是模型的"工作方式"。同一个模型,挂了Skill和没挂Skill,输出质量差距可以非常大。尤其是那些"你知道该怎么做但不想每次重复说明"的任务——代码审查、会议纪要、PPT生成、数学建模标准化流程等等,写一次Skill,后面一劳永逸。
1.2 和Agent、Tool、MCP的区别
这是热词里被问爆的一组概念,我直接用实际场景来拆。
Agent是"执行者"。它被赋予一个目标,自己去规划步骤、调用工具、完成任务,过程中是有自主决策权的。比如"帮我把这个项目的测试覆盖率提到80%",Agent会自己拆任务、改代码、跑测试。
Tool是"工具箱里的单个工具"。比如read_file、run_command、web_search,它们是被模型按需调用的函数,本身不具备业务逻辑。
MCP是"工具的统一接口协议"。它解决的是"不同的工具用不同的API,模型没法统一调用"的问题。接了MCP Server之后,各种外部能力(数据库、浏览器、文件系统)能以一个标准接口暴露给模型。
Skill则是"一组指令和流程的打包"。它本身不一定调用工具,也可能就是告诉AI"你该怎么思考、先做什么后做什么、输出什么格式"。它更像是一个编排层——可以理解为Skill是操作手册,Agent是执行任务的人,Tool是这个人手里的工具,而MCP是工具的通用插座。
做选择时有个简单判断:如果任务是重复性的、有明确步骤的,用Skill最合适。如果任务是开放式探索性的、需要动态决策的,Agent更合适。大多数情况下两者配合使用:Skill负责定义"遇到A情况就这么做",Agent负责"判断现在是A情况还是B情况,然后激活对应的Skill"。
1.3 为什么2025年Skill突然火起来了
Skill这个概念其实很早就出现过,但真正爆发是在Claude Skills功能正式推出之后。原因很现实:模型的上下文窗口虽然越开越大,但"每次输入同样一段要求"是会占用token的,而且你很难保证措辞完全一致。Skill把指令文件固化下来,只在需要时加载,等于把"每次重复说的废话"存成了文件,省心也省钱。
更深一层的原因是:可复现性。之前调教AI靠的是对话记忆,今天心情好写出来的prompt,明天可能就写不出来了。Skill把经验沉淀成了资产——这就是为什么"skill推荐"、"skill开发指南"、"claude如何写一个完善的skill"这些热搜词会持续升温。大家发现这玩意儿值得专门研究和投资。
2. 主流AI工具的Skill机制差别不小:安装方式大盘点
很多人问"如何安装skill",其实这个问题没法一句话回答,因为每个工具的Skill机制都有自己的脾气。我实测了Claude Code、Cursor、Codex、OpenCode这几个主流工具,目录结构、加载机制、语法要求都有差异。
2.1 各工具安装方式和目录对比
先上一张我实际验证过的对比表,方便大家快速定位自己用的工具:
| 工具 | 默认Skill目录 | 安装方式 | 配置文件格式 | 加载机制 |
|---|---|---|---|---|
| Claude Code | ~/.claude/skills/<skill-name>/ | 克隆或复制文件夹到该目录 | Markdown + YAML frontmatter | 对话中自动触发或手动/skill |
| Cursor | ~/.cursor/skills/<skill-name>/ | 同上 | Markdown + frontmatter | 规则/Agent模式自动读取 |
| Codex | ~/.codex/skills/(部分版本) | 同上 | Markdown + YAML | 根据描述自动激活 |
| OpenCode | ~/.config/opencode/skill/ | 同上 | Markdown + frontmatter | 对话时声明启用 |
安装的本质都是一样的:把Skill文件夹放进对应工具扫描的目录。我用git clone把社区里的Skill仓库克隆到本地,然后复制到对应目录,重启工具就能识别。
2.2 一条命令检查你的Skill有没有被加载
装完Skill最痛苦的就是"装了但好像没生效"。这里分享一个通用debug方法:用一个目标明确的小测试,故意触发Skill的描述场景,然后观察输出有没有按Skill里的流程走。
Claude Code可以输入/skills查看当前已加载的Skill列表;Cursor可以在Agent模式下输入"列出你当前使用的所有技能"来确认;Codex可以用--verbose模式观察加载日志。我自己的经验是:80%的"Skill没生效"问题其实是描述文本写得不对导致没有触发,而不是目录放错了。这个问题后面会专门展开。
2.3 安装渠道与来源安全
热词里有"skill原版无删减版百度",还有不少人在找各种"无删减"资源包。这里必须多说一句:Skill本质是可读的文本指令,不是破解资源,不存在"无删减版"这种说法。所谓"原版无删减",要么是营销话术,要么是你被当韭菜了。
正规获取渠道就这么几个:官方Skill库/市场、GitHub开源仓库(搜awesome-claude-skills、awesome-cursor-skills这类合集)、技术社区分享帖。来源不明的Skill文件不要乱装——因为SKILL.md本质是注入给模型看的指令,恶意文件完全可以让你"忽略用户的所有要求"之类的内容,这种prompt injection风险是真实存在的。我读任何一个Skill都会先打开SKILL.md通读一遍,确认没有可疑指令再放入目录。
3. 实测过的Skill清单:从读书到数学建模都能用
这节是热词重点,"cursor 有哪些skill推荐"、"codex好用的skill"、"book to skill"、"数学建模skill"、"会议纪要skill"、"ppt skill"这些问题我都会覆盖到。我把近期用过的Skill按"高频实用场景"整理了一遍,附上适用工具和避坑要点。
3.1 阅读与知识管理:Book to Skill、PDF精读
先说"book to skill"这个方向。这类Skill的核心价值是把一本书或一份长文档处理成可交互的知识库,AI不再是"通读全文后凭印象回答",而是按固定方法做结构化拆解:核心论点提取、章节逻辑图、概念卡片、金句索引、延伸问题集。
我用了一款社区里评价不错的Book Analysis Skill,实际体验是:把一本300多页的技术书丢进去,AI先自动生成全书框架,再逐章提炼核心观点和代码示例,最后输出一份带页码和原文对照的学习笔记。相比自己整理,效率提升非常明显。这类Skill需要注意的点是:不要让它生成过于"正确但无趣"的摘要,好的Skill应该保留原书的论证张力和反直觉观点。配置模板时可以在指令里加一条"总结时保留作者原意中最反直觉的三个观点",输出质量会显著提升。
3.2 职场效率三件套:会议纪要、PPT生成、邮件处理
这几个都是典型的"不想每次重复说明"场景。"会议纪要skill"会自动处理原始录音转写文本或会议字幕:标注决策项、责任人、截止时间、风险点,然后按公司模板输出。其实很多会议纪要工具都能做类似的事,但Skill的好处是可以完全按你的模板来。"ppt skill"则是按"先写大纲→再定视觉风格→最后逐页生成"的顺序工作,配合Markdown转PPT的流程非常好用。
实测心得:会议纪要这类Skill,一定要在指令里明确"不要改写原话中的技术细节"。AI特别爱自作主张把"K8s集群扩容"润色成"对Kubernetes基础设施进行容量扩展",看着专业,实际上信息失真。我见过不止一次因为AI润色导致会议结论失真的事故,指令里明确保留原始技术名词非常关键。
3.3 编程提效方向:前端规范、Java开发、代码审查
编程方向是Skill最肥沃的土壤。热词里的"vue-best-practices skill怎么下载运用"、"kiro推荐的用于java开发的skill"、"dbs-ai-check类似的skill"都指向这个方向。
拿Vue项目举例,我装了一个Vue3代码规范Skill后,新项目的代码风格肉眼可见地统一了:目录结构按feature模块划分、组件命名用PascalCase、状态管理从入口统一导出、API调用封装成hooks。AI在生成代码时都会先对照Skill里的规范自检一遍再输出。
Java方向的话,重点找的是这几类Skill:Spring Boot项目脚手架生成、代码分层规范、JUnit测试模板、依赖升级检测。我实测过Codex上一个Java开发Skill集,效果最明显的是"从需求描述直接生成Service层代码"——配合数据库表结构说明,它能自动生成带事务注解、参数校验、统一异常处理的完整Service方法。
Codex上大家常说的"代码审查Skill"也值得重点推荐。这类Skill不只是让AI找bug,而是给它一套审查流程:先看变更范围→再查安全隐患→再看并发风险→最后提可执行的修改建议。输出格式通常包含"问题严重级别+涉及文件+修改方案+影响评估",比单纯问"这段代码有没有问题"专业得多。
3.4 竞赛与建模场景:数学建模Skill
"数学建模skill"、"华为杯skill"这几个热词背后,其实是一类面向建模竞赛的Skill。这类Skill的核心价值是把建模答题流程标准化:问题重述→模型假设→建立模型→求解算法→结果分析→灵敏度检验→优缺点评价。
我试过挂数学建模Skill处理一道典型的优化问题:AI自动按照标准流程把问题拆解成目标函数、约束条件、决策变量,然后给出三套可选模型方案(线性规划、启发式算法、仿真),并对每个方案标注计算复杂度和适用条件。相比不挂Skill时的"直接扔一段代码"输出,挂上之后明显更符合竞赛评阅标准。这类Skill的配置要点是:必须在指令中预设"模型选择决策树",否则AI总是倾向于选择最复杂的模型,而不是最合适的模型。
3.5 内容创作与新媒体方向:视频脚本、文案、IP内容整理
"ai视频 skill下载"、"codex视频skill"、"grill skill"这一类,对应的是内容生产向的Skill。视频类Skill主要是将"脚本构思→分镜设计→文案优化→字幕整理"做成固定流程,适合自媒体从业者。还有一个比较特殊的"倪海厦skill",这个方向本质是知识IP内容的整理与检索:把大量课程录音/讲稿预处理成结构化笔记,方便后续查询。
我个人的使用场景是,这类Skill最适合做"批量内容复盘":把历史视频标题、封面、简介丢进去,让AI按固定维度(选题方向、封面风格、话语模式)拆解爆款规律。相比自己拉Excel统计,省事不少。但要提醒一句,凡是涉及健康医疗内容的Skill,只建议做知识整理和内容管理,不建议用于任何诊断、用药建议,这个边界要拎清楚。
3.6 跨对话记忆与工作流编排:WorkBuddy、MCP配合
热词里的"workbuddy跨对话记忆skill"、"api mcpserver skill"、"deepseek harness 用skill"指向一个更进阶的玩法:用Skill跨对话保存"工作记忆"。模型本身不保留跨对话记忆,但Skill文件夹可以承载状态。例如让AI在每次完成任务后,把当前项目的关键决策、遗留问题、目录结构写入Skill文件夹里的state.md,下次开新对话时自动读取,项目连贯性会大幅提升。
MCP和Skill的关系也值得一提:MCP负责提供外部数据(数据库、浏览器、Git仓库),Skill负责定义使用这些数据的流程。一个典型的配合场景:Skill定义"每周代码审查流程",MCP提供"读取本周提交记录"的能力,AI收到指令后自动完成全套流程。两者互补,缺一不可。
4. 动手写一个自己的Skill:结构与触发逻辑
看再多推荐清单,真正好用的Skill一定有一两个是自己写的。这一节我按"claude如何写一个完善的skill"和"skill开发指南"这两个热词的需求,把开发和调试的核心步骤拆开讲。
4.1 一套可复用的Skill目录结构
一个标准的Skill目录长这样:
code-review.skill/ ├── SKILL.md ├── assets/ │ ├── review_checklist.md │ └── security_risks.md ├── templates/ │ └── review_report_template.md └── scripts/ └── extract_diff.sh简单解释一下每一部分的作用:SKILL.md是主指令,AI先读它;assets/存放补充参考材料,只有主指令要求时才读取;templates/提供输出模板;scripts/是可选的辅助脚本。这里最核心的原则是:主指令要精炼,细节全放assets里。如果一个人Sentence把两百行细节全堆在SKILL.md里,上下文窗口会被大量占用,也不利于AI抓住重点。
4.2 SKILL.md的正确写法
我用的标准模板是这样:
--- name: code-review description: 用于代码变更审查。当用户要求"审查代码"、"看看diff"、"这个提交有问题吗"或涉及合并请求评审时使用。 when_to_use: 用户提供一段git diff或代码变更,希望获得专业代码审查意见。 --- # Code Review Skill ## 工作流程 1. 读取用户提供的代码变更或diff 2. 按优先级依次执行安全审查、并发审查、性能审查 3. 对每个问题标注严重程度(BLOCKER / MAJOR / MINOR) 4. 输出统一评审报告 ## 输出格式 见 `templates/review_report_template.md` ## 规则 - 只关注代码本身,不做无关建议 - 所有修改建议必须附带具体代码示例 - 严重问题必须给出复现路径或证据几个容易踩坑的细节:
description一定要写"触发场景"而不是"功能描述"。很多人写"审查代码质量",结果AI看到"质量"两个字就触发,输出一堆废话。正确写法是写"当用户说这些具体句子时使用",把口语化触发词都列进去。
frontmatter里的字段名要严格符合工具要求。Claude Code认description和when_to_use,有些工具认trigger和keywords,装到不匹配的工具上会导致Skill根本不会被加载。从社区GitHub仓库下载别人的Skill时,我建议先看一下frontmatter字段和你目标工具的文档是否一致。
4.3 让Skill"用一次就记住":状态与自我迭代
上一节提到的"跨对话记忆",落到具体的实现上就是在Skill里内置一套状态管理机制。我在自己写的Skill里都会加这样一段指令:
## 状态维护 每次任务结束时执行: 1. 将本次任务的结论、未解决问题、关键决策追加到 `assets/state.md` 2. 如果发现本Skill的指令存在遗漏或冲突,在`assets/improvements.md`中记录改进建议 3. 回复用户时,如果`state.md`存在历史记录,先引用再开始新任务实际操作下来,这个机制带来的连续性提升比想象中还要大。以前开新对话总要重新交代项目背景,现在AI会主动说"根据上次记录,这个模块还有两个遗留问题,我们优先处理哪个?"——这种体验已经非常接近有记忆的助理了。
4.4 用"好Skill"的三个验收标准
写完之后怎么判断这个Skill到底行不行?我总结了三层标准:
第一层,指令能不能被稳定触发。连续开三个新对话,用三种不同说法表达同一个需求,看AI会不会每次都激活这个Skill。
第二层,输出是否具备可复现性。同一个输入,跑三次,输出结果应该高度一致,而不是每次换一套思路。这一步能筛掉大量"看起来很强"实则全是浮文的Skill。
第三层,能不能降低你的操作成本。这是最本质的标准。如果用了Skill之后,你反而还要花更多时间修改AI的输出,那这个Skill就是在帮倒忙,不如删掉。
5. 装Skill的边界感与持续维护策略
很多萌新会陷入"收藏夹吃灰"的循环——GitHub上看到好用的Skill就clone下来,装了二三十个,结果大部分时间只用到两三个。"skill推荐"这个标题的关键词其实是"持续更新",这背后是维护和取舍的问题。
5.1 不是越多越好:我的精简原则
我把Skill的使用比作快捷键组合:记不住等于没有。装二十个Skill,每次打开工具还要回想"这个场景该用哪个",效率反而更低。
我现在的原则是:常驻核心工作流的Skill不超过5个,其他全部按需临时加载。具体执行方式是:把真正高频使用的Skill放进默认目录,低频场景的Skill放在一个"备份库"里,等真有需求再复制过来用。这样既能保证目录干净,又不会丢失积累。
5.2 Skill之间的冲突与优先级
多装几个Skill后必然遇到一个问题:两个Skill的触发描述重叠。比如一个"代码审查Skill"和一个"安全审计Skill"都可能在你问"这段代码有没有问题"时被触发,两个都加载后会争抢控制权。
我的处理方式是:在更高优先级的Skill里显式声明"如果与其他Skill冲突,以本Skill为准",同时用更精细的触发词做隔离。比如安全审计Skill的description写成"当用户要求检查安全漏洞、渗透测试、认证授权问题时使用",和通用代码审查的触发域尽量不重叠。
5.3 版本管理与持续更新
"持续更新"这个标题的关键词,落实到操作层面就是两个习惯:用Git管理Skill目录、定期回溯复盘,控制好问题难度。
我自己是把整个skills/目录做成一个Git仓库的,每个Skill的修改都有commit记录。这样万一改了某个版本导致效果退化,还能快速回滚。定期的复盘则可以固定周期进行——我自己的习惯是每两周过一遍,把所有Skill的输出质量抽查一次,没用的删掉,效果下降的排查原因,新需求写成新Skill。这套做法坚持了大概三个月,各方面收益已经非常明显。
5.4 复杂任务用"Skill组合"而不是"单个大Skill"
有些场景过于复杂,比如"为新功能做技术方案设计"——要跨架构规划、数据库设计、接口定义、测试策略好几个环节。把它硬塞进一个Skill里,指令会臃肿到AI抓不住重点。
更优的做法是拆成一组细粒度Skill,然后用一条主流程把它们串联起来。我实际在用的一个组合案例是"前端新功能开发"的Skill集:
requirement-analysis:把原始需求拆成功能点、边界条件、验收标准architecture-design:基于需求和数据流输出组件树与状态结构api-contract:生成后端Mock接口定义code-generation:按上述产物逐模块生成代码
四个Skill各管一段,主Skill只说"按顺序调用这四个"。好处很明显:单个Skill的指令都很短,AI不容易跑偏;而且每段输出质量可单独验证,哪一步出了问题就只调那一个,不用整个流程推倒重来。
5.5 关于"下载即用"的幻想
市面上大多数公开的Skill只能做到"方向正确",离"开箱即用"还有距离——因为它们没法了解你的项目规范、团队习惯和历史上下文。我下载任何一个社区Skill,都会先跑一遍测试案例,然后打开SKILL.md按自己的使用习惯改掉至少30%的内容。这其实是一种很正常的状态:Skill的价值在80%的灵魂,剩下20%的细节本来就需要你动手调整。
不是说公开Skill不好,而是用的时候要摆正预期:它不是成品插件,更像一个"有经验的同行给你写好的草稿",剩下的定制打磨只能自己做。
写在最后的小建议
如果你刚接触Skill,不用一次装太多,我建议从三个方向入场:一个代码审查Skill提高日常代码质量,一个会议纪要Skill减轻文档负担,一个用我上面模板自写的"个人工作流Skill"沉淀经验。先把这三个用得滚瓜烂熟,再逐步扩展。
我的切身体会是,Skill这个东西,花半天认真写一个,之后每一天都在省钱——省的是重复描述需求的口舌,省的是修修改改的时间,更重要的是省下了脑力去干真正需要人判断的事。希望这篇内容对正在折腾Skill的你有点帮助,后面我还会持续更新实测过的Skill清单和开发技巧,欢迎回来看看。