ARTICLE DETAIL

资讯详情

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

AI编程Skills实战指南:从安装编写到清理,打造专属AI助手

AI编程Skills实战指南:从安装编写到清理,打造专属AI助手 我最近发现一个很有意思的现象同样用 Claude Code有的人一个下午就能跑完数据分析 → 建模 → 出图 → 写文档的完整流程有的人却总觉得 AI 也就写写小函数、改改报错。差距不在模型而在你有没有给它装一套好的skills。这不是玄学。现在 Claude Code、Codex、OpenCode 这类 AI 编程工具里技能skills已经成了把 AI 从一个什么都会一点的实习生变成懂你业务的老法师的关键手段。这篇文章我把 skill 是什么、怎么手动装、怎么写自己的技能、上哪找现成的、装多了怎么清理这几个事一次性讲清楚。不管你是搞前端、写数学建模还是做 AI 漫剧、内容创作只要在用这批工具这篇都值得收藏。1. 先花三分钟搞懂 skills 是什么1.1 一个全科实习生和领域老法师的差距你把默认状态的 AI 编程助手想象成一个刚入职的全科实习生聪明、好学、什么都会一点但他不知道你项目里的规矩。他不知道你领导要求图表用三线表、不知道你建模比赛的论文格式有硬性要求、不知道你生成漫画人物时必须保持同一张脸。skills解决的就是这个问题。它是一个打包好的岗位 SOP告诉 AI当你遇到这类任务时不要自由发挥按这套流程、这个风格、这些标准来。本质上skill 就是一组 Markdown 格式的指令文件里面写了触发条件、执行步骤、输出规范和例子。所以你可以把它理解成给 AI 发了一本操作手册。默认状态下它是个聪明的新人装上技能后它就成了虽然未必比新人聪明多少但每一步都按老规矩来的老手。1.2 skills、插件、提示词工程和 MCP 到底是什么关系这一步很多人容易混。我用一张表理清楚类型解决什么问题生命周期典型例子提示词让某一次对话更精准会话内临时生效请用 Python 写一个数据清洗脚本插件/扩展给编辑器或 CLI 增加交互和 UI 能力常驻运行环境侧边栏面板、命令面板、快捷键MCP给 AI 接入外部工具和数据源常驻按需调用连接数据库、文件系统、浏览器skills给 AI 注入特定任务的流程和专业知识常驻按需触发建模比赛数据处理流程、漫画分镜脚本规范skill 和 MCP 是很多人最爱混的两样东西。我打个比方MCP 是给 AI 接上手脚能查天气、能操作数据库skill 是给 AI 装上脑子里的办事流程拿到天气数据后怎么分析、怎么排版输出。它们能配合技能可以规定先调用某个 MCP 工具再按某种方式加工结果。1.3 各大工具的 skills 生态现状目前 Claude Code 原生支持 Agent Skills在会话里输入/skills就能看到已加载的技能。OpenAI Codex CLI 现在也跟进了一套类似机制OpenCode 这类开源 CLI 同样支持。虽然各家目录名有点差异但某个目录 SKILL.md 文件这个约定已经成了社区事实标准意味着你写好的技能在不同工具之间基本可以复用。这也是为什么网上会有前端开发 skills数学建模 skillsAI 漫剧常用 skills这种搜索热度超高的话题各行业的人都在把重复劳动封装成技能包让自己的 AI 助手比别人的更懂行。2. 手动把 GitHub 上的 skills 装进 Claude Code2.1 先弄清楚技能该放哪儿安装前最重要的一件事是搞清楚目录。Claude Code 的技能加载有优先级我整理了一下当前主流做法位置路径作用范围项目级.claude/skills/只对当前项目生效推荐团队共享用户级~/.claude/skills/对所有项目生效个人常用技能放这里外部挂载CLAUDE.md里声明引用路径任意目录理论最灵活一个容易踩的坑同一个技能如果同时存在于项目级和用户级项目级优先。所以你在某个项目里装了一个技能但没生效先检查是不是有另一个同名技能抢占了位置。2.2 从 GitHub 手动安装的三种方式方式 Agit clone 整个技能目录这是最快的。假设看到某个仓库里有一个>mkdir -p ~/.claude/skills cd ~/.claude/skills git clone https://github.com/某用户/某仓库.git>mkdir -p ~/.claude/skills/代码审查 # 把下载好的 SKILL.md 放到这个目录里 # 或者用 curl 直接下 curl -o ~/.claude/skills/代码审查/SKILL.md https://raw.githubusercontent.com/某用户/某仓库/main/SKILL.md这里有个细节技能目录名不要用中文路径虽然不一定报错但有些工具链在解析路径时可能出幺蛾子。推荐用小写字母加短横线比如code-review。方式 C通过 CLAUDE.md 挂载外部路径如果你的技能库放在一个共享盘或者团队公共目录不想复制进项目可以在项目的CLAUDE.md里加一行在以下目录中寻找可用技能/data/team-skills/这是社区里常见的引用型用法好处是同一个技能库可以被多个项目复用坏处是换个新环境容易漏掉这个声明。我建议新手先别折腾这个老老实实用前两种。2.3 装完怎么确认真的生效装完不是完事大吉一定要验证。我每次装完技能都会做三个动作先确认文件结构没问题在技能目录里执行find ~/.claude/skills -maxdepth 2 -name SKILL.md能列出SKILL.md文件说明目录层级基本对了。然后重新打开 Claude Code 会话输入/skills看列表里有没有出现新装技能的名字。要注意的是如果你开着老会话它可能不会立即加载新技能最好的做法是结束会话重开一个新的。最后做一个欺骗性测试故意在对话里提出一个属于该技能适用范围的请求看 AI 是否自动开始按技能流程处理。比如说技能叫>--- name: modeling-data-prep description: 用于数学建模比赛场景的数据清洗与初步分析。 当用户提供 CSV、Excel 数据集并要求检查数据质量、 处理缺失值、去重或生成基础统计报告时使用。 也适用于任何先让我看看数据长什么样的探索性分析请求。 --- # 数据清洗与前情提要 ## 何时使用 用户给出一份数据文件需要快速了解维度、缺失率、类型分布、基础统计量。 ## 执行步骤 1. 读取文件先用 df.info() 观察列类型和缺失情况。 2. 统计每列缺失率缺失率超过 30% 的列先标记不直接删除留待确认。 3. 对数值列输出 min/max/mean/std对分类列输出唯一值数量。 4. 生成一个可视化概览每列缺失率条形图 数值列分布直方图。 5. 将结果汇总为一个 markdown 报告放到 reports/ 目录下。 ## 输出规范 报告用中文标题分级表格用 markdown 语法。 图表保存为 PNG分辨率不低于 150dpi文件名包含生成时间。 ## 脚本调用 - 运行脚本python scripts/quick_report.py --input 数据文件路径 --outdir ./reports - 脚本输出每列缺失率表格、类型统计、保存的图表清单。你发现没有这个文件写得非常啰嗦但全部是有效信息。为什么我不能偷懒只写帮用户处理数据因为 AI 模型是靠 description 来决定是否触发这个技能的。描述越具体触发越精准描述太模糊它要么乱触发要么该触发时不触发。3.2 从会写提示词升级成会写工作流很多人以为写技能就是写一段提示词其实差远了。提示词解决的是单次对话问题技能解决的是反复出现的流程问题。区别在于技能会把步骤固化下来不会因为你今天心情差少写一步也不会因为这批数据格式不同就漏掉检查。写工作流有几个原则我踩过不少坑才总结出来的第一一个技能只干一件事。我最早写过一个建模全流程技能里面又想管读数据、又想管训练模型、还想管写论文结果 AI 每次触发后流程又长又乱完全没有可用性。后来切成三个独立技能modeling-data-prep、modeling-visualization、modeling-paper-writer各自只负责一段效果立竿见影。第二步骤要细到可直接操作。不要写对数据进行适当的处理要写缺失率超过 30% 的列先标记不直接删除留待确认。AI 对模糊指令的发挥空间大这个空间往往伴随着不可控。第三必须给出输出规范。数学建模比赛尤其重要图表是三线表还是灰度图论文里的图分辨率要求多少这些不规定AI 每次都按它自己的审美来破坏力极大。第四把脚本和技能绑定。纯文字技能只能约束 AI 的说法带脚本的技能才能真正干活。下面的quick_report.py就是我这个技能里配套的脚本逻辑很简单但很实用import argparse, pandas as pd from pathlib import Path def build_report(df, outdir): report [] report.append(# 数据质量报告\n) missing df.isnull().sum() missing_rate (missing / len(df)) * 100 info pd.DataFrame({ 列名: df.columns, 类型: df.dtypes.astype(str), 缺失值数量: missing, 缺失率(%): missing_rate.round(2), 唯一值数量: df.nunique(), }) report.append(info.to_markdown(indexFalse)) out_path Path(outdir) / data_quality_report.md out_path.write_text(\n.join(report), encodingutf-8) print(f报告已保存: {out_path}) def main(): parser argparse.ArgumentParser() parser.add_argument(--input, requiredTrue) parser.add_argument(--outdir, default./reports) args parser.parse_args() df pd.read_csv(args.input) build_report(df, args.outdir) if __name__ __main__: main()这里用pd.read_csv是因为建模比赛数据最常见的是 CSV如果要支持 Excel 就得加pd.read_excel和openpyxl依赖。技能里写清楚脚本依赖 pandas、openpyxl、tabulateAI 才知道如果缺库要先补装。3.3 写完怎么测一定要走一遍真实任务技能写好后不能靠我觉得没问题。我的测试套路固定四步第一步把技能目录放进~/.claude/skills/重开会话。第二步准备一份故意带坑的数据比如有缺失值、有重复行、有类型错乱的 CSV。第三步不明确说用你的数据处理技能只说这是我建模比赛的数据帮我看看这个数据靠不靠谱该怎么处理。看它是否自动触发。第四步盯它执行完整个流程看有没有跳过步骤、有没有按脚本生成报告。如果它跳过了某步大概率是 SKILL.md 里那一步写得不够显眼把 AI 的注意力吸过去如果它压根没触发回去改 description把触发词写得更贴近真实用户的表达。我自己的教训技能文件里的描述不要写得太专业过头。比如description里写当用户需要执行探索性数据分析EDA时很多人根本不会说EDA这个词他会说帮我看看数据。所以我在 description 里除了专业术语一定要加日常说法让模型在语义上能匹配到。4. 值得收藏的 skills 仓库和选型建议4.1 我常逛的几类仓库社区里现在涌现了不少 skills 集合项目我长期在用的有这几类通用型大集合项目比如社区里很有名的Superpowers技能集装一个就能获得几十个子技能覆盖代码审查、架构设计、自动化测试等场景。这种适合刚上手、还不确定自己需要什么的人先装一套用起来再慢慢删减。工程化规范项目比如TypeSafe AI团队维护的开源技能集特点是文件格式高度规范、文档完整、代码风格统一。对想学习怎么写好技能的人来说它们是最好的教材。读这些仓库里的 SKILL.md比看十篇博客都有用。awesome 聚合类项目社区里有人维护awesome AI skills这类收藏夹定期汇总各类技能仓库按场景分类适合没事逛一逛发现新工具。现在也有的项目做了网页端浏览入口有点像应用商店浏览体验更友好。4.2 数学建模场景怎么挑技能如果有人问数学建模比赛里最该装什么 skills我的排序是数据处理 → 可视化 → 求解 → 论文排版辅助。挑技能有一个硬标准看它有没有配套 scripts 目录。只给一段文字流程说明的技能效果和好一点的提示词差不多真正值钱的是那种连脚本都给你写好了比如自动出三线表、自动导出高分辨率 PNG、自动算灵敏度分析的技能。用 Codex 或者 OpenCode 的人也不用担心前文说过SKILL.md这种格式基本是通用的从 Claude Code 生态里找到的技能大概率能直接搬到 Codex 的~/.codex/skills/目录下用。我实际搬过很多次改目录、改路径通常五分钟搞定。4.3 AI 漫剧场景怎么选AI 漫剧现在是内容创作领域很火的方向这个场景下 skills 的作用甚至比编程场景更大。为什么因为底层绘图模型的风格太不稳定了IP 人物换个角度就变脸画风稍微一飘整个片子就废了。一套靠谱的漫剧 skills 至少要包含三类人物一致性技能把角色的外貌特征发色、瞳色、服装细节、标志性元素写成固定描述每次生成角色时强制加载确保不同分镜里是同一个人。分镜脚本技能规定镜头语言、景别切换、运镜方式输出格式统一方便后续生成画面时直接套用。画面提示词技能把中文分镜翻译成高质量的英文绘图提示词同时绑定风格后缀比如日漫、美漫、韩漫保证全片画风一致。这些技能的核心不是文字有多华丽而是把规范固定下来不让模型自由发挥。你从仓库里选的时候重点看它的描述是否明确了何时触发和输出格式这两点决定它能不能在日常生产中真正卡住流程。4.4 跨工具搬运小技巧不管你在哪个生态里找到技能搬运到另一个工具都跑不出这三步复制文件、改目录、调整路径引用。常见差异只有两个一是技能目录名不同Claude Code 用.claude/skillsCodex 用.codex/skills二是有的工具允许在配置文件里直接声明技能源有的只扫描固定目录。还有个细节容易忽略技能里如果引用了scripts/xxx.py有些工具要求使用绝对路径才能稳定执行。我在写技能的时候会专门在文档里注明脚本的调用方式并且推荐把脚本写成支持--input和--outdir参数的形式这样即使目录变了也能正常运行。5. 技能装多了之后清理与维护5.1 找到所有技能位置彻底清干净很多人技能越装越多最后乱到连 AI 都开始精神分裂了。我在实际使用中发现这类问题基本都出在技能源太多、各说各话上。清理前先检查三个位置一个都别漏# 1. 项目级技能目录 ls -la .claude/skills/ # 2. 用户级技能目录 ls -la ~/.claude/skills/ # 3. CLAUDE.md 里引用的外部技能路径 grep -n skills CLAUDE.md删除技能直接删目录即可rm -rf ~/.claude/skills/code-review如果技能是挂在CLAUDE.md声明里的记得把对应那一行注释掉或删掉否则删了目录也没用AI 还是会尝试去那个路径找。社区里有分享过一套很实用的清理套路我亲测过先把当前所有技能目录列出来给每个技能做一次最近 30 天是否被调用过的标记没被调用的全部移到一个archive/目录而不是直接删除。跑一段时间确认没问题再真正删掉。这样做最大的好处是不会误删低频但关键的技能比如一个月才用一次的论文排版技能。5.2 同名冲突和版本更新的处理办法同一个名字的技能一个在项目级、一个在用户级AI 优先用项目级的这不是 bug是个坑。排查规则很简单技能不生效先查重名。处理办法我一般有两种改掉其中一个目录名和SKILL.md里的 name或者把项目级那个删掉。版本更新也有讲究。Git clone 回来的技能仓库想更新cd ~/.claude/skills/某技能 git pull origin main但更新完一定要重开会话否则 AI 可能还在用旧版本。我踩过一次很离谱的坑技能仓库里的脚本更新了但我没重开会话AI 调了半天旧逻辑输出全是错的。当时排查了很久才反应过来是沿用旧技能版本的锅。6. 常见问题排查实录6.1 技能装上但不生效的三大原因我在社区里帮人排查过很多次技能没生效的问题九成都是下面几个原因现象原因解决方法/skills列表里看不到目录层级错了SKILL.md不在一级目录把SKILL.md上移到技能目录一级列表里有但 AI 不调用description 写得太泛触发不精准重写 description加入用户真实会说的词新技能不生效老会话没重开结束会话重新打开一个全新会话6.2 脚本执行失败的常见坑技能文件没问题刷新后 AI 也开始调用了结果一执行就报错。这种我遇到最多的是三个原因脚本没有执行权限。有些技能仓库里的.py脚本没有x权限位AI 尝试用./scripts/xxx.py的方式调用就会失败。解决办法是在技能文档里写明要用python scripts/xxx.py而不是直接执行。路径问题。AI 在会话里的当前工作目录可能不是项目根目录脚本里用了相对路径就找不到文件。我在脚本里强制用Path(__file__).resolve().parent.parent来定位项目根目录经验证很稳。环境依赖缺失。技能文档里声明依赖pandas但当前环境用的是 Conda 虚拟环境AI 没激活就运行自然 import 失败。解决方法是把激活命令写进技能流程里比如运行前先conda activate modeling。6.3 别把 skills 和 MCP 混在一起排查最后提醒一件事很多人遇到AI 不会用某个工具时第一反应是去装 MCP但真正的解决方案是写一个 skill。反过来也有人 skill 里写了调用数据库工具结果那个工具根本没通过 MCP 接入AI 当然做不到。我的判断标准是这样的如果问题是AI 不知道怎么做写 skill如果问题是AI 没有途径做接 MCP。两者是方法层和能力层的关系经常需要配合但排查时不能混为一谈。比如我做一个数学建模项目时数据存在数据库里我会先用 MCP 把数据库查询能力接进来再写一个modeling-data-fetch技能规定先从库里拉数据 → 缓存到本地 CSV → 交给数据处理技能的完整路线。缺了 MCP技能里的拉数据就是空话缺了技能AI 接了 MCP 也不知道按什么流程组织这些操作。我个人在实际操作中的体会是技能包不在多在于像你自己。新手刚入门容易疯狂收集技能装三四十个结果 AI 每次都要费劲判断该用哪个反而变得更笨。我现在的技能列表常年控制在十个以内每个都是自己真正高频用到的。每次准备删一个技能时我都会问自己一句如果今天没有这个技能我手动让 AI 按流程走要用多少提示词才能补回来想清楚这个问题该留谁、该删谁心里就有数了。
返回列表