
1. description 不触发先别把锅扣在 TaoToken 通道上把 SKILL.md 的 frontmatter 写完正文里也提醒了 Claude“用户要创建新 Skill 时用 skill-creator”结果 skill-creator 还是不出现description 不触发。很多人第一反应是模型通道被限制于是问skill-creator 走 TaoToken 通道行不行结论先放这里TaoToken 可以给 Claude 实例提供 Key 和 Base URL让请求走兼容通道但它不参与 SKILL.md 的触发判断。先去 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 创建 API Key把 Claude Code 的ANTHROPIC_BASE_URL填成 https://taotoken.net/api确认模型能正常回话然后回头检查 YAML frontmatter 里的name和description。触发失败多半不在通道而在元数据写得像说明书不像触发条件。1.1 skill-creator 为什么会被 Claude 忽略Claude 在选择是否调用一个 Skill 时先看到的不是 SKILL.md 正文而是可用 Skill 的清单。这个清单里的关键字段就是 YAML frontmatter 里的name和description。name决定它是谁description决定“什么时候该用它”。正文更像打开 Skill 之后的说明书只有触发发生以后才会被加载。于是就会出现一种很别扭的情况正文第一段写得清清楚楚“当用户要创建新 Skill 时使用我”可 Claude 根本没读到这一段因为它在选择阶段只看了 frontmatter。这也是排障时最容易走偏的地方。看到 skill-creator 不出现就去改提示词、换模型、加 Base URL甚至怀疑兼容通道把 Skill 能力削掉了。实际上通道只负责把请求送到模型侧Skill 是否触发取决于模型侧看到的 Skill 描述有没有命中当前意图。TaoToken 只提供 Key 和 Base URL不参与 SKILL.md 的触发判断。换句话说Base URL 写对只是让请求能出去description 写对才决定 skill-creator 会不会被选中。1.2 这不像训练 RNN没有 loss 曲线给你调深度学习里的 RNN 处理序列任务时靠隐藏状态把前文信息往后传训练时还有 loss、梯度、学习率这些旋钮。Skill 触发不是这套机制。你不会把 SKILL.md 正文喂进去训练几百轮也不会因为多写几段“何时使用”就让模型把触发条件记进参数。它更像一个工具检索过程Claude 拿到当前用户意图再去比对可用 Skill 的name和description看哪个工具最匹配。所以 description 太泛时结果不是“效果差一点”而是根本不进入候选。比如只写“帮助创建 Skill”“用于 SKILL.md 相关任务”对 Claude 来说信息量太低。用户说“帮我写一个新的 SKILL.md”它可能直接当普通文件生成任务处理用户说“skill-creator 为什么不触发”它甚至可能开始解释 Skill 机制而不是调用 skill-creator。把“何时使用”写进正文等于把标签藏在货架后面检索时看不到。1.3 排障顺序先通道后 frontmatter排障要分两层请求层和触发层。请求层看 Key、Base URL、模型 ID表现为 401、404、模型不存在、请求超时。触发层看name、description、Skill 目录名、重启状态表现为模型正常回复但 skill-creator 没被调用。两层混在一起查最容易把“description 不触发”误判成“通道不支持 Skill”。比较稳的顺序是先用同一把 Key 配通一次普通对话确认 Claude Code 能走 TaoToken 通道再发一条明确要求“创建新 Skill”的请求观察是否触发 skill-creator如果模型正常回话但 Skill 不动就去改 frontmatter。下面按这个顺序拆开写配置文件和 SKILL.md 示例都可以直接复制后改占位符。2. 给 Claude Code 接上 TaoTokensettings.json 里只填 Base URL2.1 创建 Key 与确认模型 ID打开 TaoToken 注册并创建 API Key。Key 不要写进文章、截图或仓库后面统一用YOUR_API_KEY占位。模型 ID 不要凭记忆填也不要把网上看到的日期后缀直接抄进来以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 模型广场当时列表为准。你只需要先拿到两样东西一把YOUR_API_KEY一个当前可用的YOUR_MODEL_ID。这一步和 skill-creator 触发没有直接关系但它把请求层变量固定下来。如果 Key 或模型 ID 错了你看到的会是请求报错不是 Skill 不触发。很多“skill-creator 走 TaoToken 通道行不行”的疑问其实混进了模型 ID 不存在的问题。先把模型对话跑通后面判断 frontmatter 才有意义。2.2 ~/.claude/settings.json 的 env 示例Claude Code 可以读~/.claude/settings.json里的env。Base URL 填 https://taotoken.net/api末尾不要加/v1。ANTHROPIC_AUTH_TOKEN用你刚创建的 KeyANTHROPIC_MODEL填模型广场里的 ID。配置保存后新开一个 Claude Code 会话避免旧环境变量残留。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_MODEL_ID } }这里要特别注意ANTHROPIC_BASE_URL只写 https://taotoken.net/api。不要写成https://taotoken.net/api/v1也不要把官网落地页地址填进工具。官网地址用于注册、创建 Key、看模型广场和用量工具里的 Base URL 用接口地址。两者混用是后面 404 的常见来源。2.3 环境变量临时验证如果你不想先改配置文件也可以在终端里临时导出环境变量再启动 Claude Code。这个方式适合排查“到底是配置没生效还是 Skill 不触发”。关闭终端后变量消失不会污染长期配置。注意 Key 仍然用占位符替换不要把真实 Key 贴到公开脚本里。export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELYOUR_MODEL_ID导出后先发一句普通问候确认模型能回。能回说明请求层基本通了。如果这里就报 401先回 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 检查 Key 是否复制完整、是否已被删除或超额。如果报模型不存在回模型广场核对YOUR_MODEL_ID。只有普通对话稳定后才进入 SKILL.md 的触发排查。3. 回到 SKILL.mdname 和 description 才是 skill-creator 的开关3.1 frontmatter 最小可触发结构SKILL.md 的 YAML frontmatter 必须放在文件最顶部用三条短横线包起来。name要和技能目录名保持一致description写“何时使用”而不是写“这个 Skill 是什么”。下面这个示例用于说明结构实际目录名、Skill 名称按你的工程改。重点是让 description 包含用户可能说出的触发语句。--- name: skill-creator description: 当用户要求创建、修改、修复或规范化 Claude Skill 的 SKILL.md 时使用包括从零生成新 Skill、补全 YAML frontmatter、把“何时使用”写进 description、检查 name 与目录名是否一致。适用于用户说“创建一个新 Skill”“帮我写 SKILL.md”“description 不触发”“skill-creator 为什么不生效”等场景。 ---如果name和目录名不一致某些加载流程会直接跳过这个 Skill。你可能在对话里看不到任何报错只觉得“它就是不出现在工具列表里”。排障时先确认目录名、文件名和 frontmatter 的name是否一致。description 里要有动作词和触发短语不要只写“Skill 创建工具”这种名词短语。3.2 把“何时使用”写进 description 的公式一个够用的 description 可以按“动作 触发语句 边界”来写。动作是“创建、修改、修复、校验”触发语句是用户可能说的原话边界是“不要用于普通代码生成、不要用于安装依赖”。这样 Claude 在匹配意图时更容易把“创建一个新 Skill”这类请求分给 skill-creator而不是当成普通文件写入任务。举几个太泛和可用的对照。太泛“帮助用户处理 Skill。”可用“当用户要求创建新 Skill、编辑 SKILL.md、补全 frontmatter或反馈 description 不触发时使用。”太泛“用于 Claude 技能相关任务。”可用“适用于用户说‘写一个 SKILL.md’‘这个 skill 为什么不触发’‘帮我把何时使用写进 description’等场景。”差异不在字数而在有没有把“什么时候用”说清楚。3.3 正文只做说明别藏触发条件SKILL.md 正文可以写步骤、示例、注意事项但不要把唯一的触发条件只放在正文里。因为触发选择发生在正文加载之前。你可以在正文里再次提醒但 frontmatter 的 description 必须自包含。常见错误是正文第一段写“当用户要创建新 Skill 时使用”frontmatter 只写“skill-creator 的说明”结果 Claude 在选择阶段看不到触发语句。还有一个细节description 不要写成泛泛的能力介绍比如“擅长创建各种 Skill熟悉 Claude 技能体系”。这类句子对人友好对检索不友好。把用户会说的短句塞进去比如“创建一个新 Skill”“写 SKILL.md”“description 不触发”“skill-creator 不生效”。这不是关键词堆砌而是让 description 更像触发规则。4. 实操用一次“创建新 Skill”请求验证是否触发4.1 准备测试提示词配置好 Claude Code 后新开一个会话发一条明确的测试请求“请创建一个新 Skill用来检查 SQL 文件里缺少 WHERE 的 UPDATE 或 DELETE输出检查清单即可不要连接数据库也不要执行 SQL。” 这条请求包含“创建新 Skill”这个触发短语同时不会让 AI 去碰生产库。Claude 只应该生成或解释检查清单执行由你在本地完成。如果 skill-creator 正常触发你会在响应里看到它按 Skill 创建流程组织内容比如询问 Skill 名称、生成目录结构、补全 frontmatter、给出 SKILL.md 草稿。如果没有触发模型可能直接给出一段通用文件内容或者只回答“可以这样写”不会进入 Skill 创建流程。两者差异明显不需要猜。4.2 观察触发与不触发的差异触发成功的信号不是“回答更长”而是回答里出现 Skill 的结构意识name、description、目录名、SKILL.md 路径、frontmatter 语法校验。触发失败时模型可能仍然能写出 YAML但它不会按 skill-creator 的流程走也不会主动提醒你把“何时使用”写进 description。这时不要立刻去改 Base URL。先看 Claude Code 是否能正常调用模型。如果普通对话正常说明 TaoToken 通道已经通了。接下来把 SKILL.md 的 frontmatter 原文贴出来重点检查name是否与目录一致、description是否包含触发语句、YAML 缩进有没有坏。改完 description 后重启会话再发同一条测试提示词。4.3 回填 description 并重启会话回填时不要只加一两个词。把用户可能说的句式写进去同时保持边界清晰。例如“当用户说‘创建一个新 Skill’‘帮我写 SKILL.md’‘description 不触发’‘skill-creator 为什么不生效’时使用用于生成或修复 Skill frontmatter、校验 name 与目录名、把何时使用压进 description。不用于普通代码生成或安装依赖。” 这段 description 既告诉 Claude 何时用也告诉它何时别用。重启 Claude Code 或至少新开会话让 Skill 清单重新加载。再次发送“创建一个新 Skill”的请求。如果这次触发说明问题在 frontmatter不在 TaoToken 通道。如果仍然不触发再去看是否有多个 Skill 抢同一个触发词或者目录没有被放到 Claude Code 扫描的位置。5. 排障对照401、模型不存在、description 不触发分开处理5.1 请求层401 与 404401 通常表示 Key 没换或复制不完整。检查ANTHROPIC_AUTH_TOKEN是否仍是YOUR_API_KEY或者 Key 是否在控制台被删除。404 常见于 Base URL 写错比如写成https://taotoken.net/api/v1、末尾多了斜杠或者把官网落地页地址填进了工具。记住工具里填 https://taotoken.net/api不要加/v1。如果请求层报错Skill 根本不会进入触发判断。你会误以为“skill-creator 走 TaoToken 通道行不行”实际是请求没发出去。先把普通对话跑通再谈 Skill。这个顺序能省掉大量无效改 frontmatter 的时间。5.2 模型层YOUR_MODEL_ID 不要编模型 ID 填错时表现可能是 404、模型不存在或请求被拒。不要在配置里写网上流传的随意日期后缀也不要把其他平台的模型名直接搬过来。以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 模型广场当时列表为准。拿到列表里的 ID 后再填ANTHROPIC_MODEL。模型 ID 正确、Base URL 正确、Key 正确普通对话能稳定返回才说明请求层干净。此时如果 skill-creator 还是不触发就不要再动 Base URL。触发问题留在触发层解决。5.3 触发层description 太泛、正文写条件、name 不一致触发层排障按三个点查。第一description 是不是太泛只写了“创建 Skill”而没有用户会说的触发语句。第二触发条件是不是只写在正文frontmatter 里没有。第三name是否与目录名一致YAML 是否有效。很多“description 不触发”的案例改完这三处就恢复了。还有一个容易忽略的点多个 Skill 的 description 可能互相抢占。比如一个通用“文件生成”Skill 也写了“创建文件”用户说“创建一个新 Skill”时Claude 可能选那个通用 Skill。把 skill-creator 的触发语句写得更具体同时给通用 Skill 加上边界能减少误选。5.4 缓存与多 Skill 抢占改完 SKILL.md 后不重启会话旧清单可能还在。新开会话或重启 Claude Code再测同一条提示词。若仍然不稳定暂时禁用其他 Skill只留 skill-creator 做对照测试。确认它能触发后再逐个启用找出抢触发词的 Skill。如果请求层和触发层都正常但响应很慢或中断检查网络和模型额度。额度、用量和 Key 状态都在控制台看。打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 可以看到模型广场和用量入口。不要把 Skill 不触发和额度不足混为一谈两者的报错位置不同。6. 跑通之后去控制台对一下这次调用6.1 模型对话复测配置保存后先在 模型对话 里用同一把 Key 发一条测试消息确认模型 ID 和 Base URL 没填错。消息可以写“创建一个新 Skill用来把日志按错误码归类输出 SKILL.md 草稿不要连接生产服务”。如果模型对话里能正常返回再回 Claude Code 测 skill-creator 是否触发。这一步的意义是把请求层和触发层彻底分开。模型对话正常说明 Key、Base URL、模型 ID 都可用Claude Code 里仍不触发就集中改 SKILL.md 的name和description。触发后再把 description 回填到你的正式 Skill 文件里重启会话复测一次。6.2 下一步创建 Key、Coding Plan 与 Claude Code 文档长期写 Skill、跑 Claude Code 的话可以打开 Coding Plan 看套餐是否够用。Key 在 控制台 API Keys 创建Claude Code 环境变量和 settings.json 对照见 接入文档。配完先别急着批量跑 Skill用一条“创建新 Skill”的请求确认触发稳定再去控制台核对这次调用是否记上账。