Claude Code

成本优化

Claude Code 成本控制工作流:上下文、模型、缓存、MCP、Hooks、子代理和 Passion8 网关观测。

Claude Code 成本失控通常不是单次回答贵,而是上下文越来越厚、任务边界模糊、反复 miss 缓存。先管住工作流,再看缓存字段。

只记一条:新任务先 /clear,大任务先 /plan,长会话在自然断点 /compact。不要把早上的报错带到晚上的部署任务里。

#成本来源

来源为什么涨控制方式
输入 token历史、文件、日志、工具输出进入上下文/clear、精准 @文件、少贴长日志
输出 token长解释、重复总结、无约束代码生成要求短结论、表格、diff 或只给方案
工具输出Bash、MCP、浏览器、数据库吐大量内容分页、过滤、限制输出
缓存写入第一次处理稳定前缀更贵稳定内容少变
缓存 miss模型、effort、MCP 工具定义变化开局定配置,中途少切

上下文占用怎么形成,看 上下文窗口。每个内置工具的输出和权限行为,看 工具参考

#推荐工作流

1

开新任务

/clear

然后用一句话讲清目标、范围和不动的边界。

2

复杂任务先计划

先只读相关文件,列出最小改动方案和验证命令,不要修改文件。
3

执行时控制输出

按方案修改。最终只汇报改了哪些文件、跑了什么验证、剩余风险。
4

结束时整理

任务完成后再 /compact,或换任务直接 /clear

#/clear、/compact、/context

命令什么时候用成本影响
/clear换任务、换模块、旧上下文无关最干净,避免旧历史持续计费
/compact同一任务很长但还要继续摘要会有一次成本,后续上下文变短
/context不知道 token 花在哪里先看占用再决定清理
/rewind想放弃某段错误方向回到旧前缀,通常比 compact 更适合回退

#本地 UI 不一定花 token

功能成本判断
/statusline 脚本刷新本地执行,不调用模型,不花 token
/usage/cost查看用量,不改变 prompt
/theme终端主题,不改变模型请求
outputStyle生效后改变 system prompt,首轮更贵
OTel metrics/logs主要是本机和观测系统成本,不直接增加模型 token

如果你只是想随时看上下文和成本,优先用 状态栏,不要让 Claude 每隔几轮“总结一下当前成本”。

#模型与 effort

模型和 effort 都是缓存 key 的一部分。中途切换会让下一轮全量 miss。

建议:

  • 开局用 /model 定好模型
  • 开局用 /effort 定好强度
  • 不要在长会话中反复 Sonnet/Opus 切换
  • 需要强模型审查时,尽量放在任务末尾独立跑

#缓存策略

详细机制见 Prompt 缓存。这里给使用判断:

场景建议
连续 5 分钟内反复改同一模块默认缓存足够
大上下文,中间经常停 10 到 50 分钟API/provider 可考虑 ENABLE_PROMPT_CACHING_1H=1
Claude subscription 且未超计划额度Claude Code 会自动请求 1 小时 TTL
使用 Passion8 或自定义网关看 usage 字段是否透传 cache 读写
缓存字段一直为 0检查 prompt 太短、网关、模型、effort、MCP

API 价格倍率:

类型价格倍率
5 分钟缓存写入约 1.25 倍输入价
1 小时缓存写入约 2 倍输入价
缓存读取约 0.1 倍输入价

#记忆与规则的成本

CLAUDE.md 每次启动都会进入上下文。它能省重复解释,但写太长也会增加固定输入。

推荐:

  • CLAUDE.md 控制在 200 行以内
  • 长流程写成 skill 或 custom command
  • 模块规则放 .claude/rules/ 并用 paths
  • 临时报错、今天的 TODO 不要写进长期记忆

#MCP 成本

MCP 的成本来自两部分:

  1. 工具定义进入上下文
  2. 工具返回内容进入上下文

优化方式:

  • 只连接本任务需要的 server
  • 对大工具集开启 tool search,前提是 provider 或网关支持
  • 数据库查询必须 limit
  • 浏览器工具只截取关键 DOM 或文本
  • 调高 MAX_MCP_OUTPUT_TOKENS 前先让工具过滤

自定义 ANTHROPIC_BASE_URL 时,tool search 可能默认关闭。Passion8 是否支持取决于网关是否转发相关字段。

#子代理成本

子代理 适合隔离大规模调研,因为主会话只接收最终结果,不会把每个文件读取都塞进主上下文。但子代理不是免费:

场景判断
大仓库调研、方案对比、并行审查值得用子代理
一个小文件的小修改不必开子代理
子代理需要反复多轮注意它有自己的缓存和 5 分钟 TTL
/fork 复制当前上下文更容易复用父会话缓存,但上下文也更重
并行改同一仓库Worktrees 隔离文件改动

#Hooks 帮你省返工

Hook 不一定省本轮 token,但能减少返工:

Hook价值
PostToolUse 轻量格式化少把格式问题交给模型反复修
PreToolUse 阻止危险命令避免跑偏造成大回滚
Stop 记录摘要长任务结束后留审计记录
UserPromptSubmit 检查敏感信息防止 Key 和隐私进入上下文

Hook 要短。每次编辑后跑完整构建可能拖慢工作流,更适合在任务结束时运行。

#反例

  • 一个会话从安装、写代码、闲聊到部署全混在一起
  • 每次贴完整日志,不截关键错误
  • 要求“看看整个项目”,但不说目标
  • 中途频繁改范围
  • 一边连接大量 MCP,一边不用这些工具
  • 把密钥、临时报错、待办都写进 CLAUDE.md

遇到这些情况,先 /clear,把任务缩小重说。

#官方参考

Support / 支持

Need help? / 需要帮助?

接入、计费与模型异常可邮件联系;服务可用性以状态页为准。For setup, billing, or model issues, email us. Check the status page for uptime.

也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right