很多人遇到 Claude Code 用量见底时,第一反应是换套餐、换模型,或者要求它“回答短一点”。但这三件事通常没有碰到真正的消耗结构:一段冗长的 git diff、一轮又一轮的全仓搜索、每次都带上的无关规则,以及写给人看的客套说明,都会进入模型的上下文或输出。
Token 优化不是单一开关,而是一条从可见性、输入、输出到检索路径的工程链路。本文聚焦四个能直接动手验证的模块:用量监控、命令输出压缩、回答压缩与代码图谱定位。项目方给出的节省比例只适合作为评估方向,实际效果仍取决于任务类型、上下文长度与团队工作流。
先给结论:不要一口气装齐所有工具。先用监控确定瓶颈;CLI 输出特别长再上 rtk,交付文本特别啰嗦再试 Caveman,大型仓库里反复追调用链才考虑 CodeGraph。它们不是同一种“省 token 插件”,而是在不同环节减少无效信息。
一张图看懂:token 到底花在哪
模型调用里最容易被忽略的是输入。提示词、历史对话、系统规则、加载的文件、工具返回内容,都会作为输入反复参与后续轮次;模型最终生成的解释、计划和总结,则是输出。对 coding agent 来说,输入往往还包含大段命令行输出。
| 环节 | 典型浪费 | 对应模块 | 优先级 |
|---|---|---|---|
| 看不见消耗 | 到限额才发现异常 | Claude Code Usage Monitor | 先做 |
| 工具输出进入上下文 | git log、测试日志、rg 结果太长 | rtk | 高 |
| 模型输出 | 重复解释、客套话、过长总结 | Caveman | 按团队偏好 |
| 找代码的过程 | 搜索—读文件—发现不对—再搜索 | CodeGraph | 大仓库优先 |
| 长会话与常驻规则 | 历史和无关文档反复随请求发送 | Claude Code 原生命令与设置 | 所有人都该做 |
这里有一个容易混淆的点:rtk 统计的“输入/输出”是 shell 命令压缩前后的 stdout,不是模型账单上的 input/output tokens。它能减少送入模型的命令输出,但并不意味着总费用会按同样比例下降;提示词、历史和模型输出仍然存在。rtk 的官方说明也明确区分了这两件事。
模块一:先把用量看见——Claude Code Usage Monitor
这不是 Anthropic 官方客户端的一部分,而是开源的本地 companion:它读取本机 Claude Code 数据,提供终端监控、预测、导出和状态栏接入。最新版还会优先使用 Claude Code statusline 传来的官方 rate_limits;拿不到时会把本地估算明确标记出来。也就是说,它适合判断“该不该收手”,不应替代你的官方账单数据。
- 官方 Claude Code 可观测性文档:Monitoring usage
- 开源地址与使用文档:Maciek-roboblog/Claude-Code-Usage-Monitor
最小使用方式如下。项目 README 推荐使用 uv 进行隔离安装:
uv tool install claude-monitor
# 终端中持续显示当前使用情况
claude-monitor
# 适合脚本或状态栏:输出一次 JSON 快照
claude-monitor --once --output json
如果要接入 Claude Code 的 statusline,按项目文档运行 claude-monitor --statusline,再把它配置为 statusline hook。它的价值不在于“替你省 token”,而在于把原本事后才知道的消耗,变成一个可以在任务进行中做取舍的信号。
模块二:少把终端废话塞进上下文——rtk
rtk(Rust Token Killer)是一个 Rust 编写的 CLI 代理。它会在 Agent 读取命令输出前压缩结果:例如把 git log 收敛到 hash、作者和标题;将测试输出聚焦在失败项;将长搜索结果按文件归组。对“工具调用很多、每次返回很多文本”的任务,这通常是最先值得试的一层。
- 官方文档:rtk 官方站
- 开源地址:rtk-ai/rtk
最小验证不要直接改全局 Agent 配置。先在一个临时任务里对比原命令和代理命令:
# 按 rtk 官方安装页完成安装后
rtk git log --oneline -50
rtk rg "createClient" apps/
rtk npm test
# 查看已记录的压缩收益
rtk gain --daily
原文提到 rtk 会写入 ~/.claude/CLAUDE.md 并引用生成的 RTK.md,让 Claude Code 知道哪些命令应通过它执行。接入前最好先审阅这些规则:压缩适合探索和定位,但排障时可能恰好需要被折叠的完整日志。一个稳妥的团队策略是:默认压缩,遇到失败再显式请求原始输出。
模块三:让模型少说,不是让它少想——Caveman
Caveman 处理的是输出侧。它把回答改成短句、要点、路径和命令优先的形式,尽量删除礼貌用语、重复背景和过渡句,同时声明不会改变代码、命令与错误文本。它的 README 标示为支持 Claude Code、Codex 等多种 agent 的 skill/plugin;“可节省多少”来自项目自己的 benchmark,应视为方向性指标,而不是对任意任务的保证。
- Claude Code 插件机制官方文档:Create plugins
- 开源地址与安装说明:JuliusBrussee/caveman
基础接入可按项目的安装页完成,再在 Claude Code 内启用:
/caveman
# 希望恢复完整叙述时,在提示词开头写:
normal mode
原文指出,该插件通过 SessionStart 和 UserPromptSubmit hooks 维持模式,因此不必每轮重复执行命令。它很适合代码审查、故障定位、改动汇总;但面向非技术同事的方案说明、需要教育性的架构讨论,反而不宜强制短输出。团队如果把它设为默认,应保留清晰的退出方式。
模块四:别让 Agent 从文件系统里猜答案——CodeGraph
CodeGraph 的方法和前两个不同:它先为仓库建立本地语义图谱,将函数、类、导入、调用链等关系变成可查询的结构。Agent 通过 MCP 先问“谁调用它”“改动影响哪些路径”,再读取少量目标文件,减少的是反复 grep 和误读文件的探索成本。
- 使用与 MCP 接入文档:CodeGraph Documentation
- 开源地址:colbymchenry/codegraph
官方 README 给出的最短接入路径是三步:安装 CLI、连接 agent、为当前项目建图。
# macOS / Linux 安装脚本;执行前请先审阅远程脚本内容
curl -fsSL https://raw.githubusercontent.com/colbymchenry/codegraph/main/install.sh | sh
# 自动配置 Claude Code、Codex CLI、Cursor 等已安装 agent 的 MCP 连接
codegraph install
# 在目标仓库根目录执行,生成该仓库的图谱
codegraph init
这里的边界也很明确:codegraph install 只负责把 MCP server 接到 agent,codegraph init 才会建立项目索引。它更适合跨层调用多、多人维护、历史包袱重的仓库;一个很小的项目直接用 rg 和编辑器跳转,未必值得引入常驻索引和额外运维面。
不装插件也能立刻做的两件事
这些工具之外,参考文章中最值得保留的是两条原生工作习惯。第一,定期执行 Claude Code 的 /context,检查会话里到底装进了什么;第二,任务切换或路线改变时用 /clear 开一个干净会话。Claude Code 的成本管理文档与交互模式文档都值得和团队规则一起阅读。
更关键的是审计 CLAUDE.md:把“每次会话都加载的 @ 引用”改成“在某类任务发生时再读取的文档”。例如:
# 不建议:每次启动都装入订阅系统细节
@docs/billing-and-subscriptions.md
# 更稳:只有任务相关时才按需读取
当问题涉及订阅、退款或账单状态时,先读取 docs/billing-and-subscriptions.md。
这不是在减少知识,而是在把常驻知识改成可检索知识。尤其是团队共享配置,每一次无关加载都会被每位成员的每轮会话放大。
从哪一层开始:一份落地清单
| 你的症状 | 先做什么 | 暂时不要做什么 |
|---|---|---|
| 经常快到额度才察觉 | 安装 Monitor,先观察一周 | 用估算值替代官方账单 |
| 测试、日志、搜索结果很长 | 小范围试用 rtk 并保留原始日志通道 | 把压缩率当成实际省钱比例 |
| Agent 每次都写很长的说明 | 在个人任务试 Caveman | 在所有面向人的文档任务强制启用 |
| 反复追跨文件调用链 | 在一个大仓库评估 CodeGraph | 为小仓库引入复杂索引 |
| 每个长会话都越来越慢 | /context、/clear 与 CLAUDE.md 审计 | 继续把所有规则设为启动必读 |
真正值得记住的不是某个插件的宣传数字,而是这个顺序:先确认消耗,再定位浪费属于输入、输出还是检索路径,最后只在对应环节加工具。 对大多数团队,/context、/clear 与瘦身后的项目规则已经是零成本的第一步;当数据证明 CLI 输出或大型代码库探索才是主因时,再引入 rtk 或 CodeGraph,会比“全套安装”更可靠。
来源与开源地址
- 参考文章:How I Stopped Running out of Tokens
- Claude Code:Manage costs effectively
- Claude Code:Monitoring usage
- Claude Code Usage Monitor(GitHub)
- rtk(GitHub)
- Caveman(GitHub)
- CodeGraph(GitHub)
编辑注:本文的功能、命令和安装路径以链接中的官方文档与仓库为准;安装远程脚本、启用 hooks 或给 agent 配置 MCP 前,请按团队安全流程审阅其权限与脚本内容。