☰
superpowers基本Skill:writing-skills 技能如何把 Codex auth.json 改到 TaoToken
2026/10/9 5:19:54 网站建设 项目流程

1. 从一次鉴权失败说起:Codex auth.json 迁移到 TaoToken 的完整路径

如果你正在用 Claude Code 配合 superpowers 的 writing-skills 技能写技能文档,同时又想让 Codex 走同一套模型通道,大概率会遇到一个很具体的问题:Codex 的auth.json里存的还是旧的鉴权信息,模型调用直接报 401,或者返回体里读不到choices。这不是技能写错了,而是鉴权配置没迁移。

writing-skills 这个技能的核心思路是把测试驱动开发搬到文档上:先看 agent 在没有技能时怎么失败,再写最小技能让它通过,最后堵住合理化漏洞。这套红-绿-重构循环用在配置迁移上同样成立——先复现失败(红),再改auth.json(绿),最后验证鉴权通过、模型正常返回(重构)。

这篇内容面向三类人:一是已经在用 Claude Code 和 superpowers 写技能、想把 Codex 也接进同一通道的开发者;二是手上有一堆auth.json需要统一到 TaoToken 的团队;三是刚接触 Codex 配置、看到auth.json字段就头大的小白。核心检索词就三个:Codex auth.json 配置、TaoToken 统一 Key、writing-skills 技能落地。

我试过把auth.json里的 base URL 和 key 直接替换成 TaoToken 的地址,第一次调用就通了,但中间踩了两个坑:一个是字段名写错导致 Codex 读不到配置,另一个是模型 ID 没对齐,返回体结构对不上。下面把完整过程拆开讲,每一步都能直接复制。

先明确一点:TaoToken 在这里扮演的是统一 API 通道的角色,官网是https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,API 入口是https://taotoken.net/api。Codex 的auth.json需要指向这个 API 入口,而不是官网首页。很多人第一次配错就是把官网地址填进了 base URL,结果请求打到网页上,自然拿不到模型返回。

writing-skills 技能里反复强调一个原则:如果你没有看 agent 在没有技能的情况下失败,你就不知道技能是否教授了正确的东西。迁移配置也一样——你得先看到 401 或local proxy failed这类报错,才知道改哪里。所以第一步不是急着改文件,而是先跑一次调用,把失败现象记录下来。这个失败现象就是你后面验证的基线。

Codex 的配置文件位置在~/.codex/auth.json,Claude Code 的技能目录在~/.claude/skills,Codex 的技能目录在~/.codex/skills。这两个路径别搞混。writing-skills 技能本身是放在 skills 目录下的SKILL.md,而auth.json是 Codex 的鉴权配置,两者不在同一个层级。迁移的时候只动auth.json,不要动技能文件,否则会把技能加载逻辑搞乱。

还有一个容易忽略的点:Codex 读取auth.json的时机是在启动会话时,改完文件需要重启 Codex 会话才会生效。如果你改完直接在当前会话里测试,会发现配置没变,以为改错了。这个坑我在第一次迁移时卡了十几分钟,后来重启才通。

2. TaoToken 前置准备:拿到统一 Key 和 API 入口

在改auth.json之前,需要先把 TaoToken 这边的准备工作做完。这一步不复杂,但顺序不能乱,否则后面配置里填的 Key 是无效的。

首先打开 TaoToken 官网https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,进入控制台。控制台地址是https://taotoken.net/console,登录后找到 API Keys 页面,路径是https://taotoken.net/api-keys。在这里创建一个新的 Key,创建时给它起个能认出来的名字,比如codex-migration,方便后面区分是哪个项目在用。

创建完 Key 之后,把它复制下来。注意,Key 只在创建时完整显示一次,关掉页面就看不到了。如果没复制到,就重新创建一个。这个 Key 就是后面auth.json里要填的鉴权凭证。

接下来确认 API 入口。TaoToken 的 API 地址是https://taotoken.net/api,这个地址不加任何 UTM 参数,直接作为 base URL 使用。Codex 的auth.json里需要填的就是这个地址。不要填官网首页,也不要填控制台地址,那些都不是模型调用的入口。

模型 ID 这块需要根据你实际要用的模型来定。TaoToken 支持多种模型,具体可用的模型列表可以在模型对话页面https://taotoken.net/chat里看到,或者在接入文档https://taotoken.net/doc里查。选一个你要用的模型 ID,记下来,后面配置里要用。

如果你打算长期用 Codex 做编码和 Agent 任务,可以看一下 Coding Plan 页面https://taotoken.net/coding-plan,里面有适合长期编码场景的套餐说明。这一步不是必须的,但如果你每天都要跑大量调用,提前了解套餐能省不少事。

准备工作做完后,你手上应该有三样东西:一个有效的 TaoToken Key、API 入口https://taotoken.net/api、一个确定的模型 ID。这三样就是后面配置的核心。writing-skills 技能里讲技能创建要先写测试用例,迁移配置也一样——这三样东西就是你的“测试前置条件”,缺一个后面都会失败。

这里插一句关于 writing-skills 技能本身的背景。这个技能是 superpowers 项目里的一个基础技能,专门用来写其他技能。它的核心是把 TDD 的红-绿-重构循环套用到文档上:红阶段用子 agent 跑压力场景,看它在没有技能时怎么违规;绿阶段写最小技能解决那些具体违规;重构阶段堵住新发现的合理化漏洞。这个思路迁移到配置上就是:红阶段先跑一次失败调用,绿阶段改auth.json,重构阶段验证鉴权通过并堵住字段写错的坑。

superpowers 的 writing-skills 技能下载地址在 GitHub 上,路径是https://github.com/obra/superpowers/tree/main/skills/writing-skills。如果你还没装这个技能,可以先把它放到~/.claude/skills或~/.codex/skills目录下。技能文件是SKILL.md,frontmatter 里只有name和description两个字段,description 以 “Use when...” 开头,专注触发条件,不总结技能流程。这个结构后面在配置 Codex 时也会用到类似思路——字段要精简,只放必要的。

3. 可复制配置:auth.json 字段示例与 settings 片段

这一步是核心,直接给可复制的配置。Codex 的auth.json是一个 JSON 文件,路径在~/.codex/auth.json。如果你之前没建过这个文件,直接新建一个;如果已经有,先备份一份,改错了可以回滚。

下面是一个完整的auth.json示例,字段名和结构按 Codex 的要求来,值替换成你自己的:

{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "model": "你的模型ID", "provider": "openai-compatible" }

这里有几个点要说明。base_url填 TaoToken 的 API 入口,不带 UTM 参数。api_key填你在 API Keys 页面创建的那个 Key。model填你选定的模型 ID。provider字段填openai-compatible,因为 TaoToken 的 API 是兼容 OpenAI 接口格式的,Codex 走这个 provider 能正确解析返回体。

如果你用的是 Claude Code 的 settings 文件,路径在~/.claude/settings.json,配置结构不太一样,但核心三件套是一样的:Base URL、Key、Model ID。下面是一个 settings 片段示例:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoTokenKey", "ANTHROPIC_MODEL": "你的模型ID" } }

注意,Claude Code 用的是ANTHROPIC_前缀的环境变量,而 Codex 用的是auth.json里的字段。两者不要混用。如果你同时用 Claude Code 和 Codex,两个配置文件都要改,但改的内容是对应的。

还有一个 TOML 格式的配置场景,如果你用的是某些支持 TOML 的工具,配置片段如下:

[provider] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" model = "你的模型ID"

不管是 JSON 还是 TOML,核心就是三件套:Base URL 指向https://taotoken.net/api,Key 用 TaoToken 创建的 Key,Model ID 用你选定的模型。这三个字段对齐了,鉴权就能过。

writing-skills 技能里强调“最小技能”——只写解决特定违规的内容,不为假设情况添加额外内容。配置也一样,auth.json里只放必要的字段,不要加一堆用不到的配置项。字段越多,出错概率越大。我第一次迁移时加了一个timeout字段,结果 Codex 解析时直接报格式错误,删掉就好了。

如果你用的是 CC Switch 这类工具来管理多个配置,需要在工具里把 Base URL、Key、Model ID 三件套都填全。CC Switch 的配置界面里通常有这三个输入框,对应填进去就行。Cline MCP 的场景类似,MCP 配置里也需要 Base URL 和 Key。Codex 的auth.json则是直接改文件。三种方式目标一致,都是让请求打到 TaoToken 的 API 入口。

配置改完后,保存文件。如果是 Codex,记得重启会话,因为auth.json是在会话启动时读取的。Claude Code 的 settings 改动通常也需要重启会话生效。这一步别省,否则你会以为配置没生效。

4. 验证请求:发起一次模型调用确认鉴权通过

配置改完后,必须做一次最小验证。writing-skills 技能里讲“看测试通过”——agent 在技能存在时合规。迁移配置的“测试通过”就是:发起一次模型调用,鉴权通过,返回正常。

验证方式有几种,选一个你顺手的。最简单的是用 curl 直接打 TaoToken 的 API:

curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoTokenKey" \ -d '{ "model": "你的模型ID", "messages": [{"role": "user", "content": "ping"}] }'

如果鉴权通过,你会看到一个 JSON 返回体,里面有choices字段,choices[0].message.content里是模型的回复。如果鉴权失败,会返回 401 或者类似的错误信息。这一步能直接确认 Key 和 base URL 是否配对。

第二种方式是在 Codex 里直接发一条消息。重启 Codex 会话后,输入一句简单的话,比如“你好”,看是否能正常返回。如果返回正常,说明auth.json配置生效了。如果报local proxy failed或者reading choices错误,说明配置还有问题,需要回到上一步检查字段。

第三种方式是在 Claude Code 里用模型对话功能验证。打开https://taotoken.net/chat,在页面里选模型、发消息,确认能正常返回。这个方式不依赖本地配置,能单独验证 Key 和模型 ID 是否有效。如果这里能通,但本地 Codex 不通,那问题就在本地配置文件上。

验证的时候要注意看返回体的结构。正常的返回体里choices是一个数组,里面每个元素有message字段。如果你看到的是reading choices报错,说明返回体结构不对,通常是 base URL 填错了,请求打到了非 API 地址上。如果看到 401,说明 Key 无效或者没带上。如果看到local proxy failed,说明本地代理配置有问题,检查一下是不是有多余的代理设置干扰了请求。

我实测下来,最稳的验证顺序是:先用 curl 确认 Key 和 base URL 有效,再在 Codex 里发消息确认auth.json生效,最后在 Claude Code 里确认 settings 生效。三步都过了,迁移就算完成。

验证通过后,你可以把这次调用的返回体保存下来,作为“测试通过”的证据。writing-skills 技能里讲重构阶段要“关闭漏洞”,迁移配置的漏洞就是字段写错、路径写错、模型 ID 不对。验证通过意味着这些漏洞都堵住了。

如果你在验证时遇到返回体里choices为空数组,通常是模型 ID 不对。检查一下你填的模型 ID 是否在 TaoToken 支持的列表里。模型列表可以在https://taotoken.net/doc里查到,或者在模型对话页面里试。模型 ID 对不上,请求能通但返回空,这个坑很容易被忽略。

5. 常见报错排查:401、local proxy failed、reading choices、OAuth

迁移过程中最常见的报错有四类,每一类对应不同的原因和修法。下面逐个拆开讲,对照你的实际报错来查。

第一类:401 Unauthorized。这个最直接,就是鉴权没过。原因通常是 Key 无效、Key 没带上、或者 Key 和 base URL 不匹配。检查auth.json里的api_key字段是否填了完整的 Key,有没有多余空格。检查base_url是否指向https://taotoken.net/api。如果 Key 是从 API Keys 页面复制的,确认复制完整了。如果 Key 创建后没复制到,重新创建一个。401 的修法就是换一个有效的 Key,确认 base URL 正确。

第二类:local proxy failed。这个报错说明本地有代理设置在干扰请求。检查一下环境变量里有没有HTTP_PROXY、HTTPS_PROXY之类的设置,如果有,临时清掉再试。Codex 和 Claude Code 都会读取系统代理设置,如果代理指向了一个不可用的地址,请求就会失败。修法是清掉代理环境变量,或者确认代理配置正确。注意,这里说的代理是本地网络配置层面的,不是让你去用什么特殊工具,只是排查本地环境变量。

第三类:reading choices 报错。这个报错说明返回体结构不对,Codex 在解析choices字段时失败了。原因通常是 base URL 填错了,请求打到了非 API 地址上,返回的是 HTML 页面而不是 JSON。检查base_url是否填的是https://taotoken.net/api,而不是官网首页或控制台地址。修法就是把 base URL 改对,重启会话再试。

第四类:OAuth 相关报错。如果你之前用的是 OAuth 方式鉴权,迁移到 Key 方式时可能会残留 OAuth 配置,导致冲突。检查auth.json里有没有多余的 OAuth 字段,如果有,删掉,只保留 base_url、api_key、model、provider 这四个必要字段。OAuth 和 Key 两种鉴权方式不要混用,选一种就行。

除了这四类,还有一个常见问题是字段名写错。比如把base_url写成baseUrl,或者把api_key写成apikey。Codex 读取auth.json时对字段名是大小写敏感的,写错了就读不到,表现可能是静默失败或者报格式错误。修法是对照示例逐字检查字段名。

writing-skills 技能里有一个“合理化表”,列出 agent 在压力下会找的借口。迁移配置时也有类似的合理化:“我明明改了怎么还报错”——可能是没重启会话;“Key 肯定没问题”——可能是复制时漏了字符;“base URL 应该没错”——可能是填了官网首页。这些都要逐一排除,不能想当然。

排查的时候建议按顺序来:先确认 Key 有效(用 curl 测),再确认 base URL 正确(看是不是/api结尾),再确认字段名没写错(对照示例),最后确认会话重启了。四步走完,大部分报错都能定位。

如果你用的是 CC Switch 或 Cline MCP,报错信息可能不太一样,但排查思路一致:确认 Base URL、Key、Model ID 三件套都填对了。CC Switch 里如果 Base URL 填的是官网首页,也会出现 reading choices 报错。Cline MCP 里如果 Key 没填,会直接 401。Codex 的auth.json如果字段名写错,可能连报错都没有,直接静默失败,这个最难查,所以字段名一定要对照示例。

6. 语义一致 CTA:把配置迁移和技能落地串起来

配置迁移完成后,writing-skills 技能的落地才算真正闭环。因为 writing-skills 本身就是一个需要跨项目复用的技能,它依赖稳定的模型通道。如果 Codex 的auth.json还指向旧通道,技能在 Codex 里跑压力场景时就会因为鉴权失败而中断,红-绿-重构循环根本走不完。

所以这两件事是绑在一起的:writing-skills 技能负责把技能文档写对,TaoToken 统一 Key 负责让模型调用稳定。两者配合,Claude Code 和 Codex 才能在同一套通道下协作。

如果你在迁移过程中遇到鉴权问题,优先去 API Keys 页面https://taotoken.net/api-keys确认 Key 状态,再去接入文档https://taotoken.net/doc对照字段说明。这两个页面能解决大部分配置问题。如果你要验证模型是否可用,直接去模型对话页面https://taotoken.net/chat发一条消息,比在本地排查快得多。

如果你打算长期用 Codex 做编码和 Agent 任务,Coding Plan 页面https://taotoken.net/coding-plan里有适合长期场景的说明,可以提前看一下。Claude Code 相关的接入细节在https://taotoken.net/claude-code-anthropic里有更完整的说明,包括 Anthropic 兼容层的配置方式。

最后回到 writing-skills 技能本身。这个技能的铁律是“没有失败测试就没有技能”。迁移配置也一样——没有看到 401 或 reading choices 报错,你就不知道配置哪里有问题。先复现失败,再改配置,最后验证通过。这个循环走完,Codex 的auth.json就真正迁到了 TaoToken 通道上,writing-skills 技能也能在稳定的模型通道下正常跑它的红-绿-重构循环了。

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

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

立即咨询