Skill 是给 AI 写的操作手册,可手册里的每一条步骤,最终都要变成一次真实的模型请求。Claude Code 执行 SKILL.md 时,需要反复读取文件、分析 diff、生成 commit message,每一次动作都在消耗 Token。如果 Key 没配好,技能写得再漂亮也跑不起来。我建议先把 API Key 放在 TaoToken 上统一管理,去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=skill-guide 创建一把 Key,再把 Claude Code 的 Base URL 指到 https://taotoken.net/api,这样后面所有 Skill 验证才有意义。
1. 为什么 SKILL.md 跑不动,先查 Key 通不通
1.1 Skill 是给 AI 的 SOP,SOP 的每一步都要烧 Token
原文用“菜谱”比喻 Skill,很贴切:你把菜谱写下来,下次照着做,AI 每次都能按同样的标准执行。但菜谱不会自己变出菜,还得有炉火和锅。对应到 Claude Code 里,SKILL.md 只是流程说明,真正执行每一步的是模型。比如一个最简单的 git-commit Skill,它要求 AI 先运行git diff --staged,再分析改动类型,然后生成<type>(<scope>): <description>格式的 commit message。这三个动作里,至少有两步需要模型参与理解:判断变更类型、生成描述文本。模型没接好,AI 就卡在第一步。
我自己踩过的坑是:SKILL.md 目录结构全对,CLAUDE.md 里也注册了,Claude Code 却一直说“I don't have permission to run this command”或者干脆忽略 Skill。后来发现是 Base URL 指向了官方默认端点,而账号额度已经用尽,请求根本没发出去。所以先别急着调 SKILL.md 里的措辞,把 Key 通路搞定,再谈技能优化。
1.2 官方额度卡住时,TaoToken 只是把请求送出去
TaoToken 不是替代模型,也不是给模型搬家,而是一个统一 API 兼容通道。Claude Code 原本认api.anthropic.com,现在让它认https://taotoken.net/api,Key 换成在 TaoToken 创建的,请求就会被送到对应模型上。这样你不需要改动 SKILL.md 里的任何步骤,只是把执行 Skill 所需的“燃料管道”换了一条。
要注意,官网落地页和接口地址是两回事。注册、建 Key、看用量去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=skill-guide ;填进 Claude Code 的 Base URL 是 https://taotoken.net/api ,末尾不要加/v1,也不要带任何 UTM 参数。
2. 准备材料:一个能用的 TaoToken Key
2.1 在官网创建 Key
打开 TaoToken ,注册登录后进入控制台,在 API Keys 页面创建一把新的 Key,复制出来临时存好。接下来不管是用环境变量还是settings.json,这把 Key 都会作为ANTHROPIC_AUTH_TOKEN使用。模型 ID 不要凭记忆写,回到模型广场当时列表里复制你要用的那个 ID,例如claude-...开头的完整字符串,以广场为准。
官方额度卡住时,很多人会同时准备多个 Key 来回切。TaoToken 的好处是只维护一把 Key,Claude Code 侧的配置不用反复改,换模型只需要改一个环境变量。
2.2 把 Base URL 和 Key 填进 Claude Code
Claude Code 可以通过环境变量读取接口地址。在终端里先导出:
export ANTHROPIC_BASE_URL=https://taotoken.net/api export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY export ANTHROPIC_MODEL=YOUR_MODEL_ID其中YOUR_API_KEY替换成你在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=skill-guide 创建的那把 Key;YOUR_MODEL_ID替换成从模型广场复制的模型 ID。如果你希望配置持久化,可以写入~/.claude/settings.json:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY", "ANTHROPIC_MODEL": "YOUR_MODEL_ID" } }改完保存,重启 Claude Code,让环境变量生效。这个文件和 Claude Code 本身的配置结构一致,无需另建新文件。
3. 复刻 4.8.1:做一个 git-commit Skill
3.1 创建 Skill 目录和 SKILL.md
先建目录:
mkdir -p .claude/skills/git-commit然后创建.claude/skills/git-commit/SKILL.md:
--- name: git-commit-standard version: 1.0 description: 在提交代码时,自动生成符合 Conventional Commits 规范的 commit message trigger: ["提交代码", "git commit", "生成commit"] --- # Git 提交规范化 ## 执行步骤 1. 运行 `git diff --staged` 查看暂存区的修改 2. 分析修改内容,判断变更类型: - feat: 新功能 - fix: 修复Bug - refactor: 重构(不改变功能) - style: 样式修改 - docs: 文档更新 - test: 测试相关 - chore: 构建/工具变更 3. 生成 commit message,格式:`<type>(<scope>): <description>` 4. 显示给用户确认后执行 `git commit` ## 示例 修改了 `src/components/Header.tsx` 中的导航样式 生成的 message: style(Header): 优化导航栏的响应式布局注意 SKILL.md 里的git diff --staged和git commit是由 Claude Code 在本地执行的,不是由 TaoToken 代跑。TaoToken 只负责让每一次模型请求正常返回。
3.2 在 CLAUDE.md 里注册 Skill
在项目根目录的CLAUDE.md中添加:
## 项目 Skills - `.claude/skills/git-commit/` — Git 提交规范化 执行相关任务时请先阅读对应 SKILL.md。这样 Claude Code 启动后会读取CLAUDE.md,知道项目里有哪些技能。这一步不消耗模型请求,但后续用户触发相关指令时,Claude Code 会加载 SKILL.md 内容,再逐条执行,那时就会产生 Token 消耗。
4. 验证 Skill:让 Claude Code 按流程生成 commit message
4.1 触发 git-commit Skill
随便修改项目里的一个文件,比如加一行注释,然后执行:
git add .接着在 Claude Code 里输入:
请用 git-commit Skill 帮我生成 commit message 并提交如果 Key 通路正常,Claude Code 会先读取 SKILL.md,然后运行git diff --staged,分析暂存区改动,生成类似style(Header): 优化导航栏的响应式布局的提交信息,并显示在确认框里。等你确认后,它才执行git commit。这个确认框的出现,说明两件事:第一,SKILL.md 被成功加载了;第二,模型能够正常响应,也就是 TaoToken 这一侧的 API 调用是通的。
如果一直没反应,或者报错说请求失败,先别质疑 Skill 写错。回到终端手动跑一下基础连通性:
curl https://taotoken.net/api/v1/messages \ -H "x-api-key: YOUR_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"YOUR_MODEL_ID","max_tokens":10,"messages":[{"role":"user","content":"ping"}]}'注意这里 URL 写的是https://taotoken.net/api/v1/messages,但 Claude Code 里填的 Base URL 仍然是https://taotoken.net/api,不需要手动拼v1,Claude Code 自己会补。如果 curl 能返回正常 JSON,说明 Key 和模型 ID 都没问题。
4.2 回控制台看这一次调用是否记上账
Skill 跑通后,建议立刻去 TaoToken 控制台看用量。路径是打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=skill-guide ,进入控制台的用量页面,看刚才这次 git-commit 对话是否产生了对应记录,包括请求次数、Token 消耗和模型名称。这一步很重要:很多 Skill 看起来“没生效”,其实是请求根本没发到 TaoToken,控制台上一条记录都没有;反过来,如果控制台有记录,但 SKILL.md 没执行,问题就出在 Claude Code 的文件加载环节,和 API 无关。
等到 Skill 真正稳定了,再考虑用 Git 管理它:
git add .claude/skills/git-commit/ git commit -m "feat(skills): 新增 Git 提交规范化 Skill"团队其他人 pull 代码后,也能用同一个 Skill,配合统一的 TaoToken Key,协作时不会出现一个人能跑、另一个人跑不了的情况。
5. 排障:SKILL.md 没生效时先看这些
5.1 Skill 没加载
如果 Claude Code 完全不理会 SKILL.md,先检查.claude/skills/git-commit/目录是否存在,以及CLAUDE.md里的引用路径是否写对。另一个常见问题是项目根目录不对:Claude Code 只读取当前工作目录下的.claude/skills,你把 Skill 建在了~/.claude/skills而项目里没有,就不会触发。
5.2 401 / 404 / 模型不存在
这三个报错各有对应:
- 401 Unauthorized:
ANTHROPIC_AUTH_TOKEN没填对,或者 Key 已经失效。回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=skill-guide 重新创建一把,再替换YOUR_API_KEY。 - 404 Not Found:Base URL 填错,或者多加了
/v1。Claude Code 的环境变量里只写https://taotoken.net/api,不要写https://taotoken.net/api/v1。 - 模型不存在:
ANTHROPIC_MODEL写了一个模型广场里没有的 ID。去模型广场复制准确的字符串,不要凭记忆补。
5.3 本地执行还是模型执行要分清
SKILL.md 里写的git diff、git commit都是 Claude Code 在本地沙箱里执行的命令,TaoToken 不参与这部分。TaoToken 只负责把模型请求转发给对应模型。所以如果你的 Skill 里包含需要本地环境的动作,比如读取某个文件、运行某个脚本,请确认你的电脑上有对应权限和依赖,而不是去 TaokToken 控制台找答案。
配置好 Key 后,如果还想先试试模型对话是否正常,可以打开 TaoToken 模型对话 发一条消息;要长期写代码,可以看看 Coding Plan 里的套餐是否够用。Key 始终在 控制台 API Keys 创建,Claude Code 的环境变量对照表在 接入文档 里有完整说明。先把最后这个 git-commit Skill 跑通,你才会真正体会到:给 AI 写操作手册这件事,难点不在格式,而在每一步都有模型响应。