Vibe Coding 的每一次操作,本质上都会发起一个新的 API 请求。模型不会在回合之间保留隐式状态——为了让它「记得」刚才发生了什么,每次请求都需要重新携带对话历史、工具定义和已加载到会话中的上下文。

每回合的固定开销
固定开销包括基础系统提示、工具定义和行为指令。它们会随每次请求进入上下文,通常无法由用户直接移除。每增加一个工具、一个 MCP 服务或一组行为规则,都可能让后续每个回合承担更多输入 Token。无论当前任务只是改一个变量名,还是重构整个模块,这部分费用都可能照常发生。
Skills 与项目指令文件
Skills 和 CLAUDE.md 等项目指令文件为模型提供特定领域知识与项目约束。常见问题是:开发者会不断添加规则,却很少清理。原稿估算:把大量规则全部放在项目根目录让其持续注入,与把规则拆到 .claude/rules/ 并按需加载相比,成本可能相差约 10 倍。
- 只保留真正长期有效的项目约束
- 将特定目录或特定任务的规则改为按需加载
- 定期删除重复、过时和互相冲突的说明

MCP 服务器的工具架构
每个已连接的 MCP 服务器都会暴露一组工具定义,系统需要把这些工具序列化为 JSON Schema。原稿估算:10 个 MCP 服务器、合计 50 个工具,仅工具架构定义每回合就可能消耗约几万 Token。
连接一旦建立往往会持续保留,因此「以后可能会用到」的 MCP,也可能长期出现在并不需要它的会话里。建议按任务连接 MCP,只保留当前工作真正需要的工具。
工具调用:账单两端都在增长
输入端:文件读取、Shell 命令、搜索结果等工具输出会被写入对话历史。企业级统计中,工具结果约占输入支出的 23%。
输出端:文件写入、Shell 命令和代码编辑等工具调用需要模型生成结构化参数,约占输出开销的 24%。

在典型的智能体会话中,与工具相关的 Token 加起来,往往会成为最大的类别。
对话历史:真正膨胀的是工具结果重放
先前助手上下文成本的 78% 来自工具使用结果的重放,而不是普通对话文本。最容易让上下文迅速变大的内容包括:大段文件读取结果、冗长的搜索与日志输出、重复执行的 Shell 命令结果,以及已经失去价值的中间信息。一段庞大的工具输出不只消耗一次 Token——只要它继续留在有效上下文中,后续每个回合都可能再次为它付费。
推理过程也属于输出成本
推理 Token 不一定完整显示给用户,但依然属于输出侧的计算与计费开销。原稿提到,Claude Code 曾在 Opus 上默认使用较高的推理强度,后来基于 SWE-bench 的相关结果显示:中等推理强度比高推理强度少使用约 76% 的输出 Token,且任务完成率接近。推理 Token 最高可能占总输出支出的 40% 左右。
建议按任务难度匹配:格式化、代码检查、样板生成不需要最高推理强度;架构设计、疑难调试、复杂重构才需要更高推理强度。
模型选择是最后的价格放大器
前面的所有 Token,最终都要乘以模型单价。以 Claude 为例,Sonnet 的单价约为 Opus 的 0.6 倍,在许多常规开发任务中两者表现可能接近。建议的模型分工:
- 常规编辑、检索、格式化:优先使用成本更低的模型
- 复杂推理和关键决策:再切换到能力更强的模型
五条优化建议
- 缩短固定提示:删除重复、过时和无关的行为规则
- 按需加载 Skills 与项目规则:避免所有知识始终注入
- 精简 MCP 连接:只暴露当前任务需要的工具
- 控制工具输出:少读无关文件,限制日志和搜索结果范围
- 匹配推理强度与模型:把昂贵能力留给真正复杂的任务
Vibe Coding 的 Token 主要消耗在让模型持续理解环境和历史上,而不只是消耗在最终答案上。会话越长、工具越多、输出越大,这笔隐形成本就越明显。