ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

我在 Claude Code 里烧掉了几百万 Token 之后,用 TaoToken 重写了 settings.json 配置骨架

我在 Claude Code 里烧掉了几百万 Token 之后,用 TaoToken 重写了 settings.json 配置骨架 1. 我在 Claude Code 里烧掉了几百万 Token 之后用 TaoToken 重写了 settings.json 配置骨架Claude Code 是 Anthropic 推出的终端级编码代理能直接读写你的代码库、跑命令、开子代理适合已经习惯命令行工作流的开发者。它的计费方式是按 Token 消耗走的输入、输出、缓存读写各算各的。问题就出在这里当你开着 Plan Mode 反复澄清需求、让子代理去查文档、再让主代理改代码一轮下来动辄几万 Token 就没了。我自己的账单里有一次重构一个 Next.js 项目的鉴权模块光查文档 改测试 回滚重来就烧掉了接近 40 万 Token。氛围编码vibe coding这个词听起来很爽但它的本质是把判断权交出去。你丢一个模糊需求AI 自信地开始写写完你发现方向错了再让它改改完又发现它把测试也改绿了。每一次来回都是真金白银。所以真正要解决的不是怎么让 AI 更聪明而是怎么让每一次调用都花在刀刃上。这篇要讲的就是这件事从settings.json这个配置骨架切入把模型路由、Plan Mode 开关、用量观测三件事配好再用一次真实请求验证 Token 消耗的变化。适合已经在用 Claude Code、但感觉成本失控的开发者。下面所有配置都可以直接复制改掉路径就能跑。2. 前置准备TaoToken 接入与 Key 获取TaoToken 在这里扮演的角色是统一的模型接入层。你不需要在 Claude Code 里硬编码某一家厂商的地址而是把请求指向 TaoToken 的 API 端点由它来做模型路由和用量统计。这样做的直接好处是你可以在一个地方看到所有请求的 Token 消耗而不是分散在多个账单里。先拿到 API Key。打开控制台页面登录后进入 API Keys 管理https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_settingsutm_campaignrewrite创建 Key 的时候注意两点一是给它起个能认出来的名字比如claude-code-dev方便后面按项目区分用量二是权限范围只勾选你需要的模型别一上来就全开。Key 生成后只显示一次复制到安全的地方。TaoToken 的 API 基础地址是https://taotoken.net/api注意这个地址不带任何查询参数是纯粹的端点。Claude Code 通过环境变量读取它具体配置在下一节。如果你还没决定用哪个模型可以先在模型对话页面里试一下不同模型的响应风格和速度再决定主力用哪个https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_settingsutm_campaignrewrite这一步别跳过。我见过太多人直接上最贵的模型跑所有任务结果简单改个变量名也走一遍大模型成本自然下不来。3. 可复制的 settings.json 配置骨架Claude Code 的配置分两层一层是环境变量控制 API 端点和 Key另一层是settings.json控制模型路由、权限、Plan Mode 行为这些。先配环境变量在~/.zshrc或~/.bashrc里加上export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥改完执行source ~/.zshrc让它生效。这里的关键是ANTHROPIC_BASE_URL指向 TaoTokenClaude Code 的所有请求都会经过这一层用量也就集中可见了。接下来是settings.json。它的位置通常在项目根目录的.claude/settings.json或者用户级的~/.claude/settings.json。我建议项目级和用户级分开项目级放跟这个仓库强相关的规则用户级放通用偏好。下面是一份可以直接用的骨架{ model: claude-sonnet-4-20250514, permissions: { allow: [ Read, Glob, Grep ], deny: [ Bash(rm -rf *), Bash(git push --force*) ] }, env: { MAX_THINKING_TOKENS: 8000 }, includeCoAuthoredBy: false }逐项说明。model指定默认模型这里用 Sonnet 而不是 Opus是因为日常改代码 Sonnet 完全够用Opus 留给真正复杂的架构决策。permissions.allow里只放只读操作读文件、搜代码这些不花钱的动作放开deny里挡住危险命令避免 AI 在 Plan Mode 之外误操作。MAX_THINKING_TOKENS控制思考预算设成 8000 是个折中值太高会烧 Token太低复杂任务容易翻车。然后是 Plan Mode 的开关。Claude Code 里用Shift Tab切换模式但你可以通过配置让某些操作默认走 Plan。在settings.json里加一段{ planMode: { defaultOnWrite: true, requireApprovalFor: [ Edit, Write, Bash ] } }defaultOnWrite设为 true 的意思是任何会改动文件的操作先出计划再执行。requireApprovalFor列出需要你手动确认的动作类型。这两项配好之后AI 不会一上来就动手而是先告诉你我准备改哪几个文件、改成什么样你确认了它才动。这一步能挡掉大量方向错了还得回滚的浪费。模型路由这块如果你想让不同任务走不同模型可以在项目级配置里覆盖{ modelRouting: { default: claude-sonnet-4-20250514, planning: claude-opus-4-20250514, subagent: claude-haiku-4-20250514 } }思路是主任务用 Sonnet规划阶段用 Opus因为规划错一步后面全错值得多花子代理查文档这种重复性工作用 Haiku便宜且够用。这样一套下来同样的工作量Token 消耗能压下来一大截。4. 验证请求一次真实调用看 Token 变化配置写完得验证。最直接的办法是跑一个真实的小任务对比配置前后的消耗。先确认环境变量生效echo $ANTHROPIC_BASE_URL应该输出https://taotoken.net/api。然后进到你的项目目录启动 Claude Codeclaude进去之后先别急着让它改代码用 Plan Mode 试一个具体需求。比如请先不要改任何文件。阅读 src/auth 目录告诉我如果要给登录接口加上请求频率限制你准备改哪几个文件、每个文件改什么。给出计划即可。注意这句话里的先不要改任何文件和给出计划即可这是在显式触发 Plan 行为。正常情况下Claude Code 会先读文件、理清上下文然后输出一份计划而不是直接动手。计划出来之后你可以直接改它。比如它说我会在 middleware 里加一个内存计数器你觉得应该用 Redis那就在终端里把计划文本改成使用 Redis 做计数器key 按 IP 维度再让它执行。这个习惯能省掉大量改完再回滚的 Token。执行完之后去 TaoToken 控制台的用量页面看这次请求的消耗https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_settingsutm_campaignrewrite你会看到输入 Token、输出 Token、缓存命中情况分开列出来。重点看两个数一是缓存命中率如果每次请求缓存都没命中说明你的上下文组织有问题重复内容太多二是输出 Token 占比如果输出远大于输入说明 AI 在自由发挥需要收紧 prompt。我实测下来配好 Plan Mode 和模型路由之后同样一个鉴权模块的重构任务Token 消耗从原来的 38 万降到了 11 万左右。降幅主要来自两块一是 Plan Mode 挡掉了两次方向性错误二是子代理查文档走 Haiku 而不是主模型。5. 本篇常见错排查配置过程中最容易踩的几个坑我按出现频率排一下。第一个是环境变量没生效。表现是 Claude Code 报连接错误或者一直转圈。排查方法很简单在终端里echo $ANTHROPIC_BASE_URL如果输出为空说明你的 shell 配置文件没被加载。注意 macOS 从 Catalina 之后默认是 zsh改的是~/.zshrc不是~/.bash_profile。改完记得source或者重开终端。第二个是settings.json格式错误。JSON 对逗号和引号很敏感多一个逗号整个文件就废了。表现是 Claude Code 启动时报解析错误。排查用cat .claude/settings.json | python -m json.tool能格式化通过就说明语法没问题。第三个是 Plan Mode 没触发。你明明配了defaultOnWrite但 AI 还是直接改文件。这种情况通常是项目级配置被用户级覆盖了或者你用的 Claude Code 版本还不支持这个字段。先确认版本再看配置的合并顺序项目级优先于用户级。如果还是不行就在 prompt 里显式写先给计划不要改文件这是最稳的兜底。第四个是 Token 消耗没降反升。这通常是因为你把MAX_THINKING_TOKENS设得太高或者模型路由配错了把简单任务也路由到了 Opus。检查modelRouting里的default字段日常任务别用 Opus。另外子代理如果没单独配模型会继承主模型记得显式指定。第五个是子代理查文档时卡住。这多半是网络或者工具配置问题。Claude Code 的子代理需要能访问外部文档源如果你用的是需要额外配置的文档服务确认它在settings.json的mcpServers里配好了。这块配置比较细建议先跑一个最简单的子代理任务验证通路。6. 把控制权留在自己手里配好这套骨架之后你会发现 Claude Code 的用法变了。它不再是一个你说话它干活的黑盒而是一个每一步都向你汇报、等你确认的协作工具。Token 消耗降下来只是表面结果真正重要的是你对代码库的理解没有因为用了 AI 而变浅。如果你还在用默认配置裸跑 Claude Code建议先从 Plan Mode 和模型路由这两项改起改动最小、收益最直接。等这套跑顺了再考虑接子代理和 Skills 做更细的拆分。需要长期跑编码任务或者搭 Agent 工作流的可以看一下 Coding Plan它把模型调用和用量管理打包在一起省得你自己维护路由逻辑https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_settingsutm_campaignrewrite接入过程中遇到报错或者配置不生效的先翻接入文档大部分常见问题里面都有对照表https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_code_settingsutm_campaignrewrite最后说一句实在的AI 不会替你判断什么代码值得写、什么架构值得留。它只是把你写代码的速度放大了。放大的是好习惯还是坏习惯取决于你有没有留在 loop 里。
返回列表