1. 为什么“定规格”比“写代码”更难,也更值钱
AI 编程这件事,很多人一开始就搞反了方向:把 Claude Code 当成一个更快的自动补全,盯着它吐出来的每一行代码看。结果就是,你还是在写代码,只是换了个打字员。真正跑通 AI 主导编程的人,做的是另一件事——定规格。
所谓定规格,就是把“这个功能给谁用、在什么场景下用、预期结果是什么”讲清楚。你不需要写一行代码,但你必须能把需求说明白。规格定得越细,AI 拆任务、写代码、写测试、跑测试、自审这一整条链路就越稳。反过来,你扔一句“帮我写个电商后台”,它也能给你哐哐写两千行,但权限控制没有、支付接口是 mock 的、数据库设计不合理——问题不在 AI,在你没告诉它你要。
这篇是实战系列的第三篇,聚焦 Claude Code 与 Superpowers 协作场景。核心要解决一个很具体的工程问题:当你同时用 Claude Code 做规格拆解、用 Superpowers 跑工作流时,模型调用通道怎么统一。我的做法是用 TaoToken 统一 Key 和 API 通道,一份配置打通两个工具,省掉到处散落 Key、切来切去改环境变量的麻烦。下面给出settings.json与config.toml的可复制配置骨架,附验证连通性的具体命令和报错排查步骤,你可以直接跟着做。
适合谁看:已经在用 Claude Code、想把它和 Superpowers 工作流串起来的人;被多个工具各自配 Key 搞烦的人;以及想从“AI 辅助写代码”切到“AI 主导、人定规格”这套工作方式的人。
2. 前置准备:TaoToken 统一 Key 与通道
在动手改配置之前,先把通道这件事理清楚。Claude Code 和 Superpowers 本质上都是客户端,它们需要一个能稳定调用的模型入口。TaoToken 在这里扮演的角色就是统一入口:一个 Key、一个 API 地址,两个工具共用。
你需要先拿到两样东西:
- 一个 API Key,在控制台的 API Keys 页面创建;
- 确认 API 基地址为
https://taotoken.net/api(注意这个地址不带任何查询参数,配置里直接写它)。
创建 Key 的入口在这里:
控制台 API Keys:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite
拿到 Key 之后,先别急着往配置文件里塞。建议先在终端里用环境变量验证一次,确认通道本身是通的,再去改 Claude Code 和 Superpowers 的配置。这样出问题时你能快速判断是“通道不通”还是“配置写错”。
export TAOTOKEN_API_KEY="sk-你的key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"把这两行写进你的 shell 配置文件(~/.zshrc或~/.bashrc)里,后续两个工具都能读到。这一步看着简单,但它是后面所有配置的基础——统一 Key 的意义就在于,你只维护这一处,不用在每个工具里重复填。
如果你还没决定用哪个模型,可以先到模型对话页面手动发一条消息,确认 Key 有效、通道正常:
模型对话:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite
3. 可复制配置:settings.json 与 config.toml
这一节是全文的核心。Claude Code 读的是settings.json,Superpowers 侧走的是config.toml,两个文件都指向同一个 TaoToken 通道。下面给的是骨架,你按自己的路径和模型名替换即可。
3.1 Claude Code 的 settings.json
Claude Code 的配置文件通常放在~/.claude/settings.json。如果你之前配过别的通道,先备份一份再改。
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的key", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" }, "permissions": { "allow": [ "Read", "Write", "Bash(git status)", "Bash(git diff:*)" ] } }几个关键点说明一下。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址,注意结尾不要多加斜杠,也不要带查询参数。ANTHROPIC_API_KEY填你在控制台创建的那个 Key。ANTHROPIC_MODEL按你实际要用的模型名填,不确定就先留空让它走默认。
permissions.allow这块是给“定规格”工作流用的。你让 AI 拆任务、写测试、跑测试,它需要读文件、写文件、执行 git 命令。把常用的只读和 git 命令放进来,能减少每次弹确认的打断。但不要图省事把Bash(*)全放开,规格阶段 AI 会频繁跑命令,权限给太宽反而危险。
3.2 Superpowers 侧的 config.toml
Superpowers 工作流通常读~/.config/superpowers/config.toml(具体路径以你安装版本为准)。它和 Claude Code 共用同一个 Key,只是字段名不同。
[provider] name = "taotoken" base_url = "https://taotoken.net/api" api_key = "sk-你的key" model = "claude-sonnet-4-20250514" [workflow] mode = "spec-first" auto_test = true max_retry = 2 [logging] level = "info"mode = "spec-first"是这套工作流的关键开关,它让 Superpowers 先走规格拆解,再进入执行。auto_test = true对应“每完成一个功能先写测试再写代码”的节奏。max_retry控制单个任务失败后的重试次数,别设太大,否则一个卡住的任务会反复烧调用。
两个配置文件对照着看,你会发现它们指向的是同一个base_url和同一个 Key。这就是统一通道的价值:改一处 Key,两个工具同时生效;换一个模型,两边一起换。
| 配置项 | Claude Code (settings.json) | Superpowers (config.toml) |
|---|---|---|
| 基地址 | ANTHROPIC_BASE_URL | provider.base_url |
| 密钥 | ANTHROPIC_API_KEY | provider.api_key |
| 模型 | ANTHROPIC_MODEL | provider.model |
| 工作模式 | 无(靠 prompt 控制) | workflow.mode |
4. 验证连通性:具体命令与成功结果
配置写完不算完,必须验证。分两步:先验通道,再验工具。
4.1 直接打 API 验证通道
用 curl 直接请求一次,确认 Key 和地址都对。这一步能排除掉 90% 的“配置写了但不生效”问题。
curl -sS https://taotoken.net/api/v1/messages \ -H "x-api-key: $TAOTOKEN_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "max_tokens": 64, "messages": [ {"role": "user", "content": "只回复两个字:通了"} ] }'成功的话,你会拿到一段 JSON,content数组里能看到模型返回的文本。如果返回的是 401,说明 Key 不对;返回 404,多半是地址写错或路径不对;返回 429,是触发了限流,等一会儿再试。
4.2 验证 Claude Code 是否读到配置
Claude Code 启动后,在交互里发一条最简单的指令,比如让它读一下当前目录的文件列表。如果它能正常调用工具并返回结果,说明settings.json生效了。
claude # 进入交互后输入: # 列出当前目录下的文件,不要修改任何东西4.3 验证 Superpowers 工作流
Superpowers 侧跑一个最小任务,确认spec-first模式生效:
superpowers run --task "为一个加法函数写规格,不要写实现"如果它先输出一份规格说明(功能、输入输出、边界条件),而不是直接甩代码,说明mode = "spec-first"起作用了。这一步验证通过,你后面就能放心地让它按规格执行。
5. 本篇常见报错排查
配置和验证过程中,最容易踩的坑集中在这几类,我按现象、原因、处理列出来。
报错一:401 Unauthorized。现象是 curl 或工具都返回鉴权失败。原因通常是 Key 复制时带了空格、换行,或者用了控制台里已删除的旧 Key。处理办法是重新在控制台创建一个 Key,复制时注意首尾不要有多余字符,然后重新导出环境变量。
报错二:404 Not Found。地址写错了。常见的是把https://taotoken.net/api写成了带/v1或带查询参数的版本。配置里统一用https://taotoken.net/api,路径部分交给客户端自己拼。
报错三:模型名不识别。现象是返回“model not found”之类的提示。原因是你填的模型名和通道支持的名称对不上。处理办法是先用模型对话页面确认可用模型,再把准确的名称填进ANTHROPIC_MODEL或provider.model。
报错四:Claude Code 改了配置但不生效。多半是配置文件路径不对,或者环境变量优先级覆盖了文件配置。检查~/.claude/settings.json是否存在、JSON 格式是否合法(少个逗号就会静默失败),以及 shell 里有没有旧的ANTHROPIC_BASE_URL在捣乱。
报错五:Superpowers 一直重试不结束。这是max_retry设太大加上任务规格不清导致的。回到“定规格”本身:把任务拆小,把验收标准写清楚,再跑一次。规格不清,重试多少次都是白烧调用。
注意:排查时优先用 curl 直接打 API。工具层的问题和通道层的问题要分开定位,别一上来就怀疑工具。
6. 把通道打通之后,回到“定规格”本身
配置这件事做完,你会发现它其实是个一次性的活。Key 统一了、通道通了,后面你每天真正花时间的,是怎么把需求说清楚。
我自己的节奏是这样的:先在 Claude Code 里扔一个模糊需求,让它反问我五个问题,把角色、场景、验收标准问出来;然后让它出一份规格书,包含功能列表、数据结构、API 大纲,明确说“不要写代码”;我过一遍规格,标出不同意的地方扔回去改;最后让 Superpowers 按规格执行,每完成一个功能先写测试再写代码,跑完给我看结果。到这一步,我的角色从“程序员”变成了“产品经理加验收官”。
这套流程能跑稳的前提,就是通道别掉链子。你要是还在为每个工具单独配 Key、切环境变量,光是维护这些就够烦的,更别说专注定规格了。把 Claude Code 和 Superpowers 都指到同一个 TaoToken 通道上,是让这套工作流真正顺起来的第一步。
如果你打算长期用这套方式做编码和 Agent 任务,可以看一下 Coding Plan,它更适合高频、持续的调用场景:
Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite
接入文档在这里,配置字段有疑问可以对照查:
接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
最后留一个我踩过的坑:改完settings.json一定要用python -m json.tool ~/.claude/settings.json验一下格式,JSON 少个逗号不会报错,只会静默不生效,然后你会花半小时怀疑是通道的问题。