ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

superpowers AI技能框架:用SKILL.md给模型装外挂技能包

superpowers AI技能框架:用SKILL.md给模型装外挂技能包 1. “superpowers”到底是什么先把它当成AI的外挂技能包1.1 给AI装“技能包”而不是给AI写“提示词”前阵子我换了一台工作机折腾环境的时候顺手把这个叫 superpowers 的AI技能框架装上了。当时只是图新鲜结果两周下来它成了我日常用得最频繁的一个工具。今天这篇就聊聊它到底是什么、怎么装、里面有哪些 skills、以及怎么把它真正用起来——网上关于它的零碎教程不少但把安装、技能清单、调用方式和踩坑串成一条完整线的确实不多。先说我自己的理解。superpowers 解决的痛点很直接模型本身很强但默认状态下是“通用智力”不会自动带着某一套领域完整的工作方法去干活。你让AI帮你写市场分析它写得出来但如果你不告诉它“访谈对象是谁、数据口径怎么对齐、报告结构按什么标准来”它产出的东西大概率是四平八稳、没法直接交差的模板文。superpowers 做的就是这件事——把一套套“领域工作方法”提前封装成一个个技能skills。所以你可以把 superpowers 理解成一个“外挂技能包管理器”。它的基本单位不是插件也不是工作流而是一个个名为SKILL.md的结构化文档。每个文档对应一个技能目录里面写了这个技能的适用场景、执行步骤、输出格式、必须避开的坑。模型在对话中读到这些内容就像短时间内被“附体”一样按照既定方法去执行任务。1.2 它和普通插件的本质区别在哪我见过不少人一上来就问“superpowers 跟某某插件有什么区别”其实差别还挺大的。传统插件通常绑定特定平台或IDE比如编辑器插件、浏览器扩展它们靠代码去接管软件行为。superpowers 走的是另一条路核心只是一批有目录结构的 Markdown 文件。因为它是纯文本加文件夹所以天然跨平台——命令行能用、网页版能用、自己二次开发的客户端也能用。你甚至可以把整个技能库放进 Git 仓库里做版本管理跟同事协作时直接把技能目录推过去就行不需要对方装同样的IDE插件。还有一个容易被忽略的点插件的能力边界由开发者写好用户只能“用”很难“改”。superpowers 的技能则完全向你开放英语好的可以直接用现成的想改逻辑就打开SKILL.md改几行描述想加新技能就新建一个目录。它的核心假设是“方法本身可以被描述”而描述的方法论写起来比写代码门槛低得多。我做第一次实操时就被这个思路吸引了这不只是工具它是在给AI定义“出厂设置”。2. 安装流程复盘从clone到第一次run的完整记录2.1 用三条命令把仓库拉下来我是在 macOS 环境装的整个安装过程比想象中简单但前置依赖得先确认好。superpowers 本体是个脚手架它需要你的机器上已经有 Node.js 环境版本建议 18 以上和 Git这个检查建议放在第一步做node -v git --version看到版本号正常输出后直接找个工作目录把仓库拉下来git clone https://github.com/your-superpowers/superpowers.git cd superpowers npm install注意npm install这一步网络波动会导致部分依赖安装失败我后面会专门展开讲。装完依赖后官方推荐的做法是先把项目启动起来看一眼默认状态npm run setup这个命令会做三件事检查本地环境、生成一份默认配置文件、把技能库目录初始化出来。一切正常的话终端里会显示类似superpowers is ready的提示。2.2 第一次初始化目录结构、配置文件、依赖检查跑完setup后你会看到项目根目录下多出来几个关键目录和文件。这里我不太建议直接跳过不看因为后面排查问题全靠对这套结构的熟悉程度skills/是所有技能的存放目录每个子目录是一个独立技能里面至少要有一个SKILL.md文件config.json是主配置文件控制哪些技能默认启用、哪些不启用logs/是运行日志目录刚开始可能为空但踩坑时它就是救命稻草。我第一次跑完 setup 后先做了一件事直接打开默认的config.json看了一眼。里面最核心的字段是enabled_skills它是一个数组列出了当前会话中“默认加载”的技能清单。注意这里有个设计上的关键点——不等于你装了多少技能就会全部加载默认只加载你启用的部分这是为了控制上下文长度。依赖检查方面setup 脚本会自动检测几个常见工具git、node、npm如果有缺失会在终端标红提示。我自己遇到过的问题是系统里同时装了多个 Node 版本导致node命令能用但npm找不到当时用nvm use 18切了一下就正常了。如果你用的是 Windows建议在 PowerShell 里以管理员身份运行避免后续技能目录创建时遇到权限问题。2.3 安装过程中最常见的三个报错第一个坑是npm install时卡住不动。多半是网络原因我当时的处理方法是切换到国内镜像源再装命令是npm config set registry https://registry.npmmirror.com装完再切回来即可。这个问题很典型容易让新手误以为项目本身有问题。第二个坑是git clone下来的仓库缺少技能子模块。因为技能库往往是以 submodule 方式引用的直接 clone 主仓库只能看到空目录。解决方法是补一条命令git submodule update --init --recursive执行完成后skills/目录里才会真正出现技能内容。我最初没做这步傻傻地盯着空目录看了半天。第三个坑是权限问题。运行setup时它要写~/.superpowers/这个目录如果系统装了严格的安全策略会弹权限提醒。处理方式很简单手动创建目录并授权chmod -R 755 ~/.superpowers。这几个坑都算“一次性问题”解决过后基本不会再遇到但第一次遇到时确实很劝退。3. 内置技能库盘点我拿到的这批skills哪些真的值得用3.1 内容创作类技能写东西不再是“从零憋字”我这套环境自带的技能库里内容创作类占了大头。最常用的是blog-post它相当于一个“长文写作流程包”拿到题目后会先让我明确读者画像、核心论点、证据链然后才铺开写正文最后还要过一遍“信息密度检查”。跟 AI 直接写几千字的感觉完全不同——它多了一层层前置约束但产出的文章结构扎实很多。newsletter适合做邮件通讯稿它会强制你先提供 3 个本期重点然后按“重点-展开-行动引导”的结构生成。seo-keyword则是做选题和标题用的它的逻辑不是让你堆关键词而是先拆搜索意图再判断题目的竞争度最后给 3 个不同风格的标题方案。这套组合下来我日常的内容工作流基本都挂在 superpowers 上。3.2 代码与工程类技能能落地但不建议无脑用代码类技能里code-review我使用频率最高。它要求你把代码片段和对应的上下文背景贴给它然后按“正确性-性能-可维护性-潜在风险”四个维度输出评审意见。它跟直接让 AI“帮我看看代码”最大的区别是不会只夸“代码写得不错”而是会主动指出边界条件漏判和异常处理缺失。git-commit-msg是个实用小技能——你只需要把git diff的结果贴进去它就能产出一条符合 Conventional Commits 规范的提交信息。还有个unit-test-generator能根据函数代码生成测试用例骨架但我的经验是复杂业务代码生成的测试意义不大反而简单工具函数特别好用。这个取舍值得注意技能不是越用越全就好得学会判断什么场景值得用。3.3 数据分析和信息处理类技能适合把脏活累活外包这类是我实际工作中最省心的。csv-analyzer会引导你先把数据字段说明贴上去然后自动做数据概况分析、异常值检测、基础统计汇总比自己写 Python 脚本快得多。sql-optimizer则是经典场景——你把慢查询语句贴过去它会从执行计划的角度反推索引设计问题。这里我想特别说一句信息处理类技能的价值不在于“多聪明”而在于“流程标准化”。手动分析时每个人的思路千差万别但技能库里这些流程被固化下来了输出格式一致结果可比性很高。如果你经常要做月度数据汇报这个特性非常友好。3.4 生活效率类技能被低估的一组可能因为名字太朴素这一类经常被忽略。我用得比较好的是meeting-notes——把会议录音转写文字贴进去它会自动分主题、提炼结论、拆解待办事项并且给每条待办标注负责人假设。trip-planner则会在出行前要你先给出行程偏好、预算和节奏感然后给出一份“时间-地点-交通-备注”四段式行程表。说实话生活类技能的精度不如专业类高但它们的价值在于把AI的“通用能力”框定成可复用的固定格式。一旦你决定以后都用这套模板整理会议纪要输出的所有文档风格都会统一检索起来非常方便。4. 技能引入的几种正确姿势别只会对着AI喊“使用XX技能”4.1 自动发现模式让系统按任务自己匹配superpowers 最理想的用法是“你不必记得每个技能的名字”。它有一个自动发现机制当对话中出现某个技能适用场景的关键词时系统会主动把对应SKILL.md拉入上下文自动应用该技能的工作方法。我实测下来自动发现的准确率取决于你在SKILL.md的“适用场景”里写了什么。写得太宽泛容易误触发写得太具体又经常触发不了。一个技巧是把触发场景描述成“用户输入里出现的具体动作”比如对blog-post不要写“写文章的时候”而是写“用户要求撰写长文、文章、博客内容时”。这样自动匹配的准确率会高很多。4.2 显式引用场景固定时的暴力解法自动发现固然方便但有时候你明确知道该用哪个技能与其等系统猜不如直接点名。superpowers 支持两种显式引用方式一种是在输入里带技能名比如blog-post 帮我写一篇关于智能家居的博文另一种是斜杠命令类似/code-review后面跟上代码。我的使用习惯是日常新任务靠自动发现重要且有明确产出的任务靠显式引用。原因很实际——显式引用能保证这次对话必定执行对应流程不会因为描述的某个词没命中关键词而走回普通聊天模式。尤其是code-review这种事走普通模式和质量差很多我必须确保它触发。4.3 会话内动态加载什么时候加载最合适superpowers 的加载机制很灵活。默认情况下技能在会话开始时按config.json里的启用列表一次性加载但实际上可以做到会话中动态加载——当你在聊天中突然提到一个未启用技能的名字时它会临时拉取该技能描述并应用到后续对话。动态加载的好处是给上下文瘦身。假设你同时启用了 20 个技能总描述字数可能超过 1 万字这会让模型注意力分散。我的建议是常用技能保持启用偶尔用一次的大块头技能保持关闭需要时靠技能名临时拉起来。这样既不损失能力又能控制上下文长度。4.4 多技能叠加与优先级多个技能同时命中时处理顺序典型场景是你发了一段项目周报文本既符合meeting-notes的“会议纪要整理”场景又符合blog-post的“内容重组”场景。两个技能同时加载时怎么决定最终输出逻辑我观察到的规则是SKILL.md文件头部的元信息中如果写了priority: high那么它会优先覆盖低优先级技能的步骤。这个设计其实很值得玩味——它说明技能之间不是简单的并列关系而是存在“方法竞争”。我在自己的技能里会刻意给“数据类”技能高优先级因为如果一份周报里既有数据又有文字数据准确性优先级理应高于文风润色。这条经验你直接用就成不必踩一遍才知道。5. 实测中的坑与解法两周用下来的排错笔记5.1 技能目录加载失败根因竟是一个隐藏文件有个周一我打开项目发现blog-post技能突然不生效了。表现是我用blog-post显式引用系统提示“技能不存在或已禁用”。第一反应是配置文件出问题了翻看config.jsonenabled_skills里明明还有它加载列表也正常。排查了两轮无果最后去看日志才发现是技能目录读取失败。进skills/blog-post一看目录里躺着一个.DS_StoremacOS 自动生成的隐藏文件而SKILL.md依然完好。抱着试试的心态我删掉.DS_Store刷新配置技能立刻恢复正常。定位到最后我很确定这是技能目录遍历逻辑的 Bug——它扫描到隐藏文件后中断了后续解析。这个坑也提醒我一件事技能目录里别乱放非必要文件保持目录干净尤其别放带特殊符号的文件名。5.2 上下文爆炸技能描述太长回答质量反而急剧下降superpowers 给了我一种以前没有过的“奢侈烦恼”技能太好用了于是我把十几个技能全设成默认启用结果对话质量肉眼可见地变差。表现是回答变得拖沓、抓不住重点偶尔还会把不同技能的模板混在一起输出。这其实是上下文被撑爆的表现。每个技能描述几百字到上千字十几个技能叠加后模型处理后续对话时注意力被分散。我最后的处理方案是分级启用的“三档策略”工作流中的核心技能设为启用经常手动调用的技能设为“按需加载”不常用的技能彻底禁用。调整完之后同样的任务回答质量立刻回升。所以我的建议很直接别贪多。技能库里值钱的不是“装了哪几个”而是“当前上下文里到底装了几个”。5.3 同名技能冲突两个技能都叫report听谁的这个问题我是真踩过。我从两个渠道分别装了两套技能库一套侧重数据分析一套侧重内容运营结果里面都有一个report技能。加载时系统没有报错但从某次对话开始输出的报告格式完全变了——四不像既不像数据报告也不像内容总结。查看技能扫描日志后发现同名的后者覆盖了前者生效的只有其中一份SKILL.md。解决方法是给本地技能重命名或者删除冗余的一套只保留符合自己工作流的技能。如果你的技能来源比较多建议定期用superpowers list命令把所有已加载技能列出来对下名字和用途减少这种无感知的覆盖。5.4 “技能失效”的错觉不是框架坏了是没刷缓存使用过程中还有一类迷惑行为明明刚改完SKILL.md的内容但对话里执行的还是旧逻辑。第一次遇到时我以为没保存成功反复改了好几遍都没效果后来才发现是有缓存。superpowers 默认会缓存技能描述的解析结果以加速会话启动。修改文件后需要执行刷新命令清缓存不同发行版命令略有差异我这边是npm run cache:clear。现在我的习惯是每次改完技能内容先清缓存再开新会话验证。这条经验值回票价。好多次所谓的“技能 Bug”最后定位都是缓存问题。诊断时先看缓存再看配置能省下大量排查时间。6. 从会用到用得好把superpowers的玩法沉淀成自己的方法论6.1 先主攻一套能力不要全部技能一起上如果你刚装完 superpowers我的建议只有一个先把一套你最高频的工作流用熟。比如你是写代码为主就只启用code-review和git-commit-msg你是做内容为主就只启用blog-post和seo-keyword。原因我在前面讲上下文爆炸时已经提到了技能加载是有成本损耗的十项技能只精通一样比十样都会一点体验好得多。技能这个东西很少是“多多益善”更多是“合适的正好”。6.2 手写一份自己的SKILL.md给AI定“出厂配置”用熟之后你大概率会想自己定义技能。这一步不难核心就是遵循标准模板你完全可以拿现成技能复制一份再改。我常用的模板结构是这样的# Skill: 技能名称 ## 适用场景 这个技能在什么情况下被激活描述越具体自动匹配越准。 ## 执行步骤 1. 第一步先做信息收集明确目标 2. 第二步分析约束条件列出可选方案 3. 第三步执行方案输出中间结果 4. 第四步自检把结果与目标比对 ## 输出格式 必须包含什么字段按什么顺序输出。 ## 注意事项 哪些情况绝对不能做哪些边界条件需要人工确认。自己写技能有个额外好处你会强迫自己把“怎么做这件事”的隐性经验显性化。比如我给自己写了一个weekly-report技能就逼着我思考每个周五做周报时真正会看什么数字、警惕什么异常。写技能的过程本身就是一次业务方法论梳理。6.3 一条完整的个人工作流示例用一周的实操串联所有环节最后给一个完整的串联示例也是我最近一直在跑的一条工作流。新周一开始我先新建一个会话初始化时加载meeting-notes技能把所有周会录音转写贴过去产出一份结构化会议纪要。然后我会把纪要里的待办事项复制到下一步会话用blog-post技能把其中关键项目写成一份简短周报初稿。等周报收到反馈后我把具体修改意见和原始稿子一起丢到code-review技能虽然是文字不是代码但它的审校逻辑对文本同样适用检查逻辑漏洞和表达偏差。整套流程走完后我再把最终稿归档。你看一条周报从原始会议到可发布版本中间用到了三个技能、两个会话全是被动加载几乎没有额外配置成本。技能列表在网上不难找到但怎么把技能组合成自己的工作流才是 superpowers 真正值钱的地方。我的体会是它让你不再“临时教AI怎么干活”而是把一个熟练工的工作方式整个复制给AI。这套东西刚开始用会觉得是玩具但连续用下去你会发现它悄悄把一个人的效率底线抬高了一大截。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进