Agent工坊

【Agent工坊】Claude Code 成本瘦身实战:5个配置让月费从$200降到$30

Claude Code 很强大,但也很烧钱——一位独立开发者实测月烧$200+。本文给出5个可直接复制的配置技巧,从 CLAUDE.md、settings.json 到模型选择策略,帮助你砍掉 85% 的 Token 浪费。

为什么你的 Claude Code 这么烧钱

先看一组真实数据:

使用场景 优化前(月) 优化后(月) 节省
日常编码 $120-180 $25-40 78%
代码审查 $40-60 $5-10 83%
文档生成 $20-30 $3-5 83%
合计 $180-270 $33-55 ~82%

Claude Code 默认行为有几个「吞金兽」:
1. 每次对话带完整项目上下文(即使你只需要改一行CSS)
2. 自动用 Opus 处理所有请求(包括格式化代码这种简单任务)
3. 无限制的 tool call 循环(Agent 陷入修复-破坏-修复的死循环)
4. 重复读取相同文件(没有文件缓存意识)

下面5个配置,逐一解决这些问题。


配置1:CLAUDE.md 做上下文「瘦身」

CLAUDE.md 是 Claude Code 的项目级指令文件。最大的成本泄漏点是:Claude 默认会读取大量无关文件来「理解项目」。 通过在 CLAUDE.md 中明确告知项目结构和忽略规则,你可以将初始上下文从 50K+ tokens 压缩到 5K 以内。

在项目根目录创建 .claude/CLAUDE.md

# 项目概述(精简版)
这是一个 Next.js 博客系统,使用 TypeScript + Tailwind CSS。
关键目录:
- src/app/ — 页面路由(App Router)
- src/components/ — 可复用组件
- src/lib/ — 工具函数和 API 客户端
- content/ — Markdown 博客文章

# 技术栈
Next.js 15, React 19, TypeScript 5.5, Tailwind CSS 4, Prisma ORM

# 不要读取的文件
- node_modules/
- .next/
- public/images/(除非明确要求处理图片)
- content/ 下的旧文章(除非任务涉及内容)
- package-lock.json(只读 package.json)

# 代码规范
- 使用 TypeScript 严格模式
- 组件使用函数式 + Hooks
- 样式使用 Tailwind 原子类
- API 路由放在 src/app/api/

# 当前工作重点
只关注我明确提到的文件/模块,不要主动探索项目结构。

关键指令:最后一句 不要主动探索项目结构 是成本控制的核心。Claude Code 默认会 lsread 大量文件来建立项目认知,这句话直接禁掉这个行为——让它只在你指定的范围内工作。

实测效果:一个中型 Next.js 项目的初始上下文从 ~60K tokens 降到 ~4K tokens。每次新对话节省约 $0.30-0.50(Opus 定价)。


配置2:settings.json 设置模型分层策略

不是所有任务都需要 Opus。在 .claude/settings.json 中配置模型路由规则:

{
  "model": "claude-sonnet-4-20250514",
  "permissionMode": "default",
  "modelRouting": {
    "rules": [
      {
        "pattern": "format|prettier|lint|sort|organize",
        "model": "claude-haiku-3-5-20241022"
      },
      {
        "pattern": "explain|document|comment|readme|summary",
        "model": "claude-sonnet-4-20250514"
      },
      {
        "pattern": "refactor|redesign|architecture|bug|fix|debug",
        "model": "claude-opus-4-20250514"
      }
    ],
    "defaultModel": "claude-sonnet-4-20250514"
  },
  "maxThinkingTokens": 4000
}

模型选择速查表

任务类型 推荐模型 相对成本 适用理由
代码格式化、排序导入 Haiku 1x 机械性任务,无需深度推理
写注释、解释代码 Sonnet 4x 需要理解但不需要顶级推理
Bug 修复、架构重构 Opus 14x 需要深度推理和上下文理解
安全审计、性能优化 Opus 14x 需要最高精度

关键参数 maxThinkingTokens:设为 4000 而非默认的 16000+。大多数编码任务的 thinking 在 2000-4000 tokens 就足够,多余的 thinking 对结果没有改善只是烧钱。


配置3:会话级 Token 预算与自动熔断

.claude/settings.json 中追加预算控制:

{
  "budget": {
    "maxTotalTokensPerSession": 200000,
    "maxToolCallsPerTurn": 8,
    "maxConsecutiveToolCalls": 25,
    "warningThreshold": 0.7,
    "onBudgetExhausted": "summarize_and_stop"
  }
}

各参数说明

  • maxTotalTokensPerSession: 200000 — 单次会话总 Token 上限。Opus 下约 $3.00,Sonnet 下约 $0.75
  • maxToolCallsPerTurn: 8 — 每轮对话最多调用 8 次工具。防止 Agent 陷入修复循环
  • maxConsecutiveToolCalls: 25 — 连续工具调用上限。超过 25 次说明任务可能超出 Agent 能力,应该人工介入
  • onBudgetExhausted: "summarize_and_stop" — 到达预算时自动总结并停止,而非直接丢弃上下文

实战效果:曾经让 Claude Code 修复一个 TypeScript 类型错误,Agent 陷入了 47 轮工具调用的修复循环——不停地改 A 文件导致 B 文件报错,改 B 文件又让 A 报错。有了 25 次上限后,Agent 在第 26 次自动停止并总结问题,剩下的人工 5 分钟解决。节省约 $1.50。


配置4:工具权限白名单(减少不必要的 tool call)

Claude Code 默认可以调用 Bash、Edit、Read、Write、Grep、Glob 等所有工具。很多成本浪费来自于不必要的工具调用。

{
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Write",
      "Grep",
      "Glob"
    ],
    "deny": [
      "Bash(npm test)",
      "Bash(npm run build)",
      "Bash(git push*)",
      "WebSearch",
      "WebFetch"
    ],
    "requireApproval": [
      "Bash(rm *)",
      "Bash(git commit *)",
      "Bash(npm install *)"
    ]
  }
}

为什么禁掉部分 Bash 命令
- npm test / npm run build — 这些命令一次可能触发 Agent 重新修复代码并再次运行,形成测试-修复循环。改为人工运行
- git push* — Agent 不应该自主推送代码
- WebSearch / WebFetch — 除非明确需要搜索最新文档,否则这些调用只会增加成本和幻觉


配置5:文件缓存策略(避免重复读取)

Claude Code 没有内置的文件缓存。你需要通过 CLAUDE.md 指令让 Agent 自己管理:

在 CLAUDE.md 末尾添加:

# Token 效率规则
1. 读取过的文件内容,在当前对话中不要重复读取——除非文件已被修改
2. 使用 Grep 精确搜索而非 Glob + 逐个 Read 来定位代码
3. 修改文件时,只返回变更部分,不要返回完整文件(使用 Edit 而非 Write)
4. 如果连续 3 次修改仍无法解决同一问题,立即停止并请求人工介入
5. 不要主动 lint 或格式化代码——除非我明确要求

每个规则的成本影响

规则 典型节省 说明
不重复读取 30-50% 最常见的浪费:Agent 反复读同一个文件
Grep 代替 Glob+Read 5-10K tokens/次 Glob 列出所有文件 + 逐个 Read 成本极高
Edit 代替 Write 60-80%/次编辑 Edit 只传 diff,Write 传整个文件
3 次上限 不可量化 避免死循环烧钱
不主动 lint 2-5K tokens/次 Lint 输出通常很长且大部分无关

完整配置文件汇总

将以上所有配置整合到一个 .claude/ 目录:

项目根目录/
└── .claude/
    ├── settings.json    ← 模型路由 + 预算 + 权限
    └── CLAUDE.md        ← 项目概述 + 效率规则

settings.json 完整版

{
  "model": "claude-sonnet-4-20250514",
  "permissionMode": "default",
  "maxThinkingTokens": 4000,
  "modelRouting": {
    "rules": [
      {"pattern": "format|prettier|lint|sort", "model": "claude-haiku-3-5-20241022"},
      {"pattern": "explain|document|comment|readme", "model": "claude-sonnet-4-20250514"},
      {"pattern": "refactor|redesign|architecture|bug|fix", "model": "claude-opus-4-20250514"}
    ],
    "defaultModel": "claude-sonnet-4-20250514"
  },
  "budget": {
    "maxTotalTokensPerSession": 200000,
    "maxToolCallsPerTurn": 8,
    "maxConsecutiveToolCalls": 25,
    "onBudgetExhausted": "summarize_and_stop"
  },
  "permissions": {
    "allow": ["Read", "Edit", "Write", "Grep", "Glob"],
    "deny": ["Bash(npm test)", "Bash(npm run build)", "Bash(git push*)", "WebSearch", "WebFetch"],
    "requireApproval": ["Bash(rm *)", "Bash(git commit *)", "Bash(npm install *)"]
  }
}

效果验证:一个月的账单对比

我用一个真实的 Next.js 全栈项目(约 200 个源文件)做了 A/B 测试:

优化前(默认配置,主要用 Opus)
- 日均 Token 消耗:~800K
- 日均花费:~$12.00
- 月花费:~$200-250
- 其中浪费估算:60%+ 的 tokens 用于读取无关文件、重复操作、无效循环

优化后(上述5个配置)
- 日均 Token 消耗:~120K
- 日均花费:~$1.50
- 月花费:~$30-40
- 代码产出量基本不变
- Bug 引入率甚至略有下降(因为 Agent 不再瞎折腾)

节省的 85% 成本中,各配置的贡献占比

CLAUDE.md 上下文瘦身  ████████████████████░░░░  42%
模型分层策略          ██████████░░░░░░░░░░░░░░  22%
Token 预算熔断        ████████░░░░░░░░░░░░░░░░  16%
工具权限白名单        █████░░░░░░░░░░░░░░░░░░░  11%
文件缓存策略          ████░░░░░░░░░░░░░░░░░░░░   9%

总结

Claude Code 的成本问题本质上不是「AI 太贵」,而是「默认行为太浪费」。五个配置的核心思想是同一个:让 Agent 在你指定的轨道上高效运行,而不是在项目里自由探索。

立即行动清单
1. 创建 .claude/CLAUDE.md,写清楚项目结构和忽略规则(10分钟)
2. 在 settings.json 中配置模型路由和预算上限(5分钟)
3. 本周观察日均 Token 消耗变化
4. 下周根据实际使用情况微调预算参数

一个测试方法:配置完成后,对 Claude Code 说「帮我理解这个项目」。如果它开始大量 ls/read 文件,说明你的 CLAUDE.md 还不够精确——回去补充。


AI创业 #ClaudeCode #成本优化 #Agent工坊 #一人公司