用 TaoToken(https://taotoken.net/?utm_source=taotoken_aicg_blog_end)给 Claude Code 配模型通道时,我选了 Grill-Me 技能安装教程作为验证路径:检查符号链接、确认 SKILL.md、跑 claude skills list。技能文件本身不需要任何改动,真正要调整的是 Claude Code 请求模型时走的 Base URL 和 Key。

Grill-Me 不是一个写代码技能,而是一个面试技能。它可以拿你的计划、设计决策甚至技术方案做压力测试,通过连续追问暴露假设漏洞。这类技能对模型通道的稳定性要求很高,因为追问是多次往返的,任何一次请求失败都会打断面试节奏。原教程的安装部分并不复杂,但很多人走到 claude skills list 时才发现:技能明明装好了,列表却始终不认。原因往往不是技能装错,而是 Claude Code 的模型通道没有理顺。

1. Grill-Me 技能安装教程里没写,却能让 claude skills list 卡住的那一环

1.1 技能文件没问题,请求却发不出去

原教程给的检查点有三个:~/.agents/skills/ 里的符号链接、每个技能目录下的 SKILL.md 和 agents/openai.yaml、最后的 claude skills list。前两个检查点负责确认“技能在不在”,第三个检查点负责“Claude Code 认不认”。很多人把精力都放在前两步,符号链接一切正常,SKILL.md 的 frontmatter 也写得没错,结果卡在第三步:claude skills list 要么转圈,要么直接报 Request failed。

其实问题不在技能安装,而是当 Claude Code 尝试加载 grilling、grill-with-docs 这一类技能时,需要请求模型接口完成技能描述摘要或调用验证,这条请求路径本身没通。Claude Code 默认直连 Anthropic 官方 API,官方接口在部分网络环境下不稳定,或者你的官方 Key 额度用完,请求就会被拒在模型层外面。技能加载逻辑本身是本地完成的,但技能被真正使用时,每一次追问都需要通道把请求送到模型上去。通道不通,技能就只是躺在目录里的静态文件,列表里看得到,一对话就断。

1.2 TaoToken 把“模型通道”收口成一个 Base URL 和一枚 Key

TaoToken 做的事情,是让本来分散的模型接入方式收敛成一个统一 API 入口。对 Claude Code 来说,你只需要改动两样东西:环境变量里的 Base URL,以及认证用的 API Key。Base URL 填 https://taotoken.net/api,Key 在官网生成,模型 ID 在模型广场挑选。配好之后,Claude Code 的每次请求都会先到 TaoToken,再被路由到对应模型,整个过程的 Token 消耗都在同一个控制台里统计。这样做的好处是:你不再需要同时维护多个平台的密钥,也不用因为某个模型的额度见底就临时改配置。换模型这件事,只变成一个模型 ID 的替换,技能安装路径完全不受影响。

2. 准备材料:技能目录、SKILL.md 与一枚让 Claude Code 认可的 API Key

2.1 先按原教程把 Grill-Me 装好,三个符号链接缺一不可

开始动手前,先把技能目录检查一遍。原教程里的第一步是看符号链接,命令如下:

ls -la ~/.agents/skills/ | grep grill

输出里应当能过滤出三行内容:grill-me 指向技能主目录,grilling 负责生成连续追问,grill-with-docs 是可选扩展,用于在面试过程中对照你提供的文档。如果缺了某个链接,回到技能安装来源重新执行安装脚本,不要手动创建软链,除非你确认目标目录完整。

下一步看技能目录内部结构:

ls -la ~/.agents/skills/grill-me/

这里至少要有 SKILL.md 和 agents/openai.yaml 两个文件。SKILL.md 描述技能如何被触发,agents/openai.yaml 定义模型行为和调用参数。这两个文件是 Grill-Me 的核心,后面配置 TaoToken 时不要改动它们,也不需要把 Base URL 写进任何技能文件。技能文件只管“做什么”,模型通道由 Claude Code 的全局配置决定,两者职责分开,排查问题时才不会互相干扰。

2.2 打开 TaoToken 落地页创建 API Key,Base URL 只填一个

准备工作的另一半是模型通道配置。打开 TaoToken,注册账号并登录,然后在控制台创建一个 API Key。创建成功后会生成一串密钥,复制后妥善保存;之后如果怀疑泄露,回到这个页面删掉旧 Key 重新生成即可。整个过程两分钟左右,不需要等待任何审批。

这里有两个地址容易混淆,我分开写清楚。网页端是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end,用来注册、创建 Key、查看用量和模型广场;真正填进 Claude Code 的 Base URL 是 https://taotoken.net/api,末尾不要加 /v1。很多配置失败都源于多写了这个后缀,接口通道会自动处理版本路由,不需要你手动补。模型 ID 先别急着猜,打开模型广场看当前支持的模型列表,记下你要用的那个准确 ID。不同时期的模型列表会有变化,写在配置里的模型 ID 必须能在模型广场里找到,否则后续请求会直接 404。

3. 把 Claude Code 指到 TaoToken:改 settings.json 不动技能文件

3.1 用 env 块写入 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN

Claude Code 的全局配置在 ~/.claude/settings.json。不存在就创建这个文件,存在则把 env 块合并进去。关键配置如下:

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://taotoken.net/api",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
    "ANTHROPIC_MODEL": "your-model-id"
  }
}

ANTHROPIC_BASE_URL 告诉 Claude Code 所有 API 请求发到哪里;ANTHROPIC_AUTH_TOKEN 换成你在 TaoToken 控制台创建的 Key;ANTHROPIC_MODEL 要填模型广场上的准确 ID。如果这个值填错,Claude Code 可能仍然启动,但技能调用时会找不到模型。保存后完全退出 Claude Code,再重新启动。实测下来,很多工具会缓存 env 变量,不重启可能会一直读到旧的配置,导致你改了地址却毫无效果。

3.2 临时方案:用 export 导环境变量,适合快速验证

如果不想改动全局配置,或者只是想先确认 TaoToken 通道是否畅通,可以在启动 Claude Code 之前手动导出变量:

export ANTHROPIC_BASE_URL=https://taotoken.net/api
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
export ANTHROPIC_MODEL=your-model-id

导出之后运行 env | grep ANTHROPIC,确认三条变量都已经生效,再启动 claude。这个方式的优点是隔离干净,不会影响其他项目;缺点是每次打开新终端都要重新导出,一旦忘了,claude skills list 又会回到请求失败的状态。临时验证没问题后,还是建议把配置落进 settings.json,终端重启不丢配置,后面排查问题也少一个变量。

4. 重跑 claude skills list,确认 grill-me 真正可见

4.1 复查技能目录里的 SKILL.md 和 agents/openai.yaml,少一个都不行

在跑验证命令之前,先回头看一眼技能目录的完整结构:

find ~/.agents/skills/grill-me/ -maxdepth 2 -type f | sort

输出里一定要包含 SKILL.md 和 agents/openai.yaml。如果 agents 目录名拼错,或者 openai.yaml 被放到了别的层级,Claude Code 就无法识别这个技能。这不是多余动作,Grill-Me 的技能加载逻辑完全依赖这两个文件的固定路径。处理方式很简单:把路径修正到原教程指定的位置,但文件内容不要动。技能文件的内部配置是原教程写好的,任何改动都可能破坏技能行为,而我们要解决的只是模型通道,不是重写技能。

4.2 在 Claude Code 中运行 claude skills list,确认 grill-me 出现在输出里

目录结构确认后,运行验证命令:

claude skills list

正常输出里会出现 grill-me,可以对照技能描述确认它是否被识别为“Grill-Me”。如果看到的是空列表或报错,先别急着怀疑技能安装,优先检查第 3 章的三个配置项是否都被读取。Claude Code 在技能列表加载阶段就会尝试连接模型接口,接口地址不对或 Key 无效,都会让技能列表加载失败。这其实是一件好事:claude skills list 同时验证了技能存在性和模型通道可用性。它如果正常返回,说明请求已经成功到达 TaoToken 并拿到了模型响应,整个链条已经通了。

5. 发起一轮 Grill-Me 面试,Token 由 TaoToken 统一记账

5.1 用一段提示词触发压力测试,让技能真正跑起来

技能可见之后,实际跑一轮才算数。在 Claude Code 会话里粘贴:

请使用 grill-me 技能对我进行面试。我正在规划一个为团队知识库添加 AI 问答入口的需求,请从目标、假设、风险、依赖四个方向连续发问,每次只问一个问题。

Grill-Me 会像面试官一样层层追问,直到计划中的漏洞暴露出来。整个对话过程由 Claude Code 发起请求,请求经过 TaoToken 到达模型,每一轮问答的 Token 消耗都会被累计。这里不需要在技能文件里做任何标记,技能内部调用的模型就是你在 3.1 里通过 ANTHROPIC_MODEL 指定的那个。面试的节奏取决于模型通道的稳定性,通道顺畅时,追问会像正常聊天一样连续;如果中途断掉,优先检查 Base URL 是否被终端或代理改写过。

5.2 回到 TaoToken 控制台核对本次调用的 Token 数

面试进行到一半或结束后,打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end,登录控制台查看调用记录。你应该能看到刚才这一轮 claude skills list 和 grill-me 面试产生的请求条目,包含模型 ID、请求时间和 Token 消耗量。这个步骤的意义在于确认请求确实走了统一通道,而不是直连了旧地址。如果控制台里没有任何记录,说明 Claude Code 读到的 Base URL 不是你配置的那个,回到第 3 章检查 settings.json 是否保存成功,以及是否完整重启了 Claude Code。

6. 排障:配置好之后 grill-me 仍不可见,逐条对照 401/404 与目录结构

6.1 401 或 403:Key 没复制全或已失效

claude skills list 报 401 Unauthorized 时,优先检查 settings.json 里 ANTHROPIC_AUTH_TOKEN 的值是否和 TaoToken 控制台创建的 Key 完全一致。复制时容易多出一个空格或换行,有的终端还会在末尾自动附加一个不可见字符。把 Key 重新复制一遍,或者到官网删掉旧的重新生成。注意:配置文件和环境变量里的 Key 必须是创建出来的真实值,不要照抄文档里的 YOUR_API_KEY 占位符。如果确认 Key 无误但仍然 401,再去官网检查账号状态是否正常。

6.2 404 或 model not found:模型 ID 没按模型广场填

404 大多出在 ANTHROPIC_MODEL 上。Claude Code 默认的模型名不一定在你的通道里可用,你需要登录 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 打开模型广场,找到当前支持的模型 ID,再把 settings.json 里的 your-model-id 替换掉。不要凭记忆写“最新版 Claude”这类口语化名称,模型 ID 是一串严格的字符串,少一个横杠都会导致请求失败。换完模型 ID 后同样需要重启 Claude Code,再跑一次 claude skills list。

6.3 技能列表为空但请求正常:目录名或 openai.yaml 路径不对

如果 claude skills list 不报错,但没有 grill-me,去技能目录下重新确认路径。除了 ~/.agents/skills/grill-me/SKILL.md,还必须存在 ~/.agents/skills/grill-me/agents/openai.yaml。这里有一个经常出问题的位置:某些安装教程会把 agents 目录叫成 agent 或 openai,导致 Claude Code 找不到技能定义。路径修复后不要改文件内容,重启 Claude Code 再列一次。如果仍然为空,检查技能安装时是否用了全局路径而 Claude Code 默认读的却是用户路径,用符号链接指回来即可。

走到这一步,技能安装已经不再是卡点。建议你现在就打开 TaoToken 注册并创建一个 API Key,把第 3.1 节的配置贴进 ~/.claude/settings.json,然后跑一次 claude skills list。列表里出现 grill-me 之后,随便发起一轮面试问题,几分钟后回控制台看那次调用的 Token 记录。这样你就同时验证了两件事:Grill-Me 确实被 Claude Code 正确加载,Claude Code 的模型通道确实由 TaoToken 统一接管。后面再换模型,只改 ANTHROPIC_MODEL 一个变量,其他配置继续复用。

更多推荐