
如果你最近在折腾 Codex CLI或者正在用 Trae 的 Agent 模式写代码大概率在社区里反复看到一个词superpowers。这个名字确实有点唬人听起来像个营销概念但真把它的安装向导跑完、再打开生成的技能文件看一眼你会意识到它跟那些收藏吃灰的高质量Prompt模板完全是两码事。先给一个结论superpowers 是一套跑在 AI 编码工具之上的技能包它通过 SKILL.md 这类技能清单 配套脚本的方式改变 AI 在处理编码任务时的行为方式。换句话说它不替 AI 写代码它教 AI 怎么像有工程纪律的人一样处理需求、理解源码、分步执行、验证结果。本文我按自己的实操路径把三件事讲透Codex CLI 怎么装、Trae 工作区怎么接、装完之后哪些技能值得用、哪些坑你大概率也会踩。1. 为什么一套技能包能改变编码 AI 的上限很多人在用 Codex CLI 这类工具时有个感受让 AI 写一个独立函数、写一段脚本它表现很好一旦让它在一个几万行的仓库里改一个牵连多个模块的功能它就容易自由发挥——没有先理解现状就开写没有验证就交差甚至会把项目里已有的工具函数重新造一遍轮子。superpowers 解决的就是这个问题。它的底层思路非常朴素给 AI 配置一套工程流程规范让它在动手之前先做信息收集在生成代码之前先建立代码映射在交付之前先跑测试。技能包不等于提示词提示词是语气和约束技能包是行为协议 任务分解策略 可执行的检查清单。1.1 有知识但没方法AI 编码的真实短板我拿 Codex CLI 做过一个对比实验同一个仓库同一个需求不挂技能AI 直接给出一个 200 行的补丁挂上 superpowers 里的对应技能之后它的回答变成了先梳需求 → 定位相关文件 → 列出约束 → 给出最小改动方案 → 验证路径。改动量小了一半且没有出现之前那种顺手把无关代码重构了的行为。这不是模型变聪明了是它被流程约束住了。对于一个刚入门的开发者来说你在提示词里狂写请认真思考仔细检查效果很差但技能包会把仔细拆成可执行的步骤。AI 哪怕不懂你的项目也会按步骤做信息收集。这就是我说它改变的是工作方式而不是回答长度。1.2 技能包的内部结构一套可以被挂载的指令体系superpowers 的细节在不同月份变化很快但它核心的组织方式相对稳定分为行为技能behavior skills和编码技能coding skills两大类。每个技能是一个独立文件夹里面有 SKILL.md 说明文件、可选的脚本目录和资源文件。SKILL.md 的开头有一段 frontmatter包含 name 和 descriptionAI 就是靠 description 来判断什么场景下应该调用这个技能。类别作用对象典型内容生命周期行为技能AI 的工作流程多步推理、测试先行、需求澄清每次任务开始时生效编码技能某类具体编码任务复制代码、代码审查、生成提交信息命中场景时才加载这个命中场景才加载的设计很关键。它不是把所有内容都塞进上下文而是让 AI 在收到任务后先判断现在属于哪个场景再读取对应的 SKILL.md 来约束自己的执行方式。这就解释了为什么安装技能包之后AI 的日常短问答并没有明显变慢但复杂任务的完成质量上了一个台阶。2. Codex CLI 安装 superpowers 的完整链路如果你已经在用 Codex CLI安装 superpowers 其实没有想象中复杂。整个过程可以概括为跑一个配置向导选择 AI 工具选择要安装的技能生成项目记忆文件夹。下面按我的实际操作顺序拆开讲。2.1 安装前的准备环境要求与目录规划先确认基础环境。Codex CLI 本身需要 Node 环境建议 Node 18 以上。安装之前打开终端跑一下codex --version确认版本不是太旧。如果之前已经用 Codex 做过不少项目注意你的全局配置里可能带了自定义的 AGENTS.md 规则这会影响 superpowers 的安装结果——不是冲突而是它会把内容合并进现有项目记忆文件合并顺序对技能触发时有影响。我个人的习惯是建一个干净的试验目录来跑首次安装例如~/projects/superpowers-lab。在这个目录里先初始化一个 git 仓库因为技能包的安装向导会检测当前目录是否在 git 仓库内它生成的某些脚本和文档链接依赖仓库根目录做路径解析。没有 git 仓库也能装但生成的项目地图类技能在后续代码定位时可能会找不到根路径所以先git init是值得的。2.2 运行配置向导从零到技能就绪在干净的试验目录里执行安装命令。不同版本可能用到的包名有差异以当前网络的公开资料来看比较常见的入口是npx superpowersapps/superpowers第一次执行时 npx 会问你OK to proceed?继续就好。接着进入一个交互式配置界面主要有三个维度的选择目标 AI 工具选择 Codex CLI如果你的场景是 Trae选择对应的 Agent 模式或先选 Codex 再手动改路径这一点在本文第 4 部分细说。安装哪些技能安装向导会列出行为技能、编码技能、语言相关技能的清单。新手建议全装跑通验证之后再按需裁剪。项目记忆文件的位置向导会在当前目录生成.superpowers文件夹并在AGENTS.md或SKILLS.md中写入技能索引。配置完成后向导会给出一个验证提示。最直接的方式是重启 Codex CLI然后用斜杠命令查看已加载技能codex /skills如果能列出你刚安装的技能清单说明加载成功。注意这里是重启会话后再验证旧的会话里技能索引可能不会自动刷新。2.3 安装后我第一次踩的坑技能列表为空我第一次装完/skills返回空列表当时差点以为是装坏了。后来排查发现问题出在我没有从 Codex 的旧的交互会话退出直接在会话里跑/skills而 Codex 读取 AGENTS.md 的时机是会话启动时。也就是说会话创建之后安装技能当前会话是感知不到新技能存在的。另外还有一个权限问题值得注意如果当前目录在~/或某些受系统保护的位置生成的.superpowers文件夹可能没有写权限导致技能脚本无法执行。我当时在/Users/用户名/下直接跑安装脚本部分失败。后面把项目挪到普通用户目录下的独立文件夹再装一切正常。这些和教程对不对无关纯粹是环境细节。装完后想快速确认目录形态可以打开.superpowers看看里面是不是每个技能都包含一个SKILL.md如果某些技能只有目录没有文件大概率是安装的中途遇到了文件写入失败重新执行一次安装向导通常能补齐。3. 核心技能拆解哪些 skill 真正值回票价装了技能包之后下一步是理解它到底给了 AI 什么新的能力。superpowers 的技能数量不少我都过了一遍但真正在日常开发中高频触发、改变了我工作习惯的是下面这几个。3.1 copy-coding让 AI 先读再写的范式转变这是我对 superpowers 评价最高的技能没有之一。它的切入点是解决一个被很多人忽略的问题当你说把这个页面复制过来或把这段逻辑搬到新模块AI 往往会直接生成一段看起来很像的代码但实际上跟你项目里的类型定义、路由方式、状态管理完全对不上。copy-coding 的执行流程大致分四步先解析你的输入拆出你要求的页面/功能/数据流核心概念在代码库里做地图扫描找到相关的入口文件和依赖链把代码库里的实现方式映射到输入概念里识别出哪些是死代码、哪些是待修改部分起草代码时遵循最小改动原则而不是整体重写我在一个 Vue 3 项目里实际用了一次需求是把用户列表页复制成项目列表页字段不同。没有技能时AI 给我生成了一份全新的文件和原来的代码风格割裂用了 copy-coding 之后它自动查找了原有的列表页组件、路由配置、API 封装然后告诉我建议修改 5 处新增 1 个文件交付结果基本符合预期。3.2 multi-step-thinking让推理链显式化multi-step-thinking 是一个行为技能它的作用是强制 AI 在开始回答问题前先把任务拆解步骤写出来并在执行过程中逐步验证中间结果。乍听起来像让我想想的 Prompt 加强版实际差别在于它要求每一步的推理结果必须对应到仓库里的文件、代码片段或命令输出而不是抽象的我觉得应该这样。实操下来这个技能是双刃剑。在 Codex 配合较强推理模型时它能显著减少 AI 胡说八道的概率但在一些小参数模型上它反而会让 AI 的思考变得冗长且离题。最典型的表现是模型硬套多步推理模板输出大量第 1 步、第 2 步的空泛描述却没有真正的代码改动。所以这个技能不是给所有模型都用同一个配置后面第 5 部分我会专门讲模型门槛。3.3 code-review 系列把人工检查清单交给 AIsuperpowers 里还有一组编码技能跟代码审查有关比如对改动代码做审查、对补丁做检查、以及为提交信息生成结构化描述。这类技能的价值不在找到 bug而在于它提供了一套可复现的审查视角改动是否越过了需求边界是否有重复的工具函数可以复用类型的变更是否同步到了调用方错误处理是否覆盖了失败分支这套审查框架本身并不稀奇但以技能形式挂载后你可以随时对任意一次改动触发它而不是靠自己的记性去提醒每一次都让 AI 检查。我一般会在生成补丁后、提交合并前用一下当天的改动就会少很多低级但影响面大的问题。4. Trae 工作区接入实践把技能挂进 Agent 项目Trae 的 Agent 工作区是我日常主力。很多人在 Trae 里装 superpowers 会觉得不顺畅原因是 Trae 的配置路径和 Codex CLI 不完全一样它更强调工作区的概念。下面是我的接入方法。4.1 Trae Agent 工作区如何加载技能Trae 的 Agent 模式在项目中有自己的一套指令文件读取机制常见的是读取项目根目录下的说明文件类似 AGENTS.md 的项目指令这些指令文件会在 Agent 启动或新会话创建时被载入。superpowers 生成的技能索引如果能被这个指令文件引用Agent 就能在需要时读取对应的 SKILL.md。所以接入的本质是把技能包的文件放到工作区目录里再让 Trae 的 Agent 在启动时看得到那份技能索引。在这个基础上有两条路方法一直接在工作区根目录用 CLI 生成技能包让安装向导选择 Trae 对应的选项如果有自动写入该项目使用的说明文件。方法二手动创建技能目录并在 Trae 的项目指令中引用技能索引。4.2 我的配置步骤与验证方法我实际用的是方法一但做了一点调整。因为当时安装向导里对 Trae 的支持还不够直观我先按 Codex 的方式把 superpowers 生成到项目根目录再在工作区的项目指令文件里追加了一行配置指向生成的技能索引文件。大致路径形态如下project-root/ ├── .trae/ │ └── rules/ │ └── project_rules.md # Trae 项目指令 ├── .superpowers/ │ ├── SKILLS.md # 技能索引 │ └── skills/ # 各技能目录 └── AGENTS.md然后将技能索引引用追加到项目指令文件里## Skills 当任务涉及编码实施、代码理解、审查等场景时应首先读取 .superpowers/SKILLS.md 中的技能列表并加载对应的 SKILL.md 作为执行约束。配置完成后重开一个 Trae Agent 会话在对话里直接问你能列出当前工作区加载了哪些可用的技能吗如果回答中提到了 copy-coding、multi-step-thinking 等技能说明安装成功。如果没有检查一下 Trae 工作区对项目指令文件的读取时机一般需要新建会话不能复用旧会话。4.3 在 Trae 上复现的一个高频问题我在 Trae 工作区里刚开始也遇到过一个很诡异的现象技能索引已经写进来了项目指令也引用了但 Agent 在编码时完全不按技能流程走。后来发现原因是 Trae 的 Agent 内置了多档模型我默认用的那档小模型虽然能看到技能文件但没有足够的推理能力去执行多步技能流程。切换成最强的推理模型档位之后同样的配置立即生效。这个问题的根源在于技能包改变的是 AI 的执行策略不是 AI 的理解能力。如果模型本身缺乏长上下文推理能力它读到了 SKILL.md 也相当于没读到。后面我在项目里就固定了复杂编码任务用推理模型简单问答用小模型的使用习惯。5. 安装成功只是开始模型门槛、token 成本与触发逻辑很多帖子只讲怎么装不讲装完怎么用更不讲为什么不同人装同样的技能包效果天差地别。这一节把这些容易被忽略的问题讲清楚。5.1 模型档位决定了技能包的天花板我分别在 Codex 里用不同档位的模型跑同一个技能包结果差异非常大模型档位表现原因轻量快速档能看到技能文件但很少主动按流程执行上下文窗口和推理长度有限技能里的步骤被压缩成了装饰均衡档能触发部分技能复杂任务容易半途偏离能理解流程但长链条推理稳定性不足顶级推理档完整走完技能流程交付质量稳定有足够的推理深度来执行多步决策和验证所以如果你装完之后觉得没什么用不要急着卸载。先把默认模型切到你当前可用配置里最强的推理档再跑一次之前觉得失败的任务大概率感受完全不同。这不是玄学是模型的执行能力差异。5.2 技能不是越多越好一份真实的 token 观察superpowers 支持全量安装我一开始也全装了然后很快就发现一个现象每次新会话启动时AGENTS.md 和 SKILLS.md 的索引信息都要进入上下文技能数量多的时候会占掉不少 token简单任务还没开始干几百个 token 就烧掉了。对高频小任务来说这个成本有点高。我后来做了裁剪行为技能保留 multi-step-thinking 和测试相关编码技能只保留 copy-coding、code-review 和提交信息生成。会话启动开销降了接近一半而日常任务该触发的技能一个没少。另外SKILL.md 文件本身也建议保持精简。一个技能文件如果在 100 行以内AI 在命中场景时能快速读取如果写得像一本书AI 反而会在冗长上下文里丢掉重点。这个原则同样适用于后面你要自己写技能的场景。5.3 描述越精确触发越稳定技能里的 frontmatter 是 AI 判断何时调用的唯一依据但它有三个字段比较关键name 是技能的标识description 是触发条件描述allowed-tools 可选地限制技能内部可以访问的工具。很多人不注意 description 的写法导致 AI 频繁误触发或从不触发。我给你一个对照# 不推荐的 description description: 用于代码生成和修改任务。 # 更合理的 description description: 当用户要求复制现有页面、组件或功能到新位置且需要保持代码库一致性时使用。不适用于从零开始的新功能开发。第一版描述过于笼统AI 会在帮我写个函数这种简单需求时也尝试加载技能白白消耗上下文第二版把触发窗口写清楚了命中率高且明确排除了不适用场景。装完技能之后花几分钟检查一下 description是回报率很高的调优。6. 把 superpowers 改成你的形状编写私有 skill 的框架技能包用得越久我越意识到它的真正价值不是那几十个预置技能而是它提供了一个把团队规范沉淀成 AI 可执行指令的框架。到了这个阶段你会开始想写自己的技能。6.1 什么场景值得写一个私有技能三个判断标准一团队里的代码规范文档写了但人记不住二你的项目技术栈或目录结构很特殊AI 每次都要靠试错才能理解三你发现自己在重复给 AI 粘贴同一段长指令。满足其中一个就值得把这段经验打包成一个技能。我写过的第一个私有技能是关于一个遗留项目的那个项目里每个模块都要同步改三处文件否则运行时报错藏得很深。第一次让 AI 帮我改它只改了主文件我反复纠正了三次。后来我把这个逻辑写成了技能再让 AI 处理同类需求它第一步就会检查另外两个文件是否同步更新了。6.2 一个私有技能的最小骨架在.superpowers/skills/下创建以技能名命名的文件夹里面放一个SKILL.md--- name: sync-legacy-module description: 当在 legacy 项目中修改模块时必须调用此技能以确保三处文件同步更新。适用于员工模块、订单模块不适用于新增模块。 --- # 同步遗留模块三处文件 ## 背景 遗留模块的每次改动必须同时更新以下三处 1. 主入口文件 src/modules/{name}/index.js 2. 路由映射文件 src/router/{name}.js 3. 侧边栏配置文件 src/config/sidebar.js ## 执行步骤 1. 先定位被修改的模块名 2. 检查上述三处文件当前内容 3. 按需求改动主入口文件 4. 同步更新路由映射和侧边栏配置 5. 检查是否存在对旧路径的引用如有则一并修正 ## 验证清单 - [ ] 三处文件均已更新 - [ ] 不存在旧路径引用 - [ ] 本地运行无报错这样一个技能写得很简单但它解决了 AI不知道你项目里有暗线依赖的问题。写完以后在 SKILLS.md 索引里加一行指向新技能的路径然后新建一个会话触发测试。6.3 验证与迭代从技能消费到技能维护验证技能是否生效不要只问你加载了技能吗要实际给它一个该技能覆盖的任务观察它的第一步是否按照技能的约束进行。如果没有多半是 description 的触发条件没写好或者当前模型没有足够推理能力执行多步流程。迭代时优先改 description而不是急着改正文步骤。我现在的做法是每两周会整理一次技能列表删掉那些从没触发过的优化那些触发过但执行偏离的。技能是活的隔一段时间不维护它也会过期——比如依赖包升级了、目录结构调整了技能里的路径就失效了这时要及时同步更新。用 superpowers 一段时间后我对AI 编程工具的天花板在哪里有了新的理解。真正拉开差距的不是工具本身而是你是否给了工具一套可执行的工程流程。技能包提供的是起点持续维护和自定义技能才是让它真正适配你项目的关键。希望这篇实操记录能让你少走几步弯路。