资讯动态

Trae CN 完整版 Skill 脚手架:从 SKILL.md 到 scripts/references 全子目录一次配齐 TaoToken

发布时间:2026/10/15 9:51:35 来源:尧图企业网站定制
1. 为什么你的 Trae CN Skill 总是「触发一次就废」很多人第一次在 Trae CN 里写 Skill都是把规则一股脑塞进一个SKILL.md跑通一次觉得挺爽过两天换个项目再触发要么不命中要么命中了却输出格式乱飘。我试过最典型的一次同一个「接口字段校验」技能在 A 项目里输出规规矩矩在 B 项目里直接把整段代码贴出来连注释都没了。排查半天才发现问题不在模型而在脚手架——目录结构没搭对scripts、references、assets三个可选目录一个都没建AI 每次只能靠SKILL.md里的自然语言硬猜猜歪是必然的。Trae CN 的 Skill 机制本质上是「懒加载 语义匹配」启动时只读SKILL.md头部的name、description、globs这几个元数据字段做触发判断命中之后才加载完整规则只有当规则里明确要求读脚本、读规范、套模板时才会去加载scripts/、references/、assets/里的内容。这个设计非常省 Token但也意味着——如果你不把这三个目录建出来AI 想「按需加载」都没有东西可加载只能退化成纯文本推理。所以这篇要解决的不是「怎么写一段提示词」而是怎么在 Trae CN 里搭一套完整、可直接复制、可长期复用的 Skill 工程骨架。适合谁适合已经在 Trae CN 里写过一两个 Skill、但输出不稳定、想把它工程化的开发者也适合团队里想把「代码规范检查」「接口文档生成」「组件模板输出」这类高频动作沉淀成可复用技能的人。核心检索词就三个Trae CN、Skill 脚手架、SKILL.md 目录结构。下面从目录模板开始一路配到 TaoToken 通道下的连通性验证。2. TaoToken 前置统一 Key 与 API 通道怎么准备在搭脚手架之前先把「通道」这件事说清楚。Trae CN 本身负责 Skill 的加载与触发但 Skill 里如果要调用模型能力比如让脚本处理完数据后再走一次语义总结就需要一个稳定的 API 入口。我现在的做法是统一走 TaoToken 的 API 通道好处是 Key 和 Base URL 只维护一份Skill 脚本、Coding Plan、控制台调试全都复用不用每个项目单独配。你需要准备三样东西我把它叫「三件套」Base URL、API Key、Model ID。这三件套在任何接入场景里都是绑定的缺一个都跑不通。Base URL 用https://taotoken.net/api注意这个地址不带任何查询参数是纯 API 根路径。API Key 在控制台的 API Keys 页面创建创建后只显示一次复制下来存到环境变量里别硬编码进SKILL.md或脚本。Model ID 按你实际要用的模型填比如做代码类任务就选对应的编码模型做通用文本就选通用模型。具体操作路径是这样的先打开官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注册登录然后进控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content在 API Keys 页面点创建拿到 Key。如果你后面要跑长期编码或 Agent 类任务可以顺手看下 Coding Plan 页面https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content它和按量调用是两条线按需选。环境变量建议这样设Linux/macOS 写进~/.zshrc或~/.bashrcWindows 用系统环境变量面板export TAOTOKEN_BASE_URLhttps://taotoken.net/api export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_MODEL_ID你的模型ID设完执行source ~/.zshrc让它生效然后echo $TAOTOKEN_API_KEY确认能打印出来。这一步看着简单但后面 Skill 脚本里读环境变量全靠它先做扎实。注意别把 Key 写进任何会提交到 Git 的文件.trae/skills/目录如果纳入版本管理务必在.gitignore里排除掉含 Key 的本地配置文件。3. 可复制配置完整 Skill 目录模板与三件套落地这一节是全文的核心直接给你一套可以整段复制的目录结构和文件内容。放置位置推荐项目级路径是项目根目录下的.trae/skills/你的技能名/。技能名必须是小写加中划线不能有中文、不能有大写这是 Trae CN 的硬性规则。完整目录长这样.trae/skills/your-skill-name/ ├── SKILL.md # 核心必选Trae CN 唯一识别主文件 ├── scripts/ # 可选可执行脚本目录 │ └── tool_helper.py ├── references/ # 可选参考规范、标准文档 │ └── rule_spec.md └── assets/ # 可选模板、固定输出格式 └── output_template.md三个可选目录按需启用不用可以直接删掉整个文件夹不影响技能运行。但文件夹名固定为scripts、references、assets不能改名改了 AI 就找不到。先写SKILL.md这是唯一被 Trae CN 识别的主文件头部元数据用 YAML front matter--- name: your-skill-name description: 一句话精准概括技能核心能力用于 AI 语义匹配触发 globs: [**/*.py, **/*.js, **/*.ts, **/*.vue] version: 1.0.0 author: custom --- # 技能中文名称 ## 适用场景 When - 明确列出本技能的触发场景 - 精准、具体、不模糊 ## 禁止场景 Not When - 不属于本技能处理的场景 - 一次性临时调试、无规范需求的任务不处理 ## 前置依赖 Precondition - 如需调用 scripts 脚本确保脚本文件存在可执行 - 如需参考规范优先读取 references 目录规范 - 如需固定格式优先套用 assets 模板 ## 执行步骤 Steps 1. 读取用户需求与当前项目文件上下文 2. 按需加载 references 参考规范约束执行逻辑 3. 按需调用 scripts 工具脚本进行数据处理、解析、校验 4. 按照标准逻辑完成核心任务处理 5. 套用 assets 输出模板格式化最终结果 6. 输出结果、给出优化建议、标注注意事项 ## 输出规范 Output 严格按照固定模板输出结构固定、格式统一。 ## 特殊规则 Rule 1. 本技能为懒加载触发仅语义匹配命中后加载全部规则 2. 优先使用目录内脚本与模板保证输出统一 3. 所有操作必须符合当前项目代码规范 4. 禁止输出模糊、无落地性的内容description这一行是触发命中的关键写的时候要像给搜索引擎写摘要把「什么场景、处理什么、产出什么」压进一句话。globs决定这个技能在哪些文件类型上被激活按你的实际场景收窄别一股脑写**/*否则到处误触发。接着是scripts/tool_helper.py一个通用数据处理脚本AI 可以按需调用#!/usr/bin/env python3 # Trae CN Skill 辅助工具脚本存放于 scripts/ 目录 import sys import json import os def skill_data_handler(input_data: str) - dict: 通用数据处理工具可按技能场景自定义 解析、校验、格式化、统计 result { success: True, input_len: len(input_data), process_msg: 脚本处理完成, data: input_data.strip(), base_url: os.environ.get(TAOTOKEN_BASE_URL, ), } return result if __name__ __main__: stdin_data sys.stdin.read() res skill_data_handler(stdin_data) print(json.dumps(res, ensure_asciiFalse, indent2))注意脚本里读的是环境变量TAOTOKEN_BASE_URL而不是把地址写死。这样三件套只维护一份脚本、Skill、其他工具全复用。然后是references/rule_spec.md放执行约束标准# 技能执行参考规范 ## 概述 本文档为当前 Skill 的执行约束标准AI 执行时必须严格遵守。 ## 代码规范约束 1. 代码必须具备可读性、可维护性 2. 必须补充必要注释复杂逻辑增加说明 3. 优先使用项目已有工具类、公共方法 ## 输出约束 1. 输出结构固定不可随意删减模块 2. 问题必须精准定位给出具体行号、原因、方案 3. 修复代码可直接复制运行无报错 ## 执行约束 1. 禁止过度修改原有业务逻辑 2. 优先兼容原有代码风格 3. 所有优化必须正向提升代码质量最后是assets/output_template.md固定输出模板# 技能执行结果模板 ## 执行状态 【成功/待优化/异常】 ## 核心总结 此处填写本次任务的核心结论、关键问题、核心成果 ## 详细处理内容 ### 问题/内容说明 ### 解决方案/成果展示 ## 后续建议 1. 2. 3.到这里一套完整脚手架就落地了。目录优先级记住四句话规则优先读SKILL.md工具优先读scripts约束优先读references输出优先套assets。懒加载机制下只有命中触发后才会逐层加载Token 消耗非常克制。4. 验证请求从脚本自测到 Skill 触发全链路脚手架搭完不能只看文件在不在得跑一遍验证。分三层脚本层、通道层、Skill 层。脚本层先单独测tool_helper.py能不能跑通。在项目根目录执行echo 测试数据订单号 A1001状态待校验 | python3 .trae/skills/your-skill-name/scripts/tool_helper.py预期输出是一段 JSON包含success: true、input_len、process_msg和data字段base_url应该能读到https://taotoken.net/api。如果base_url是空的说明环境变量没生效回到第 2 节重新source一次。通道层验证 API 是否通。用 curl 打一次模型对话接口确认三件套正确curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: $TAOTOKEN_MODEL_ID, messages: [{role: user, content: 只回复两个字连通}] }返回体里choices[0].message.content应该是「连通」。这一步通了说明 Base URL、Key、Model ID 三件套没问题。你也可以直接在模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content手动发一条消息对照页面能回、curl 能回通道就稳了。Skill 层验证触发。在 Trae CN 里打开一个符合globs的文件比如一个.py文件输入一段符合「适用场景」描述的需求观察技能是否被命中。命中后看输出结构是不是严格按assets/output_template.md的模板走——有「执行状态」「核心总结」「详细处理内容」「后续建议」四个块。如果输出结构散了多半是SKILL.md里「输出规范」那段没写死模板路径补一句「严格套用 assets/output_template.md」即可。三层都过说明脚手架和通道全链路打通。这时候你再去改references/rule_spec.md里的约束AI 下次执行就会自动带上新规则不用动SKILL.md一个字这就是目录分离的价值。5. 本篇常见错排查401、local proxy failed 与 choices 读取失败搭 Skill 脚手架时踩的坑八成集中在通道和路径两类。下面按真实报错对照排查。报错一401 Unauthorized。返回体里通常是{error: {message: Invalid API key}}。原因有三种Key 复制时带了空格或换行环境变量没source生效Key 被撤销了。排查顺序是先echo $TAOTOKEN_API_KEY看值对不对再确认请求头是Authorization: Bearer sk-xxx格式中间一个空格都不能多。如果都对还是 401去控制台 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content确认 Key 状态是否有效。报错二local proxy failed 或连接被拒。这个报错通常出现在你本地配了某个转发工具、但工具没启动或端口不对。处理方式是检查本地是否有残留的代理配置把HTTP_PROXY、HTTPS_PROXY这类环境变量清掉直接用https://taotoken.net/api访问。命令行走不通时先在浏览器或模型对话页面确认服务本身可达排除是本地网络配置问题。报错三reading choices 报 undefined。这是解析返回体时最常见的错误代码里写了response.choices[0]但choices是undefined。根因是返回体根本不是标准结构可能是 401、429 或 500 的错误体被当成正常响应解析了。正确做法是先判断 HTTP 状态码再判断返回体里有没有choices字段import os, json, urllib.request def call_model(prompt: str) - str: url os.environ[TAOTOKEN_BASE_URL] /v1/chat/completions payload json.dumps({ model: os.environ[TAOTOKEN_MODEL_ID], messages: [{role: user, content: prompt}] }).encode() req urllib.request.Request(url, datapayload, headers{ Authorization: Bearer os.environ[TAOTOKEN_API_KEY], Content-Type: application/json }) with urllib.request.urlopen(req) as resp: body json.loads(resp.read()) if choices not in body: raise RuntimeError(返回体异常: json.dumps(body, ensure_asciiFalse)) return body[choices][0][message][content]报错四OAuth 相关报错。如果你用的是 Claude Code 类工具接入报 OAuth 失败通常是认证方式选错了。这类工具要走 API Key 模式而不是 OAuth 登录模式。配置时把 Base URL 填https://taotoken.net/apiKey 填TAOTOKEN_API_KEYModel ID 填对应模型三件套齐全就不会再走 OAuth 流程。Claude Code 的接入细节可以对照文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content里的说明逐项核对。报错五Skill 不触发。文件都在但 Trae CN 就是不命中先查name是不是小写中划线、description是不是太泛、globs是不是没覆盖当前文件类型。这三个字段任何一个不对语义匹配就命中不了。改完SKILL.md后重启一下 Trae CN 让它重新加载元数据。6. 把脚手架用起来从模板到长期复用的下一步一套脚手架搭好只是起点真正省时间的是把它变成团队资产。我的做法是把.trae/skills/下每个技能目录当成一个独立小工程SKILL.md只放触发和流程具体规则全下沉到references/输出格式全锁在assets/需要跑数据就走scripts/。这样改规则不动主文件换模板不动脚本职责清晰。如果你要跑的是长期编码或 Agent 类任务建议把通道切到 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content它和按量调用分开管理适合高频、持续的场景。日常调试和验证模型能力用模型对话页面https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content最快。Key 的创建和管理都在 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content接入细节查文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。最后留一个实用习惯每建一个新 Skill先复制这套目录模板改name和description跑一遍第 4 节的三层验证确认触发和输出都正常再往里填业务逻辑。别一上来就写复杂规则脚手架稳了规则怎么加都不会乱。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑