你是不是也有这种体验用 AI IDE 写代码对话窗里聊得头头是道真让它干活又开始自由发挥步骤乱、输出格式乱结果照样要自己返工。问题根源很多时候不是模型不够聪明而是缺少一份标准操作说明书。skills.sh 这个站点做的就是收集这类说明书把各种可复用的 AI 技能打包成以 skills.md 为核心的文件放进 AI 助手的技能目录后模型就会按固定流程干活。把 skills.sh 上的 skills.md 配置到 Trae 里正是今天我要手把手带你跑通的事。这篇内容适合三类人已经在用 Trae、但没碰过技能功能的用户想把 AI 编程输出变得稳定、可复制的开发者以及纯粹好奇 IDE 里的技能机制怎么玩的人。我默认你有一台能正常装软件的电脑、会打开终端、对目录结构有基本概念但完全不要求你写过插件。1. 先搞懂 skills.sh、skills.md 和 Trae 技能机制1.1 skills.sh 到底是个什么网站skills.sh 可以理解成一个给 AI Agent 用的技能市集。它不是卖软件的商店更像是一个社区维护的资源库。里面每个技能通常以文件夹形式存在文件夹里最核心的文件就是 skills.md有时还会附带脚本、模板、示例文件。站点对技能做了分类比如代码审查、架构设计、数据清洗、文档生成等你想让 AI 做什么基本都能翻到现成定义。这些技能解决什么问题举个例子你经常让 AI 做代码走查。没有技能时AI 每次都临场发挥这次从性能讲起下次先吐槽命名检查顺序永远不统一。配上一个代码走查技能后模型会按照技能里写好的检查项、执行顺序、输出模板来干活结果变得高度可控。我自己的理解是技能给模型提供的是约束 脚手架。模型本身有大量知识但缺的是针对你当前团队、当前项目定义的流程技能刚好补上这一块。它不改变模型能力上限而是把能力稳定在下限之上。1.2 skills.md 的标准结构前端信息 技能正文skills.md 本质上是一份 Markdown 文件但它不是写给人看的文章而是写给 AI 读的操作指令。它通常由两部分组成前端信息文件开头用---包裹的 YAML 区域记录技能名称、用途描述、版本、作者等。IDE 就是靠这部分来索引和管理技能的。技能正文一份标准作业流程包含使用场景、执行步骤、约束条件、输出要求、示例等。用生活化类比就是菜谱。前端信息相当于目录里的菜名和口味标签正文相当于备菜、下锅、调味、装盘的具体步骤。AI 拿到菜谱后会照着做而不是凭喜好乱炒。常见的元信息字段有这些字段是否必填作用name必填技能唯一标识建议简短description必填模型判断何时触发技能的依据version选填技能版本号author选填维护者信息license选填开源协议说明在 skills.sh 上下载到的文件有些叫 skills.md有些叫 SKILL.md少数叫 skill.md。名字大小写不影响内容但在 Trae 里怎么放需要按它的规范来这一点后面专门讲。1.3 Trae 如何识别技能Trae 是一款 AI 原生 IDE支持对话、Agent 编程、插件等能力。技能功能是它扩展 Agent 能力的目录机制Trae 会扫描固定路径下的技能目录把每个 skills.md 解析成一个可被调用的能力包。关键点有两个。第一是路径。Trae 按约定目录找技能文件项目级配置通常放在项目根目录的.trae/skills文件夹里面每个子目录放一个技能全局配置则放在用户目录下的 Trae 配置目录。第二是内容。Trae 靠 skills.md 里的 name 和 description 决定什么时候把这个技能暴露给模型。description 写得越贴近你的真实任务模型就越容易在合适时机调用它。这里要提醒一句Trae 版本更新频繁技能入口在不同版本里可能叫技能、Skills、智能体技能等等。找不到入口时直接在设置面板里搜skill或技能实在不行用约定目录手动创建效果一样。2. 配置前准备版本、目录和工具2.1 确认 Trae 版本与技能入口不建议在太老的版本上折腾技能功能是逐步完善的旧版可能压根没有。打开 Trae 设置界面搜技能或Skills如果出现相关管理面板说明版本支持搜不到就先更新到最新版再继续。技能管理面板通常会告诉你两件事技能目录的准确位置以及当前已识别到哪些技能。这对排查问题很有价值。把路径记下来后面放文件时以面板显示的路径为准而不是以网上教程写的为准。如果你用的是公司统一分发或深度定制的版本界面可能有些差异但原理都一样找到扫描目录把技能文件丢进去。2.2 项目级与全局技能目录怎么选Trae 的技能目录通常分两层层级路径示例作用全局用户目录下的 Trae 配置目录对所有项目生效项目级项目根目录的.trae/skills只对当前项目生效可随项目走第一次配置我强烈建议从项目级开始。原因很简单项目级目录就在你的工程里一边配一边能打开文件确认结构出了问题也容易定位。全局技能适合放那种跨项目都通用的习惯比如中文提交信息规范。如果你是团队协作项目级技能还能提交到代码仓库让所有成员自动共享同一套规则全局技能则只属于你个人。2.3 从 skills.sh 获取文件的三种姿势第一种是网页浏览。在 skills.sh 站上按分类或关键词找到目标技能进入详情页后直接下载目录或打开 skills.md 复制全文。适合只装一两个技能的情况。第二种是命令行。skills.sh 官方提供命令行工具常见的安装命令形如npx skills add 技能名。注意命令的具体形式会随官方版本调整请以技能详情页给出的安装命令为准。命令的好处是能一次性拉取整个技能目录不用手动逐个下载附带的脚本和模板。第三种是自己写。找不到合适技能时完全可以参考它的格式从零写一个放进 Trae 后同样能识别。这个后面在进阶习惯里展开说。不管哪种姿势最终要拿到的东西是一样的一个以 skills.md 为核心的文件或文件夹。后面所有操作都围绕这个核心展开。3. 手把手把 skills.md 配置进 Trae3.1 第一步在 skills.sh 上挑一个合适的技能别一上来就装几十个。先搜一个最近真会反复用到的任务比如代码审查或生成测试用例一次只选一个。选的时候看四件事技能描述它到底能做什么和你想要的场景对不对得上文件结构是否依赖脚本、模板如果是复制时要整个文件夹一起拿。更新时间太久没更新的技能示例和命令可能早就失效。复杂度如果页面提示依赖很多外部工具新手期先避开。一个技能只解决一个问题这是最重要的选品原则。那种又写文档、又写测试、又做重构的全家桶式技能描述很难写清楚模型反而不容易在正确时机触发。3.2 第二步把技能文件拿到本地以命令行方式为例在项目根目录执行安装命令后终端会提示文件放到哪个位置。常见结果是生成一个skills或.agents/skills之类的目录里面有一个按技能名命名的子文件夹比如code-review/skills.md。如果命令行安装到了默认的.claude/skills或类似目录而 Trae 读的是.trae/skills那就把整个技能目录复制过去不用手动改内容。如果你是在网页上手工复制那就先建好目标目录再把内容粘贴成文本文件。这里最容易踩一个坑只复制 skills.md忽略同目录下的参考文件。技能正文里如果有file或相对路径引用一旦缺了伴生文件AI 执行到那一步就会断掉。所以要么整个目录一起拿要么选一个不带附着文件的纯文本技能。3.3 第三步按 Trae 目录规范放好现在进入正题。以项目级配置为例推荐结构如下你的项目/ ├─ .trae/ │ └─ skills/ │ └─ code-review/ │ ├─ skills.md │ └─ reference.md └─ src/ └─ ...操作要点.trae目录放在项目根目录与源码同级。skills里的每个子目录名就是技能目录名建议用英文小写和连字符比如code-review不要用空格和中文。每个子目录里放一个skills.md这是 Trae 固定读取的文件名。从 skills.sh 拿到的是SKILL.md复制过来时可以改成skills.md不同版本要求略有差异改完后重启看一眼是否识别即可。如果技能还依赖脚本、模板全部放进这个子目录不要散放到别处。我见过有人把 skills.md 直接丢在skills根目录下、没有子目录结果 Trae 一直识别不出。因为 Trae 约定一个目录对应一个技能文件必须待在它自己的技能目录里。3.4 第四步检查并修正技能元信息打开放好的 skills.md重点看开头---区域的字段。至少在name和description上要认真核对。name 尽量简短唯一description 要尽量像一句给 AI 看的搜索索引。同样是代码审查技能两种写法差别巨大description: 对代码进行审查description: 当用户要求检查代码质量、审查提交、排查不规范实现时执行安全检查、性能分析、命名规范检查并输出按严重程度排序的问题清单和修改建议第二种不仅告诉 AI什么时候用还告诉它用了能产出什么触发率会高很多。如果拿到的技能描述过于笼统动手改成你自己的场景再放进去。最后文件编码保持 UTF-8尽量不要带 BOM。Windows 下用记事本另存容易带 BOM大多数时候没影响但出问题时很难排查。3.5 第五步重启 IDE 并用一句话测试配置完成后把 Trae 完全退出再重新打开确保它重新扫描技能目录。只关窗口有时候不触发重扫彻底退出进程最保险。打开 Agent 模式或对话窗口直接说一句贴近技能描述的话例如请用代码审查技能检查当前分支上的改动。如果模型正常调用输出会符合技能模板说明配置成功。如果它依然随便乱答先别急看下面第四章逐项排查。4. 配置过程中常见的坑与排查技巧4.1 技能文件放对了但就是不生效不生效通常集中在四个地方目录层级不对skills.md 必须在skills/技能名/下面放浅了或放深了都扫不到。文件名不对Trae 固定读 skills.md或按版本读 SKILL.md改回来时注意大小写和扩展名。元信息解析失败frontmatter 的---没闭合或 YAML 语法有误。从第一行往下检查确认两组---都完整。没有重新扫描IDE 没完全退出技能缓存还在内存里。彻底退出再开。还有一个真实存在的情况路径里如果有中文目录名、空格或特殊符号某些版本会直接跳过。我在本地测试时项目路径带上中文曾导致识别异常换成英文路径就正常了。这不是必然但值得一试。4.2 技能能被发现但总不被调用这是更常见的情况。Trae 已经知道有这个技能但模型接到用户指令时没有理会。原因大多是 description 和用户问法对不上或者多个技能在互相抢戏。排查思路很简单在对话里点名技能比如用 code-review 技能做 XX。如果点名后能正常调用基本可以断定是描述匹配问题回到 3.4 改描述即可。不用觉得点名很怪Agent 本来就该按你的指示选工具这是完全合理的交互方式。另一个导致不自动调用的原因是 description 太短只有一句话。模型在上下文里看不到足够线索自然跳过。把场景、任务名词、输出物全部塞进 description一半的问题都能解决。4.3 技能执行结果不稳定配置成功、模型也调用了但结果时好时坏。这种情况多半是技能内容本身的问题。内容太长技能正文几千行时模型要在上下文里找具体规则很容易迷失。解法是拆成多个小文件或用清晰的分级标题。缺少示例纯文字描述请输出 JSON 格式远不如给一个三行成功示例直观。依赖外部命令没装技能里写了git、node或某些工具链但你的环境里没有执行到那步就会静默失败。排查时把技能正文从头过一遍凡是出现命令、脚本、外部依赖的地方逐一确认本地是否具备。技能是给模型用的但最终跑在你这台机器上环境不一致就会出错。4.4 多个技能互相打架技能装多后会出现两个技能描述相似、模型不知道该用哪个的情况结果就是随机选一个表现很不稳定。我的做法是维护一张技能清单对照检查每个技能 name 和 description 是否有重复语义。生成单元测试和生成测试代码这两个技能名字不同但本质是一回事模型很难分辨必须合并。另外全局技能和项目级技能同名时项目级优先级通常更高。改了项目级文件但行为没变先查是不是被全局同名技能覆盖了。把常见的坑整理成一个速查表症状优先排查点修复方向技能完全不被识别目录层级、文件名、元信息放到 skills/技能名/skills.md识别了但不自动调用description 与问法不匹配重写 description加入场景和输出物调用后结果不稳内容过长、缺示例、缺依赖拆步骤、补示例、装好依赖多技能行为随机name 和描述语义重复合并同类技能收敛范围5. 让技能真正好用的三个进阶习惯5.1 description 要写成给 AI 看的搜索索引前面反复提过这里单独拿出来说因为它太重要了。description 是技能被触发的核心依据它写得好不好直接决定整个技能体系好不好用。写 description 的公式很简单任务场景 触发信号 输出物。不要只写负责代码审查要写当用户要求检查代码质量、审查提交、排查不规范的实现时输出按严重程度排序的问题清单和修改建议。把用户最可能用到的动词、名词都放进去模型才会在合适的时机想到这个技能。5.2 给技能配一个最小示例一份只有步骤、没有示例的技能就像没有配图的菜谱。AI 能大概理解步骤但输出格式、语气、粒度还是容易跑偏。在技能正文末尾加一个示例小节给出输入、执行过程、最终输出三样东西模型照着示例对齐就稳很多。示例不用长几十行足够但必须完整。我见过效果最好的技能示例都是一头连真实任务、一头连真实产物的模型照着做出来用户几乎不用改。5.3 把技能目录纳入版本管理项目级技能目录建议提交进 Git。好处有两个第一改坏了可以回滚第二团队其他人拉代码后自动获得同一套技能全员的 AI 编程行为就此对齐。如果不想让半成品技能被队友看到就在项目里放成品把草稿留在全局目录。等技能稳定了再搬到项目里提交。这是一个很实用的工作流。另外每次改完技能在对话里实测一次并把结果随手记成一条备注比如改了 description 后触发率提升很多。这类备注积累起来就是你个人的技能调优手册比任何外部教程都值钱。最后分享一点我的实际体会。刚开始玩技能时我恨不得把所有看起来有用的都塞进目录结果模型频繁选错或者被过于冗长的技能拖慢。后来精简到只保留三四个真正高频使用的技能准确率一下就上来了。所以我的建议是先跑通一个再批量迁移。另一个小技巧是遇到技能识别问题时先看 Trae 设置面板里的技能列表而不是盲目改文件。那个列表会直接告诉你 Trae 到底读到了什么能省下大量猜测时间。配置技能不是一锤子买卖它和你写代码一样是一套需要持续迭代的流程。只要按本文的步骤走一遍把第一个技能跑通后面再装新的就会顺手很多。