你以为 skills 装完就完事了?今天 skill-doctor 把这件事用上下文账单透明了

写过 Claude Code 的人大概都踩过这个坑——skills 越装越多,上下文窗口却越来越不禁用。今天 skill-doctor 把这件事用账单透明了。


context 是 Claude Code 里最贵的货币。每次发指令、每次读文件、每次调用工具,token 都在消耗。当你的项目装了十几个 skills,有些是刚装上随手试的,有些是别人推荐的,有些是半年前装的早就忘了,这些 skills 真的会安安静静躺在那里什么都不做吗?

不会。它们每个都会在每次对话轮次里悄悄往 context 里塞一截——哪怕你从来没在 prompt 里提过它们。

这就是 skill-doctor 要解决的问题。

skill-doctor 是 Claude Code v2.1.261(2026-09-04)新增的命令。输入之后,它会列出当前会话里所有已加载的 skills,然后告诉你两件事:这个 skill 在当前对话里实际被调用过几次,以及它在这一轮里消耗了多少 context。

/skill-doctor

输出大概是这个样子:

Loaded skills (7):
  checkup              used ×12   48K context
  git-mcp              used ×0    31K context   ← 没调用过但占 31K
  docs-search          used ×3    22K context
  test-helper          used ×0    28K context   ← 没调用过
  shell-utils          used ×7    15K context
  ...

30K 的 skills 装完一轮都没用过,占的 token 够你多问三四个问题。这个浪费在单次对话里看起来很小,但如果你每天和 Claude Code 聊几十轮,每轮都背着一堆没用的 skills——积少成多,prompt-cache 的 miss 率也会跟着上来。

context 预算被悄悄蚕食,这个过程没有任何报错,没有任何警告。你只是觉得 Claude 越来越记性差了,或者跑到一半就开始忘事。大多数人第一反应是换模型,而不是查 skills 账单。

skill-doctor 把这个黑盒揭开了。


怎么用

第一步:确保你的 Claude Code 是最新版本,然后直接敲 /skill-doctor。

# 检查版本
claude --version
# 升级(如果需要)
npm update -g @anthropic/claude-code

第二步:看输出。重点关注这两列:

  • used ×0:你装了这个 skill 但整轮对话都没触发它
  • context 列:它在这一轮里占的 token 数量

used ×0 的 skills 里,context 消耗越高的越值得注意——它们可能包含大量工具定义或者很长的 system prompt。

第三步:诊断完了做什么

如果一个 skill 从未被调用,先确认它是不是只在特定场景才用得到(比如只在某个目录下、只在特定文件类型时才触发)。如果不是,直接在 settings.local.json 里删掉它,或者用 /skills 命令查看已加载 skills 列表,手动卸载。

// settings.local.json
{
  skills: {
    git-mcp: false,    // 关掉
    docs-search: true   // 保留
  }
}

第四步:定个节奏。每周跑一次 /skill-doctor,定期清理。就像你给项目删 dead code 一样,skills 也需要定期审计。


skill-doctor 帮你省的不只是 token

减少 context 消耗还有一个连带好处:prompt-cache 的命中率会变高。Claude Code 用 prompt caching 降低重复发送 system prompt 和工具定义的成本——但如果你的 context 里堆了一堆从来没被调用过的 skill 工具定义,这些也会进缓存池,白白占用缓存额度。清理掉未使用的 skills,缓存池会更干净,每次轮次的实际缓存命中率就会上升。

另外,bashOutputMaxChars 和 taskOutputMaxChars 两个新设置(同样是 v2.1.261)也值得顺手配一下:它们把命令行输出和后台任务输出的内联上限从默认提升到了 128K 字符,让你不用频繁面对输出太长被截到文件里的情况。

// settings.local.json
{
  bashOutputMaxChars: 131072,
  taskOutputMaxChars: 131072
}

下一步

打开你的 Claude Code,敲 /skill-doctor,看看你装了多少个从来没用过的 skills。这个操作不超过两分钟,但换来的可能是接下来每次对话都多出 20-30% 的可用 context。

别等 Claude 变慢了你再去排查。从今天起,把 skills 当成你项目里的依赖——装了不用,就该删。

评论区

0 条评论

登录后可评论。

小智·AI工具控 51 阅读