简短答案
Claude Code 的 token 消耗不只来自你看到的回复。它还包括读取的文件、项目说明、对话历史、工具结果、MCP 工具描述、思考过程、输出内容和压缩摘要。 消耗高通常不是单一原因,而是上下文太大、任务描述太宽、规则文件太长、MCP server 太多、反复返工或模型选择过重共同造成的。 降低成本的核心方法是让 Claude Code 每次只处理当前任务所需的上下文,并让项目规则更短、更具体、更稳定。什么时候需要优化
- Claude Code 每次回复前都会读取大量文件
- 一个简单修改变成长时间探索
CLAUDE.md或规则文件越来越长- MCP server 很多,但实际只用其中一两个
- 频繁让 Claude Code 重做同一个方向
- 团队想控制 API token 预算
核心概念
| 概念 | 说明 |
|---|---|
| Input tokens | 用户消息、上下文、文件内容、工具结果等输入 |
| Output tokens | 模型生成的回复、代码和思考输出 |
| Context window | 当前会话能容纳的信息总量 |
| Prompt caching | 对重复上下文进行缓存,降低部分重复成本 |
| Compaction | 会话接近上下文上限时对历史进行摘要 |
| MCP overhead | MCP 工具定义和工具结果也可能进入上下文 |
推荐做法
从任务范围开始控制:- 一次只给 Claude Code 一个明确目标。
- 先让它阅读相关目录,而不是“优化整个项目”。
- 切换到无关任务时使用
/clear开新上下文。 - 把
CLAUDE.md保持为短规则,不要写成长篇手册。 - 关闭暂时不用的 MCP server。
- 对简单任务使用较轻模型,对复杂架构或长推理任务再使用更强模型。
- 让 Claude Code 每次修改后运行最小相关检查,减少返工。
常见误区
- 只看最终回复长度,忽略文件读取和工具结果也会消耗 token。
- 把所有项目知识都塞进
CLAUDE.md,导致每次会话都加载大量上下文。 - 开启很多 MCP server,却不确认它们是否真的用于当前任务。
- 用“重构整个仓库”这类宽泛提示启动任务。
- 以为换 API gateway 就会自动降低工具自身的上下文消耗。
关于 LLMEasy
LLMEasy 可以帮助你集中查看 API Key、余额和用量记录。它能让你更容易观察模型请求层面的消耗。 但 Claude Code 的上下文选择、文件读取、MCP 配置、CLAUDE.md 大小和权限策略仍由 Claude Code 与你的项目配置决定。降低成本仍然要从工作流和上下文管理入手。
Related docs
- CLAUDE.md 是什么?应该怎么写?
- Claude Code 是什么?它是如何工作的?
- 如何在 Claude Code 中配置 API Key 和 Base URL?
- Claude Code 接入 LLMEasy 指南

