☰
Skill 创建与使用最佳实践:Trae 中 SKILL.md 与 npx 配置 TaoToken 实战
2026/9/29 20:09:39 网站建设 项目流程

1. 为什么要在 Trae 里折腾 Skill 和统一 Key

如果你最近在 Trae 里写代码,大概率遇到过这种场景:每次开新会话,都要把同一套项目规范、输出格式、检查清单重新贴一遍;换个项目,之前调好的提示词又得复制过去改路径。提示词越写越长,模型反而开始漏掉中间几条要求。Agent Skills 就是来解决这个问题的——它把「一次性提示词」变成可复用、可版本管理、可跨项目共享的能力包,核心文件就是SKILL.md。

Trae 完整兼容 Agent Skills 开放规范,支持项目级.trae/skills/<skill-name>/和用户级~/.trae/skills/<skill-name>/两种存放位置。你只要把符合规范的文件夹丢进去,Trae 启动时先读元数据(名称+描述),任务匹配时才加载完整指令,这就是渐进式披露,能明显压低上下文消耗。

但光有 Skill 还不够。Skill 里如果涉及调用模型、跑脚本、做批量处理,就需要一个稳定的 API 通道。这篇就按「从零建 Skill → npx 初始化 → 接入 TaoToken 统一 Key → 验证 Trae 正确加载」的顺序走一遍,所有命令和配置都能直接复制。TaoToken 在这里扮演的是统一 Key/API 通道的角色,官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,后面配置里会反复用到。

适合谁看:已经在用 Trae、想让 AI 稳定执行固定工作流的开发者;手里有多个项目、想统一模型调用入口的人;以及想把自己写的 Skill 分享给团队的人。下面从目录结构开始,一步步来。

2. 前置准备:TaoToken Key 与 Trae 环境

2.1 拿到统一 Key

先到 TaoToken 控制台创建 API Key。入口在 https://taotoken.net/api-keys ,登录后新建一个 Key,复制保存。这个 Key 后面会写进环境变量,不要直接硬编码进SKILL.md或提交到 Git。

注意:Key 只显示一次,建议先存到本地密码管理器,再写入项目.env或系统环境变量。

2.2 确认 Trae 版本与 Node 环境

Trae 需要较新版本才完整支持 Skill 目录扫描,建议更新到当前稳定版。npx 相关命令依赖 Node.js,先确认版本:

node -v npm -v npx -v

Node 建议 18 以上。如果npx不可用,说明 npm 没装好,先补上。接着确认 Trae 的 Skill 目录能被识别:项目级放在项目根目录.trae/skills/,用户级放在~/.trae/skills/。两者区别很简单——项目级只对当前仓库生效,用户级对所有项目生效。团队协作的规范类 Skill 放项目级,个人常用工具放用户级。

2.3 设置环境变量

把 Key 写进环境变量,Skill 里的脚本通过process.env读取:

# macOS / Linux,写入 ~/.zshrc 或 ~/.bashrc export TAOTOKEN_API_KEY="你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"
# Windows PowerShell $env:TAOTOKEN_API_KEY="你的Key" $env:TAOTOKEN_BASE_URL="https://taotoken.net/api"

设置完新开一个终端,用echo $TAOTOKEN_API_KEY(Windows 用echo $env:TAOTOKEN_API_KEY)确认能打印出来。这一步没做,后面脚本调用会直接 401。

3. 从零创建 SKILL.md 骨架

3.1 标准目录结构

一个 Skill 就是一个文件夹,文件夹名即技能名。最小可用版本只需要一个SKILL.md,复杂任务再加scripts/、references/、assets/:

.trae/skills/code-reviewer/ ├── SKILL.md # 必需:YAML 元数据 + Markdown 指令 ├── scripts/ # 可选:可执行脚本 │ └── call_model.py ├── references/ # 可选:按需加载的参考文档 │ └── checklist.md └── assets/ # 可选:模板等资源 └── report_template.md

3.2 SKILL.md 模板(可直接复制)

SKILL.md必须包含 YAML frontmatter,name要和父文件夹名一致,description要写清「做什么 + 何时用」,这是 Trae 匹配任务的关键依据:

--- name: code-reviewer description: 对指定代码文件做结构化审查,输出问题清单、风险等级和修改建议。当用户要求审查代码、检查规范或排查潜在缺陷时使用。 license: MIT metadata: version: "1.0.0" author: "your-team" --- # 角色 你是一位资深代码审查专家,关注可读性、边界条件和潜在缺陷。 # 工作流程 1. 读取用户指定的文件或代码片段 2. 按 `references/checklist.md` 中的检查项逐条核对 3. 对每个问题标注风险等级(高/中/低) 4. 按下方模板输出结果 # 输出模板 ```markdown # 代码审查报告 ## 基本信息 - 文件: - 审查时间: ## 问题清单 | 位置 | 问题 | 风险等级 | 建议 | |------|------|----------|------| ## 总结

注意事项

  • 只报告有依据的问题,不臆测
  • 涉及模型调用时,统一走环境变量中的 API 通道
正文建议控制在 500 行以内,超出的详细文档移到 `references/`,靠渐进式披露按需加载。指令用祈使句,说清「为什么」而不只是「做什么」。 ### 3.3 用 npx 初始化项目 如果不想手动建目录,可以用 npx 快速拉起结构。先建一个初始化脚本,或者直接用 shell 一条命令: ```bash mkdir -p .trae/skills/code-reviewer/{scripts,references,assets} touch .trae/skills/code-reviewer/SKILL.md

如果你在维护一个可发布的 Skill 包,用 npm 初始化更规范:

mkdir my-skill && cd my-skill npm init -y mkdir -p scripts references assets

package.json里可以加一个bin字段,方便别人用npx调用你的脚本。这一步不是必须的,但团队共享时很省事。

4. 可复制配置:settings.json 与脚本接入 TaoToken

4.1 settings.json 配置片段

Trae 的项目配置放在.trae/settings.json。把模型通道指向 TaoToken,统一走一个入口:

{ "models": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKeyEnv": "TAOTOKEN_API_KEY", "defaultModel": "claude-sonnet-4-5" }, "skills": { "enabled": true, "scanPaths": [".trae/skills", "~/.trae/skills"] } }

apiKeyEnv指向环境变量名而不是明文 Key,这样配置可以安全提交。scanPaths明确告诉 Trae 去哪扫 Skill,避免放错目录不生效。

4.2 Skill 内脚本调用示例

在scripts/call_model.py里通过统一通道请求,Key 从环境变量读:

import os import requests API_KEY = os.environ["TAOTOKEN_API_KEY"] BASE_URL = os.environ.get("TAOTOKEN_BASE_URL", "https://taotoken.net/api") def chat(prompt: str, model: str = "claude-sonnet-4-5") -> str: resp = requests.post( f"{BASE_URL}/v1/chat/completions", headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json", }, json={ "model": model, "messages": [{"role": "user", "content": prompt}], }, timeout=60, ) resp.raise_for_status() return resp.json()["choices"][0]["message"]["content"] if __name__ == "__main__": print(chat("用一句话说明什么是 Agent Skill"))

跑之前先装依赖:pip install requests。脚本里不要写死 Key,也不要打印 Key。

4.3 在 SKILL.md 里引用脚本

在SKILL.md正文里说明脚本用途和调用方式,Trae 匹配到任务时会按需执行:

# 脚本调用 如需批量处理,调用 `scripts/call_model.py`,该脚本通过统一 API 通道请求模型, Key 从环境变量 `TAOTOKEN_API_KEY` 读取,Base URL 为 `https://taotoken.net/api`。

这样 Skill 的指令层和执行层分离,指令保持简洁,重活交给脚本。

5. 验证请求与确认 Skill 被 Trae 加载

5.1 先验证 API 通道

在写复杂逻辑前,先用一条 curl 确认通道通:

curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "回复 OK"}] }'

返回里能看到choices字段和内容,说明 Key 和地址都对。如果返回 401,检查环境变量是否在当前终端生效;返回 404,检查baseUrl有没有多写或少写/v1。

5.2 验证 Skill 被加载

打开 Trae 设置里的「规则和技能」面板,查看技能列表。正常情况下code-reviewer会出现在列表里,名称和描述来自SKILL.md的 frontmatter。如果没出现,按顺序排查:

第一,确认目录层级是.trae/skills/code-reviewer/SKILL.md,不是.trae/skills/SKILL.md。第二,确认name字段和文件夹名完全一致,大小写也要对。第三,确认 frontmatter 的---是文件第一行,前面不能有空行或注释。第四,重启 Trae 让扫描重新执行。

5.3 触发一次真实任务

在对话里输入「用 code-reviewer 审查 scripts/call_model.py」,Trae 会匹配 description 加载完整指令。观察输出是否符合SKILL.md里定义的模板格式。如果格式不对,多半是正文指令写得不够明确,回去把输出模板再收紧。

6. 本篇常见错排查

Skill 不生效,列表里看不到。九成是路径问题。项目级必须是<项目根>/.trae/skills/<name>/SKILL.md,用户级是~/.trae/skills/<name>/SKILL.md。放成.trae/skill/(少个 s)或直接放.trae/下都不会被扫到。

description 写了但匹配不到。description 要同时包含「做什么」和「何时用」,比如「审查代码……当用户要求审查代码时使用」。只写「代码审查工具」这种名词短语,匹配率会低很多。

脚本报 401。环境变量没生效。检查是不是在设置后没重开终端,或者 Trae 是从图形界面启动、没继承 shell 的环境变量。这种情况可以把变量写进项目.env,脚本里用python-dotenv加载。

npx 命令卡住或报网络错。先确认npx -v能正常输出。如果公司网络有限制,检查 npm registry 配置,必要时换成可用镜像源。这一步和 Skill 本身无关,是 Node 环境问题。

改了 SKILL.md 但行为没变。Trae 有缓存,改完重启一次。另外确认改的是被加载的那个 Skill——项目级和用户级同名时,项目级优先,别改错文件。

模型返回格式和模板对不上。在SKILL.md里把输出模板用代码块包起来,并加一句「严格按此模板输出,不要增删章节」。指令越具体,遵循度越高。

7. 继续往下走:把 Skill 用成团队资产

走到这里,你已经有了一个能被 Trae 正确加载的 Skill,也有了统一的 API 通道。接下来可以做的几件事:把团队规范写成项目级 Skill 提交到仓库,新人拉下来就能用;把个人常用工具放用户级,跨项目复用;需要长期跑编码任务或 Agent 工作流时,用 Coding Plan 把调用额度管起来,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

想直接体验模型对话效果,可以到 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,Key 管理在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。控制台总入口是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。

最后留一个我踩过的坑:Skill 的name字段千万别用大写或下划线,规范只允许小写字母、数字和连字符,Trae 对不合规的 name 会直接跳过不加载,而且不报错,很容易以为是路径问题查半天。把这条守住,剩下的就是不断把工作流沉淀成 SKILL.md 的过程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询