ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AI编程Skills全面解析:从安装到自研,打造可复用的技能包

AI编程Skills全面解析:从安装到自研,打造可复用的技能包 最近后台一直有人问我同一个问题大家都在说的 AI 编程里的 skills 到底是什么为什么 Claude Code、Codex 这些工具突然都在推这个概念。我刚把 GitHub 上几个热门技能库翻了一遍又在自己的项目里实测了几天今天干脆把这套东西从头到尾捋清楚。简单说skills 就是给 AI 助手预装的一份工作手册让它在特定场景下按照你定义的流程、规范和参考材料来干活。以前你靠复制粘贴一大段 prompt 来约束 AI现在只装一个技能文件夹AI 就会在合适的时机自动调用。这篇文章会从概念、安装、自研到场景推荐、问题排查全讲一遍新手可以照着操作老手也能捡几个排查技巧。1. skills 到底是个什么东西1.1 从散装 prompt 到标准化技能包先说说我最早是怎么用 AI 写代码的。那时候项目里塞了一个超长的 CLAUDE.md里面写满了各种规则代码风格、组件写法、接口调用规范、目录结构说明加起来上千行。AI 每次读上下文都要把这一坨全部吞进去token 消耗大不说不同规则之间还经常打架——比如我既写了组件尽量拆分又写了页面统一放一个文件里AI 就处于精神分裂状态。后来我在 Anthropic 官方仓库里看到一个概念把某类任务需要的所有指令、示例、脚本、参考文档打包成一个独立文件夹就叫 skill。AI 会在对话过程中按需加载它而不是一上来全读。这就好比你雇了个全能助理你不是把所有行业的操作手册都塞进他脑袋里而是在他接手财务工作的时候递给他一本《财务操作规范》干完这单再把手册收回去。这种按需加载的机制让 skills 跟普通 prompt 有了本质区别prompt 是一次性说给 AI 听的skills 是长期驻留在项目里随时待命的工作流。我实测下来装完技能包之后AI 在处理特定任务时的输出稳定性明显高出一截因为它的行为不再依赖我临场发挥写得清不清楚而是由经过反复打磨的技能文档来保证。1.2 各类工具对 skills 的支持现状现在主流 AI 编程工具基本都支持了自己的技能体系但命名和目录位置略有差异我用一张表列出来工具目录位置技能文件入口加载方式Claude Code.claude/skills/SKILL.md对话中按描述自动触发Codex CLI.codex/skills/或通过codex skills命令SKILL.md按描述自动加载opencodeopencode/skills/或在配置中声明SKILL.md按描述自动触发Cursor 类 IDE规则指令区自定义格式常驻规则我目前主力用的是 Claude Code 和 Codex 双开两种工具的 skills 机制虽然细节有差异但核心逻辑高度一致都是一个文件夹下面放一个SKILL.md作为入口描述再附带一些脚本、模板、参考文档。学会了其中一个其他的基本是触类旁通的事。1.3 为什么 2025 年 skills 突然火起来前几年大家有这种需求吗也有但那时候解决方式是写 system prompt。随着 AI 编程从单次问答走向多文件、多轮次的 agent 模式模型需要在一次任务里完成分析代码、修改文件、运行测试、修复报错、提交代码一整条链路。这时候散装指令的弊端就彻底暴露出来了——上下文窗口再大也经不起把所有项目规范都塞进去。Skills 能火核心原因是它恰好解决了两个痛点一是上下文管理只在需要时加载对应知识省下大量 token二是经验复用一个团队里沉淀出来的优秀工作流可以打包成技能库在多个项目里共享不用每次重新口述需求。我在团队里建了一个共享技能库新人入职装一套AI 行为习惯就基本对齐了效果比提前开三天会好得多。2. 动手装一个 skills从官方源到手动安装2.1 先搞清楚从哪儿下载技能包GitHub 上现在技能包仓库已经相当多了我按自己的使用频次排个序新手从这个顺序开始翻就够了anthropics/skillsAnthropic 官方的技能库质量最稳文档齐全大字报级别维护。typesafe-ai/skills社区里比较高质量的技能源偏 TypeScript 生态前端党值得收藏。obra/superpowerssuperpower skills这是 Shane 搞的一套综合技能包覆盖调研、写作、写代码、项目规划功能非常全但也比较重。各人为了比赛、自媒体等垂直场景自制的技能包这类需要靠 GitHub 搜索比如搜codex skills 数学建模能找到很多选手赛后开源出来的配置。下载方式也没什么特殊的就是git clone。但我要提醒一句别把整个仓库直接扔进 skills 目录大多数技能仓库是多技能聚合仓库里面可能塞了一二十个技能文件夹你要做的是把需要的单个技能文件夹复制过去。2.2 手动安装 GitHub 上的 skills 完整流程我给一个新项目装一个叫数学建模报告生成器的技能实操步骤如下# 1. 如果技能在某个聚合仓库里先浅克隆目标仓库 git clone --depth 1 https://github.com/example/modeling-skills.git # 2. 进仓库看技能结构找到要安装的技能文件夹 ls modeling-skills/skills/ # 假设输出里有 report-generator/ 这个目录 # 3. 在项目目录下创建 skills 目录Claude Code 识别路径 mkdir -p .claude/skills # 4. 把技能文件夹复制进去 cp -r modeling-skills/skills/report-generator .claude/skills/ # 5. 验证结构确保 SKILL.md 在技能的根目录里 find .claude/skills/report-generator -maxdepth 1 # .claude/skills/report-generator/SKILL.md装完之后重启 Claude Code直接问一句你现在有哪些技能AI 会列出它能识别的技能名和描述。这个验证习惯我建议每个新手都养成因为很多问题都出在最后这一步——AI 压根没扫描到。如果是 Codex CLI路径稍有不同一般放在.codex/skills/安装命令是codex skills add支持从本地路径或远程仓库安装命令示例codex skills add https://github.com/example/modeling-skills.git --subdir report-generator这样它会直接帮你把子目录拉进去并注册好。2.3 目录结构与 SKILL.md 到底怎么组织这是最关键的部分。一个标准 skill 文件夹的完整形态是这样report-generator/ ├── SKILL.md # 技能入口AI 最先读这个文件 ├── scripts/ # 可执行脚本如数据处理、格式转换 │ └── generate_chart.py ├── assets/ # 模板、图片或其他静态资源 │ ├── report_template.md │ └── cover.png └── references/ # 参考文档细节较多时拆出去 └── methodology_guide.mdSKILL.md的开头必须有 YAML frontmatter格式一般是--- name: report-generator description: 当用户需要生成本次竞赛数学建模的完整报告时使用。包括摘要、问题分析、模型建立、求解结果、模型评价等章节。 ---这里我要特别强调description字段的重要性因为 AI 判断什么时候该用这个技能完全靠这一段的语义匹配。写得越具体越好要包含触发场景、任务类型、输出结果。我见过很多人把描述写成生成报告结果 AI 在用户要求写周报的时候也傻乎乎地加载了这个技能。正文部分则是给 AI 的工作指令需要用清晰的步骤描述。比如# 数学建模报告生成 ## 任务流程 1. 阅读用户提供的题目和求解代码提取关键结论。 2. 按模板生成报告 Markdown 文件。 3. 调用 scripts/generate_chart.py 生成图表并嵌入。 4. 最后检查公式格式确保符合 LaTeX 语法。 ## 重要规则 - 摘要部分不得超过 400 字用通俗语言概括。 - 所有结果数字保留两位有效数字。 - 模型假设必须单独成节不能混入模型建立部分。2.4 更新、隔离与多项目共享的土办法现在技能仓库更新很快而插件市场还没完全长出自动更新机制所以我用的是一套组合方案聚合仓库克隆后不直接复制而是做符号链接。我本地建了一个~/skill-bank/目录把下载的技能统一放在里面然后通过ln -s链接到各个项目的.claude/skills/下。这样仓库更新时我只需要进去 pull 一次所有项目同步生效。每个项目的技能需求其实是不同的。建模比赛项目我会链入报告生成和数据分析技能前端项目我会链入组件重构技能这是用修仙小说的话说就是各有各的功法。# 在项目里链接本地技能库中的一个技能 ln -s ~/skill-bank/report-generator .claude/skills/report-generator # 如果技能安装在系统级别让所有项目都默认使用 # Claude Code 的 user 目录上也有一个全局 skills 位置把技能放进去即可2.5 我踩过的安装坑安装过程看着简单但我见过太多人倒在一些不起眼的小细节上。第一个坑是大小写问题。我最初把一个技能文件夹命名成DataAnalysis结果 AI 扫描的时候完全不认。后来翻文档才发现技能目录要求全小写字母、数字和中划线单词分隔用-比如>mkdir -p .claude/skills/modeling-data-cleaner/scripts编辑SKILL.md--- name: modeling-data-cleaner description: 当用户给出赛题、数据文件或表格数据并需要做预处理和探索性分析时使用。适用于数学建模比赛中对原始数据的清洗、缺失值处理、异常值检测、基础统计分析。 ---正文部分写清楚数据清洗的完整工作流AI 读到这段后会按步骤执行# 建模数据清洗任务流 ## 数据读取 1. 识别文件格式CSV / Excel / JSON。 2. 使用 pandas 读取先打印数据形状和列名。 ## 缺失值处理 1. 计算每列缺失率缺失率超过 50% 的列优先考虑删除或特殊标注。 2. 数值列用中位数填充类别列用众数填充。 3. 记录处理逻辑输出一份 cleaning_log.md。 ## 异常值检测 1. 用 IQR 法和 Z-score 法分别检测连续数值列。 2. 对处于边界值的样本单独输出不直接删除由人做最终决策。 ## 输出 1. 生成清洗后的 cleaned_data.csv。 2. 生成一份 eda_report.md包含各列的分布特征和相关性热力图。为了使 AI 更稳定地完成任务我还在scripts/下放了一个clean_data.py的脚本范本AI 会参考这个脚本执行命令而不是凭空造代码。这样能保证不同轮次生成的代码风格一致。import pandas as pd import numpy as np df pd.read_csv(input.csv) print(shape:, df.shape) print(columns:, df.columns.tolist()) for col in df.columns: if df[col].isnull().mean() 0.5: df.drop(columns[col], inplaceTrue) elif pd.api.types.is_numeric_dtype(df[col]): df[col].fillna(df[col].median(), inplaceTrue) else: df[col].fillna(df[col].mode().iloc[0], inplaceTrue) df.to_csv(cleaned_data.csv, indexFalse)把这个技能放进项目里以后我再给 AI 发赛题和数据文件它会自动进入清洗流程连我原来要手动说的注意中位数填充异常值要单独列表都不用再重复了。3.3 调试与迭代让 AI 报告它读了什么写完技能后第一件事不是直接用而是先让 AI 复述一遍它理解的技能内容。我一般直接问请描述你加载了哪些 skills并解释 modeling-data-cleaner 的执行流程。 如果 AI 复述出来的流程跟我预期有偏差问题几乎都出在SKILL.md的正文写得不够明确。迭代的时候有个小技巧技能正文里每一步前面加编号AI 在执行时会更倾向于严格遵循步骤顺序而不是跳步。不加编号容易让 AI 自由发挥稳定性差很多。我还习惯在技能里加一条自查清单作为技能执行的收尾动作比如输出前检查三件事是否有 target 列为空、是否有列名拼写错误、图表是否保存到了 report 目录。这类显式的自查指令能让 AI 交付质量上一个台阶。3.4 分享与命名规范如果你打算把技能分享给团队或开源命名和文件组织要遵守几点技能名用 kebab-case不要用中文名AI 识别不稳定每个技能必须包含 license 声明README.md要写明适用场景和依赖条件尽可能附上 demo 数据和测试脚本方便别人验证。发布时我通常直接推到 GitHub 仓库然后在 README 里写一句安装命令。别人安装的时候只需要git clone加cp或者用codex skills add拉取整个过程非常顺滑。4. 按场景挑 skills建模、前端、内容创作4.1 数学建模与竞赛场景的技能组合这几天后台私信里问华为杯建模比赛好用的 codex skills的人特别多。数学建模比赛场景其实不需要装几十个技能核心三件套就够用数据清洗与分析技能解决拿到赛题和数据后做什么的问题。论文报告生成技能解决结果怎么组织结构化地写出来的问题。绘图与可视化技能让 AI 按建模论文风格产图而不是默认 matplotlib 风格。我自己备赛时的组合是数据清洗 模型选择建议 报告排版。模型选择这个技能特别有意思它不是一个标准技能而是把赛题常见的几个大类预测类、评价类、优化类的适用算法和优缺点写进描述AI 拿到赛题后会先判断类型再推荐合适的算法路线。对参赛新手来说这相当于内置了一个指导老师。4.2 前端开发与日常编程的 skills前端开发是 skills 生态里最卷的领域。我试过好几个前端技能最实用的两类一类是页面从设计稿到代码的技能里面包含了一整套组件拆解规则和工作流程另一类是代码重构技能定义了什么情况下抽组件、什么情况下用 hooks。TypeScript 生态的typesafe-ai/skills仓库里有一个声明式 API 设计技能我强烈推荐做中后台项目的人看看。它的思路是先定义类型模型再生成 API 实现而不是让 AI 自由发挥这样生成的代码类型安全性高很多。前端技能通常不涉及复杂的脚本依赖主要是规范约束和代码风格所以安装使用非常轻量。4.3 AI 漫剧与其他内容创作场景AI 漫剧是最近的内容创作热点核心痛点是角色一致性、分镜连贯性、对白语气统一。这些完全可以用 skills 来解决而且比靠模型默认行为靠谱得多。我看到社区里有人写了漫剧分镜技能里面定义了角色描述如何写进元数据、场景切换的规则、对话气泡的顺序规范。也有角色一致性技能把角色的外貌、性格、说话风格全部写进SKILL.mdAI 在创作每一帧之前都会先读取这个文件保证角色形象前后统一。我自己的经验是内容创作类技能跟编程类技能有个显著不同前者更需要模板和示例而不是指令。给 AI 三段你满意的样例比给它十条必须注意语气平实之类的命令管用得多。所以写内容型技能时我通常会在assets/里放几个标准样例让 AI 模仿风格。4.4 superpower skills 值不值得装superpower skills是很火的综合技能包我特意装了一套做过测试。结论是它的覆盖面极广从头脑风暴、方案规划、写作、到写代码、复盘全都有安装一份相当于给 AI 预装了一整套工作方法论。如果你工作内容比较杂不想自己维护一堆技能装它很划算。但它也有问题因为技能太多AI 在对话中匹配描述时偶尔会发生误触发比如用户只是想简单问一句代码语法它就加载了项目规划技能行为反而变重了。我的建议是新手可以装但用了两三周后要主动做减法把用不到的子技能从目录里移除只留真正高频的。5. 常见问题与排查技巧实录5.1 AI 不调用已安装的技能这是后台被问到最多的一个问题症状是按步骤装完了问 AI你现在有哪些技能AI 也能列出来但实际对话里它就是不主动调用。原因排查顺序我总结成三步先看description的触发词写没写清楚。比如技能是代码审查描述里最好写成当用户要求 review 代码、检查代码质量、提修改意见时使用而不是审查。再看技能目录所在层级对不对Claude Code 的 skills 要放在项目根目录下的.claude/skills/下翻一层就找不到。最后看描述是不是与其他技能重合如果项目里两个技能描述相似AI 会随机选择一个表现就是有时候生效有时候不生效。5.2 技能文件不生效或读取失败我在 2.5 节提过驼峰命名的问题这里再补两个高频案例。案例一SKILL.md文件开头没有 YAML frontmatter。这个文件只有前后三个横线把描述包起来AI 才能正确解析少了任意一侧都会被当成普通文本跳过。案例二SKILL.md里中文编码乱码。多数是文件用 GBK 保存导致的统一改成 UTF-8 无 BOM 格式最省心。Linux/macOS 下用file SKILL.md可以查看编码Windows 下用 VSCode 右下角改编码。我还遇到过一种奇怪的坑在 Windows 上从 GitHub 仓库复制技能文件夹过来路径过长导致系统提示找不到文件。后来改用 WSL 或精简目录结构解决。这个坑比较少见但遇到了会卡很久。5.3 技能数量失控AI 反而变笨装了二三十个技能之后AI 的选择成本急剧上升表现为响应慢、行为不稳定。我一开始以为技能越多越好后来实测发现超过 15 个之后收益明显递减20 个以上就开始负优化了。tibo 最近分享的清理思路我很认同核心是留常用的删存疑的归档备用的。具体操作# 列出所有技能及大小 du -sh .claude/skills/*/ # 保留每周都在用的其余移到 ~/skill-archive/ mkdir -p ~/skill-archive mv .claude/skills/rarely-used ~/skill-archive/我自己的习惯是每个项目维持在 5~8 个技能。这样 AI 在匹配描述的时候压力小误触发率也会降下来。千万不要做那种把所有技能塞进全局配置的操作。5.4 速查表常见问题与解决方向症状大概率原因解决动作AI 列出技能但从不调用description 触发词不明确重写 description加入触发场景AI 无法识别技能目录目录名驼峰/大小写问题改为小写 kebab-case技能读取乱码文件编码非 UTF-8用 VSCode 重新保存为 UTF-8技能内容执行不完整正文步骤缺编号给每个步骤加 1. 2. 3. 编号多个技能相互干扰描述语义重叠合并同类技能保留一个安装后立即报错依赖脚本缺失检查 scripts/ 下文件是否齐全5.5 我个人建议的排查节奏遇到问题不要急着删技能重装先打开SKILL.md从头到尾读一遍把自己想象成刚入职的实习生这份操作手册写得够不够清楚绝大多数技能失灵的原因都是文档写得有歧义。最后分享一点个人体会用 skills 这一年多我最大的感受是它的核心价值不在于省 token而在于把你自己过去的优秀决策固化成了可复用的资产。以前我每次让 AI 干活之前都要花大量时间描述想要的输出格式、步骤、规则现在我把这些沉淀成了十几个技能相当于把我的最佳实践写进了 AI 的工作手册里。而且这种沉淀是滚雪球的——每做完一个项目我把踩过的坑和新总结的规则补充回技能里AI 下次执行时就更精准。我现在的习惯是任何重复出现三次以上的任务第一时间考虑是不是该写个技能了而不是默默重复劳动。这个思路比任何具体的技术细节都更值得带走。
返回列表