1. 为什么你的 agent 工作流需要 Superpowers 技能集
如果你正在用 Cline 或 CC Switch 跑 agent 工作流,大概率遇到过这几个场景:模型上来就写代码,写完发现需求理解偏了;修一个 bug 改了五处文件,最后不知道哪处生效;任务做到一半上下文被压缩,进度全丢。这些不是模型能力问题,而是缺少一套「行为约束」——让 agent 在动手前先澄清、在写代码前先写测试、在声称完成前先验证。
Superpowers 就是干这个的。它是一套 harness-agnostic(跨运行环境通用)的技能集,把经过真实会话验证的 agent 工作流固化成一组行为塑造技能。每个技能就是一个skills/<name>/SKILL.md,带 YAML frontmatter 的 name/description 加行为指令正文。它不是某个 IDE 或 CLI 的插件,而是一份与运行环境解耦的纯 Markdown 技能树,零运行时依赖,无编译步骤,无第三方依赖。
14 个核心技能覆盖从「澄清意图」到「收尾合并」的完整软件开发链路:brainstorming 负责动手前澄清意图写规格,writing-plans 把 spec 拆成一口大小的任务,test-driven-development 强制先写失败测试,systematic-debugging 要求先定位根因再修复,subagent-driven-development 用子代理逐任务执行,requesting-code-review 和 receiving-code-review 构成评审闭环,finishing-a-development-branch 处理分支集成,verification-before-completion 在声称完成前先跑验证。
这套技能集适合谁?适合已经在用 Cline、CC Switch、Claude Code 等 harness 跑 agent 工作流,但觉得流程不够稳、返工率高的开发者。它不替代你的编辑器,也不替代模型,它是在模型和你的代码库之间加一层「纪律层」。而要让这层纪律真正跑起来,你需要一个稳定的 API 通道——这就是 TaoToken 统一 Key 接入要解决的问题。
2. TaoToken 前置准备:统一 Key 与 API 通道
Superpowers 本身不绑定任何模型供应商,它只描述「动作」——调用技能、派子代理、写计划——具体工具名和模型适配发生在引导层。这意味着你可以把技能树接到任意 harness 上,但前提是这个 harness 能稳定访问模型 API。Cline 和 CC Switch 都支持自定义 API 端点,TaoToken 提供的统一 Key 和 API 通道正好可以在这里承接。
TaoToken 的定位是统一 API 网关,你拿到一个 Key 之后,可以在多个 harness 之间复用同一套凭证,不用每个工具单独配一遍。对 Superpowers 这种需要频繁派子代理、多轮对话的工作流来说,统一通道能减少「这个工具能跑、那个工具报 401」的碎片化问题。
你需要准备的东西不多:一个 TaoToken 账号、一个 API Key、以及你本地的 Cline 或 CC Switch 环境。API Key 在控制台的 API Keys 页面创建,创建后复制保存,页面关闭后不再完整显示。
注意:API Key 属于敏感凭证,不要提交到 git 仓库,也不要写进会被同步的配置文件里。建议用环境变量或本地未跟踪的配置文件承载。
拿到 Key 之后,下一步是把它写进 Cline 的settings.json和 CC Switch 的config.toml。这两个文件的骨架配置是本文的重点,我会给出可直接复制的片段,并说明每个字段的作用。
3. 可复制配置:settings.json 与 config.toml 骨架
先看 Cline 的settings.json。Cline 的配置通常位于用户目录下的扩展配置区,具体路径因版本而异,但结构一致。核心是把 API 端点指向 TaoToken 的 API 地址,并把 Key 填进去。
{ "cline.apiProvider": "openai-compatible", "cline.apiBaseUrl": "https://taotoken.net/api", "cline.apiKey": "${env:TAOTOKEN_API_KEY}", "cline.model": "claude-sonnet-4-20250514", "cline.enableSkills": true, "cline.skillsPath": "./skills", "cline.bootstrapFile": "./skills/using-superpowers/SKILL.md" }这里有几个关键点。apiProvider设为openai-compatible,因为 TaoToken 的 API 通道兼容 OpenAI 格式的请求结构。apiBaseUrl指向https://taotoken.net/api,注意这里不加任何 UTM 参数,保持端点干净。apiKey用环境变量引用,避免明文写死在文件里。skillsPath指向你克隆下来的 Superpowers 技能树目录,bootstrapFile指向入口技能using-superpowers/SKILL.md,这是整个技能集的触发点。
再看 CC Switch 的config.toml。CC Switch 用 TOML 格式管理多套配置,适合在不同模型或不同项目之间切换。
[default] provider = "taotoken" api_base = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" model = "claude-sonnet-4-20250514" [skills] enabled = true root = "./skills" bootstrap = "using-superpowers" [subagent] max_parallel = 3 model_cheap = "claude-haiku-3-5-20241022" model_standard = "claude-sonnet-4-20250514" model_strong = "claude-opus-4-20250514"[subagent]这一段是给 Superpowers 的 subagent-driven-development 技能用的。技能正文里明确要求「机械任务用便宜模型,集成/判断用标准模型,架构/最终评审用最强模型」,这里把三档模型映射好,派子代理时就能按任务类型选模型。max_parallel控制并行子代理数量,对应 dispatching-parallel-agents 技能的使用场景。
两个文件配好之后,把 API Key 写进环境变量:
export TAOTOKEN_API_KEY="你的Key"Windows 下用setx TAOTOKEN_API_KEY "你的Key",或者在系统环境变量面板里添加。配完之后重启 Cline 或 CC Switch,让配置生效。
4. 验证请求:跑通技能调用链路
配置写完不代表能跑。Superpowers 的入口技能 using-superpowers 有一条铁律:「即使只有 1% 可能适用,也必须调用。」所以验证的第一步,是确认 agent 在会话开始时真的会去读技能文件。
在 Cline 里新建一个会话,输入一个简单需求,比如「帮我给项目加一个健康检查接口」。观察 agent 的第一反应。如果配置正确,它应该先声明「Using using-superpowers to find applicable skills」,然后触发 brainstorming 技能,开始一次问一个问题地澄清需求,而不是直接写代码。
如果它直接开始写代码,说明 bootstrap 没生效。检查bootstrapFile路径是否正确,以及skillsPath下的目录结构是否是skills/using-superpowers/SKILL.md这种形式。
第二步验证 API 通道。在 CC Switch 里跑一个最小请求,确认 Key 和端点能通:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "reply with ok"}], "max_tokens": 10 }'返回里如果有正常的choices结构,说明通道没问题。如果返回 401,检查 Key 是否复制完整;如果返回 404,检查api_base是否写成了https://taotoken.net/api而不是带/v1的路径——TaoToken 的端点已经包含了版本前缀,重复拼接会 404。
第三步验证子代理派发。Superpowers 的 subagent-driven-development 会派独立子代理执行任务,这要求 harness 支持子代理机制。在 Cline 里触发一个需要并行处理的任务,比如「有三个独立的测试文件都失败了,分别排查」,观察它是否调用 dispatching-parallel-agents 技能,并在同一条消息里发出多个 dispatch。如果只派了一个,检查max_parallel配置和 harness 本身的子代理支持情况。
实测下来,最容易出问题的是模型名。Superpowers 的技能正文里不写具体模型名,但引导层需要把「便宜/标准/最强」映射到实际模型。如果你填的模型名在 TaoToken 通道里不存在,派子代理时会报 model not found。建议先用模型对话页面确认可用模型列表,再填进配置。
5. 本篇常见错排查
报错一:401 Unauthorized。最常见的原因是 Key 没读到。如果你用${env:TAOTOKEN_API_KEY}引用,确认环境变量在启动 Cline 的 shell 里已经 export。macOS 下 GUI 应用可能读不到 shell 的 export,需要在~/.zshrc或 launchd 配置里设置。另一个原因是 Key 复制时带了空格或换行,重新复制一次。
报错二:404 Not Found。检查apiBaseUrl是否写成了https://taotoken.net/api/v1。TaoToken 的 API 地址是https://taotoken.net/api,请求路径里再拼/v1/chat/completions。如果你在 base 里已经带了/v1,最终路径会变成/api/v1/v1/chat/completions,自然 404。
报错三:技能不触发,agent 直接写代码。先确认bootstrapFile指向的文件存在且内容完整。Superpowers 的入口技能要求模型在「任何回应或行动之前」先检查技能,如果 bootstrap 文件没被加载,这条规则就不会生效。另一个可能是 harness 的 system prompt 覆盖了技能指令,检查 Cline 的 custom instructions 里有没有冲突的「直接开始编码」类指令。
报错四:子代理派发失败或串行执行。Superpowers 的 dispatching-parallel-agents 要求「在同一消息里发出所有 dispatch」才能并行。如果你的 harness 不支持一条消息多个工具调用,就会退化成串行。这不是配置问题,是 harness 能力边界。CC Switch 对并行子代理的支持较好,Cline 需要确认版本。
报错五:上下文压缩后进度丢失。subagent-driven-development 技能里明确要求用progress.mdledger 记录进度,因为「压缩后上下文丢失,ledger 是恢复地图」。如果你发现 agent 做到一半忘了之前做了什么,检查它有没有按技能要求维护 ledger 文件。没有的话,在会话里显式提醒它「按 subagent-driven-development 的要求更新 progress.md」。
报错六:verification-before-completion 没生效,agent 声称完成但测试没过。这个技能的铁律是「本消息里没跑验证命令,就不能声称通过」。如果 agent 说「已完成」但你没看到测试输出,直接回它「按 verification-before-completion 的要求,先跑验证命令并贴出输出」。技能正文在,只是模型可能偷懒跳过,显式提醒能拉回来。
6. 把技能链路接进你的日常编码
配置跑通之后,Superpowers 的价值在于它把「先澄清、先测试、先验证」这些纪律变成了 agent 的默认行为。你不需要每次手动提醒,入口技能 using-superpowers 会在会话开始时自动触发,brainstorming 会在动手前拦住你,test-driven-development 会在写生产代码前要求失败测试,verification-before-completion 会在声称完成前要求证据。
如果你主要用 Cline 做日常编码,建议把settings.json里的skillsPath指向项目内的./skills目录,这样技能树跟着项目走,换机器不用重配。如果你用 CC Switch 管理多套环境,把 TaoToken 的配置放在[default]段,其他环境用 profile 覆盖,切换时只改 profile 名。
长期跑 agent 工作流的话,Coding Plan 比按量计费更划算,尤其是 subagent-driven-development 这种会频繁派子代理的模式,token 消耗比单轮对话高不少。你可以先在模型对话页面确认模型可用性,再去控制台创建 API Key,最后按本文的配置片段接入。接入文档里有各 harness 的详细字段说明,遇到配置项不确定的时候对照查一下。
技能集本身是纯 Markdown,你可以直接读skills/<name>/SKILL.md看每个技能的行为指令。想改行为就改技能正文,想换模型就改引导层映射,两层解耦,互不影响。这也是 Superpowers 设计上最舒服的地方——纪律归纪律,工具归工具。