Claude 与 Skill
实测 Claude Code 每次请求的隐藏开销:283 个 Skill 里 220 个描述已被挤掉
作者通过解析 Claude Code 的会话 transcript,精确测出每次请求在用户开口前就带上了 74,500 tokens,其中约 22,000 来自自己装的插件、Skill、MCP 和 hooks。更关键的发现是:skill 列表超过约 3 万字符后描述会被丢弃,只留光秃秃的名字,导致模型选不准 Skill。作者据此开源了 Rust 工具 deadweight,可一键定位并清理无用配置。
怎么测出来的
- Claude Code 会把每个会话写到 ~/.claude/projects/<project>/<session>.jsonl,其中记录了启动时加载的 skill_listing、deferred_tools_delta、mcp_instructions_delta、agent_listing_delta 和 hook 输出
- 每次 API 调用的 usage 字段里有 input_tokens、cache_creation_input_tokens、cache_read_input_tokens 三项,加起来就是首个请求的精确计费大小
- 作者首日第一条消息就带 74,500 tokens,其中约 22,000 来自自己几个月里装的插件、Skill、MCP 服务器和 hooks,且每个会话每一轮都会重复发送
意外发现:超过约 3 万字符,Skill 描述就没了
- skill_listing 在所有会话里都稳定在约 30,000 字符,装得太多时 Claude Code 会丢弃描述只保留名字
- 作者的 283 个 Skill 中有 220 个只剩名字;另一个装了 672 个 Skill 的旧会话里 642 个没有描述
- 描述正是模型决定何时调用某个 Skill 的依据,像 review 或 start 这种光名字几乎不提供信息
- 装「以防万一」的 Skill 不只浪费 tokens,还会把你真正依赖的 Skill 的描述挤出去——每加一个插件都是对现有工具的负外部性
- 约 3 万字符是作者观察到的现象,不是官方文档,版本间可能变化
清点出的其他问题
- 有 MCP 服务器连续几周每次启动都连接失败
- 36 个从未登录的 MCP 服务器仍在列出 authenticate 等认证工具
- 两个插件带了同名 Skill;一个 Skill 光描述就吃掉约 3,000 tokens,而作者只用过一次
- 283 个 Skill 里 272 个在 30 天内没用过
deadweight:定位并清理无用配置
- 读取同样的 transcript,按插件、Skill、MCP 服务器、hook 逐项归因 tokens 开销,并扫描最近 30 天(含 subagent)的实际调用记录
- 示例输出:61.2k tokens 中约 19.4k 来自用户配置,最大来源是 github MCP(91 个工具约 3.9k)和从未用过的 kitchen-sink 插件(64 工具 22 Skill 约 3.6k)
- deadweight fix 会禁用未用插件、把未用 Skill 移到备份目录,deadweight undo 可恢复;示例中省下约 6.8k tokens/请求
- 安全设计:默认只读、不删除任何东西、每次运行写 manifest 和 settings.json 备份到 ~/.claude/deadweight/backups/、带 hooks 的插件默认跳过(需 --include-hooked)、少于 5 个会话时拒绝执行、不读取任何密钥也不联网
- 用 Rust 写成单二进制,rayon 并行扫描加子串预过滤,1.4 GB transcript、41 个会话加 400+ subagent 运行约 1 秒扫完
用 Claude Code 结对开发与注意事项
- 作者用 Claude Code 当结对程序员:调研现有工具、逆向 transcript 格式、写 Rust 和针对假 ~/.claude 目录的端到端测试
- 测试提前抓到一个真实 bug:plugin:skill 形式的名字在错误的冒号处被切分,导致一个 Skill 的大小被算到邻居头上
- 注意事项:总量是实测的,但逐项拆分按文本长度估算(本地没有 tokenizer);transcript 默认 30 天后清理,所以「未使用」只能回看这么久,常用但低频的东西用 --keep 保护
为什么缓存也救不了你
- 评论区指出:即使开了 prompt caching,22,000 tokens 的配置块在新会话启动或缓存 TTL 过期时仍要重新评估
- 这些开销还会提前占满上下文窗口,让会话更早触发 compact
原文:I measured what my Claude Code setup costs on every request. Most of my skills had gone blank.
来源:DEV Community · 2026-11-12
查看原文本文由 AI 阅读原文后整理,未经人工逐字核对,内容以原文为准。
登录后可以点赞、查看和发表评论