最近在技术群里看到好几个朋友都在问superpowers到底是什么、有没有现成的skills可以直接用、怎么才能把它引入到自己的编辑器里。一问才知道大家说的其实是 VS Code 里的那个开源 AI 辅助插件 Superpowers。我自己把它当主力辅助工具用了挺长时间从安装、配模型、试内置技能到自定义技能该踩的坑基本都踩了一遍。这篇文章就当作一次完整的操作复盘把你想知道的“有哪些 skills、怎么引入、怎么安装”一次说清楚。1. Superpowers 到底是什么一个把 AI 能力装进编辑器技能栏的开源插件1.1 一句话定义可编程的 AI 技能包如果你用过 GitHub Copilot 或者 Continue大概能感受到两类 AI 辅助工具的差别Copilot 擅长在光标处补全下一段代码Continue 擅长在侧边栏跟你对话。而 Superpowers 走的是第三条路——把常用的 AI 能力封装成一个个独立的“技能skills”你用命令面板或者右键菜单触发它直接对选中的代码、文件内容或者报错文本执行动作。所以它的核心不只是一个插件更像是一个“技能执行器”。每一个技能背后都是一段精心设计过的提示词模板再加上模型参数和上下文规则。你选中一段代码执行“解释代码”这个技能它就把选中内容、语言类型、需求这些信息拼装成一条结构化提示词发给大模型再把结果回填到编辑器里。1.2 为什么它值得被单独拿出来讲我把 Copilot、Continue、Superpowers 三个都装过最后 Superpowers 留在日常流程里的原因是它的行为是确定性的而你又能完全掌控提示词内容。Copilot 的补全是隐式的你很难知道它为什么给出这段建议Continue 的对话是开放式的每次都靠即兴提问。Superpowers 不一样每个技能名就代表了你要做的事——“生成单元测试”就是生成单元测试“代码审查”就是代码审查。你甚至可以自己定义一个新的技能把团队的编码规范、注释风格全部塞进提示词里让每次执行都符合团队约定。它适合这几类人想要快速体验到 AI 辅助写码但不想被对话式界面牵着走的人。想把团队提示词沉淀成可复用资产让所有人都能用同一套标准调用 AI 的团队。喜欢自己折腾愿意为不同任务配置不同模型参数的老手。2. 安装与配置想让 Superpowers 跑起来其实就三步2.1 安装扩展从扩展市场搜索到启用间隔不到一分钟Superpowers 是 VS Code 扩展安装非常简单。打开 VS Code 左侧扩展面板搜索superpowers找到作者为Pablo Klaschka的那个扩展点击安装。需要注意现在扩展市场里带“superpowers”字样的插件不少认准这个作者名最稳妥。安装完成后VS Code 可能会提示你选择是否信任此工作区。Superpowers 有工作区信任机制因为有些技能会涉及生成和执行命令不信任的话部分功能会被限制。个人使用时选“信任”就行但团队协作时要提醒团队成员别乱点信任。2.2 配置模型 API钥匙拿到手之后要做的事运行 Superpowers 需要一个大模型的 API 地址。它默认兼容 OpenAI 的接口协议所以你至少需要一个 API Key。打开 VS Code 设置搜索superpowers找到 API Key 配置项填入你的密钥。如果你用的是自建模型服务或者本地模型可以在自定义 Base URL 里填对应的地址比如本地 Ollama 服务对应的 OpenAI 兼容地址。这么做的好处是数据不出内网适合对隐私敏感的团队。这里有一个非常关键的提醒不要把 API Key 直接写进.vscode/settings.json。如果这个目录被提交到 Git 仓库密钥就等于泄露了。我习惯的做法是用 VS Code 的密钥存储机制或者通过环境变量OPENAI_API_KEY传入扩展会自动读取。配置完之后重启 VS Code状态栏上应该能看到 Superpowers 的图标说明它已经加载成功。2.3 第一次运行从一次“解释代码”开始装好之后先别急着追求高级玩法。打开任意一个代码文件选中一段函数按CtrlShiftP打开命令面板输入Superpowers你会看到一系列可执行技能。先选“解释代码”模型会把这段函数逐行拆开告诉你每个分支在做什么、可能存在的隐患是什么。第一次运行通常会慢一点因为要等待模型响应。这里需要说明的是你不需要切走窗口结果会在右侧面板展示也可以根据需要直接插入到当前文档里。跑通这一步说明你的安装和配置已经没问题了。3. 内置 Skills 全盘点拿到手就能用的 AI 技能清单3.1 代码理解与审查类几乎每天都会用到Explain code是入门必用的技能它能把一段复杂逻辑翻译成人话。我处理别人的老代码时第一步永远是选中整个函数体先让它解释一遍再决定怎么改。Code review更偏向审查视角它不会逐行解释而是直接指出这段代码有哪些潜在 bug、有没有边界情况没处理、有没有更好的写法。我用它做过一次模拟评审发现它很擅长抓空指针和异常处理缺失这类问题靠人眼检查确实容易漏。Find potential bugs和Explain code的区别在于它只输出问题清单不输出解释。更适合在提交代码前对改动区域快速过一遍。3.2 代码生成与改动类从测试到性能优化全覆盖Create unit tests是我最常用的技能之一。选中一个函数它会基于函数签名和逻辑生成对应的单元测试包括正常用例、异常用例和边界用例。生成完我还要检查一遍命名规范和 mock 方式是否符合项目风格但至少搭骨架的活它已经干完了。Improve performance会分析选中代码的性能瓶颈并给出改写建议同时说明为什么新写法更快。比如它能指出循环里重复查询数据库的问题建议改成批量查询。它给出的修改经常附带重写后的完整代码块可以直接应用。Write documentation会根据代码生成注释和文档。我建议把它用在公共 API 上私有函数没必要。生成的文档风格偏向 JSDoc 和 docstring团队如有自己的文档规范就把它当作素材草稿。3.3 资源生成类写页面和测试数据的神器Generate standalone HTML file能根据你的描述生成一个完整可运行的 HTML 文件适合做原型演示。Generate SVG则可以根据描述生成 SVG 图片代码我以前用它生成过架构图素材和占位图标比打开画图软件快得多。Generate sample data能生成符合字段定义的假数据。比如你定义了name, age, email, created_at四个字段它就能生成二十条模拟数据用于接口调试和前端开发非常方便。3.4 自定义技能其实也是“内置”的扩展方式内置技能只是起步Superpowers 真正强大的地方是可以自定义技能。你可以在命令面板里找到类似“创建自定义技能”的入口它会在当前工作区生成一个技能定义文件。后续新增技能、修改提示词都在这个文件里完成这个机制把插件从“工具”变成了“框架”。4. 技能机制的底层逻辑为什么是 Skills 而不是 Chat4.1 每个 Skill 本质是一段提示词模板加参数很多人误以为技能是靠插件硬编码实现的其实不是。Superpowers 把技能定义成结构化配置核心就几样东西技能名称、提示词模板、模型名称、温度、最大 Token 数。以“解释代码”为例它的提示词模板大概是“你是一名经验丰富的开发者。请解释下面的代码包括其功能和潜在问题代码语言为 {language}\n\n{selection}”。执行时插件把选中的代码填进{selection}再把当前文件的语言类型填进{language}发给你配置的模型。这种设计的价值在于你可以完全控制发给模型的内容。如果你觉得默认提示词不够好直接改模板就行不需要等插件作者更新。4.2 技能与选中上下文配合让 AI 更懂意图Superpowers 的输入来源通常有几类编辑器中选中的代码。当前文件的完整内容。命令面板中输入的一段自定义文本。剪贴板内容。选中代码这块非常关键。同样是“生成单元测试”技能你选中函数时它知道目标是被选中的函数如果你不选中任何内容直接执行它就只能根据当前文件推断效果会差很多。所以用这个插件第一习惯不是问“AI 你猜我要干嘛”而是明确地用光标告诉它“你要处理的就是这里”。4.3 数据与隐私哪些内容会被发送出去这点我觉得必须直说执行技能时选中的代码、提示词模板、文件信息都会发送给你配置的模型服务。如果你用远程 API那等于代码出了本地机器。我的建议是公司项目里的核心代码要么用私有化部署的模型服务要么只上传脱敏后的伪代码片段。把技能里的selection替换成简化版本同样能获得不错的建议。这属于你在使用前就应该想明白的边界问题。5. 如何引入自己的技能创建一个只属于你的 Skill5.1 创建第一个自定义技能的工作流在命令面板执行“新建技能”相关的命令后Superpowers 会在当前工作区生成一个.superpowers目录里面放着新建的技能文件。你只需要按 JSON 格式填写字段。以我项目里的一个“解释报错信息”技能为例{ name: explain-error, title: 解释报错信息, prompt: 你是一位经验丰富的后端工程师。请解释以下报错信息的含义并给出最可能的解决步骤。报错信息\n\n{{selection}}, model: gpt-4o-mini, temperature: 0.2, maxTokens: 1000 }注意字段名在不同版本可能略有差异但核心就是这几项。temperature越低模型输出越稳定报错解释这类任务我设为0.2因为它需要事实准确而不是发散创意。如果是头脑风暴、写方案0.8以上效果更好。5.2 一个真实案例让技能处理控制台错误之前我在调试一个 Node.js 服务时报错信息是一大段堆栈。传统做法是复制到搜索引擎或者问人现在我会选中报错文本执行“解释报错信息”技能。它会返回报错属于哪一类错误、在哪个调用栈环节发生、根因大致是什么、按什么顺序排查。有一次它直接指出是数据库连接池耗尽还让我检查连接释放逻辑。按它的思路一查果然是超时设置太小导致连接没释放。这个技能已经成为了我日常调试的标准动作。5.3 团队共享技能把经验沉淀进仓库自定义技能文件放在项目目录里后可以提交到 Git。队友拉取代码后只要装了 Superpowers就能看到团队定义的技能集合。我给团队做过一套规范技能里面把团队的前端代码规范写进了“代码审查”的提示词比如组件要拆分到什么粒度、样式文件怎么组织、接口调用放在哪一层。团队成员在做代码审查时直接执行这个技能AI 给出的意见就会自动贴合团队规范。这种方式比一遍遍口头强调规范有效得多。6. 安装和使用中的高频问题我替你踩过的坑6.1 API Key 泄露与权限问题最常发生的低级事故就是把 API Key 提交到了 Git 仓库。密钥一旦泄露轻则被人盗刷额度重则可能被滥用。排查方法很简单在代码托管平台搜自己的 Key 前缀能搜到就说明已泄露。发现泄露后立刻去控制台吊销并重建不要抱着侥幸心理。另外工作区信任权限不要随意授予。如果某个项目加载后弹窗要求信任而它来自陌生人建议先查看一下目录里有没有可疑的.superpowers技能文件。因为自定义技能里的提示词可能被恶意构造诱导模型执行不该执行的内容。6.2 上下文太长导致 Token 超限选中几百行代码执行技能时经常遇到“上下文长度超限”的错误。这不是 bug是你选中的内容超过了模型的上下文窗口。解决办法有三条缩小选中范围把目标函数或代码块拆小一点再执行。换用上下文窗口更大的模型。在提示词模板里加上“只关注代码的主流程忽略与当前任务无关的工具函数”之类的约束让模型不要纠结于上下文里不重要的内容。6.3 模型返回不稳定怎么办同一个技能有时候回答质量很高有时候却答非所问。排查思路是先把temperature调低。但如果你已经低到0.2还出现离谱回答就要考虑是不是提示词不够清晰。我的经验是提示词模板里必须有明确的角色、任务、输出格式三个要素。比如“生成单元测试”的模板如果只写“帮我写测试”模型容易乱发挥。加上“使用 Jest 框架、文件命名规范为*.test.js、只输出测试代码不输出解释”之后输出立刻稳定。这些约束就是在打磨技能本身。6.4 常见问题速查表症状可能原因解决办法插件图标不出现API Key 未配置或配置无效检查 VS Code 设置和OPENAI_API_KEY环境变量重启后重试执行技能报 401密钥已失效或在组织接口未授权去控制台重新生成密钥确认模型访问权限结果为空只返回换行上下文过长或模型中途截断缩小选中区域换大窗口模型检查maxTokens自定义技能不生效技能文件格式错误或字段名不对对照默认技能模板逐项检查确认名称唯一生成结果全是套话提示词约束不足在模板中加入输出格式要求和禁止事项7. 最后聊一点我的使用习惯按照惯例很多文章到这就开始总结了。但我想说的是哪怕你把这个插件装上、技能列表背得滚瓜烂熟如果不改变使用场景它很快也会沦为摆设。我现在的习惯是把 Superpowers 当作“第一遍草稿生成器”。写新功能时先写一个骨架注释然后让“生成实现代码”技能给出初版拿到初版后人肉审查每一行再让它生成测试。这样既保留了 AI 的效率又保留了人的最终判断权。自定义技能的部分我强烈建议每个团队都花半天时间做一次梳理把常用任务整理成标准提示词放进技能库你会发现 AI 的产出质量和稳定性都会有质的提升。工具说到底只是工具它不会替代你的判断力但可以帮你在繁琐的环节中省下大量时间。先把安装和内置技能玩明白再尝试自定义这样你才能真正理解它到底能做什么。