Claude Code 速度优化
一、背景
Claude Code 在会话开始时会一次性把以下内容塞进 system prompt:
- Skills(个人 + plugin)
- MCP server instructions
- CLAUDE.md 全局指令
- Tool definitions
结果就是冷启动慢、context 消耗大。下面整理几条已经验证过的优化手段。
二、已验证的优化
1.1 skillListingFraction — 减少 Skill 描述预算
文件:~/.claude/settings.json
1 | { |
作用:把 skill 描述预算从默认 1% 降到 0.5% context window,每条 skill 描述消耗的 token 随之下降。
生效:重启 Claude Code 后生效。
1.2 disable-model-invocation — 禁用自动加载
文件:~/.claude/skills/{skill-name}/SKILL.md
1 |
|
作用:Skill 完全不进入 system prompt,只有显式 /skill-name 调用时才加载。
适用:个人 skills(~/.claude/skills/)。
不支持:Plugin skills(~/.claude/plugins/)—— 这是官方问题 #22345。
1.3 skillOverrides — 部分 skill 只显示名称
文件:~/.claude/settings.json
1 | { |
作用:指定 skill 在 system prompt 中只显示名称,不显示描述,进一步压缩 token。
三、官方 Plugin Skills 拆分方案
来源:Issue #44371
Plugin skills 的 SKILL.md 体积过大时,官方建议把内容拆出去:
1 | --- |
把详细步骤放到 procedure.md,skill 执行时再用 Read 工具按需加载。
效果:冷启动从 ~34K tokens 降到 ~3K tokens。
注意:Plugin skills 你不能直接修改,这个 workaround 只适用于自己写的 skills。
四、已知问题跟踪
| Issue | 问题 | 状态 |
|---|---|---|
| #22345 | Plugin skills 不支持 disable-model-invocation |
官方确认,开放 |
| #34940 | 已禁用的 plugin skills 仍然出现在 system prompt | Bug |
| #44371 | Plugin skills 启动时加载完整 SKILL.md | 已提供 workaround |
| #57074 | Lazy-load skill catalog | Feature Request |
五、诊断工具
运行 /doctor 可以查看:
- Skill 预算是否溢出
- 哪些 skill 被截断
- System prompt 当前状态
六、配置清单
| 优化项 | 文件位置 | 效果 |
|---|---|---|
skillListingFraction: 0.005 |
~/.claude/settings.json |
减少 skill 描述预算 |
disable-model-invocation: true |
~/.claude/skills/*/SKILL.md |
禁用自动加载(仅个人 skills) |
skillOverrides |
~/.claude/settings.json |
指定 skill 只显示名称 |
--bare |
CLI flag | 最小模式(会跳过必要加载,不推荐) |
七、官方文档参考
模型版本说明
本文涉及的「Claude Code」为产品名称,未绑定具体底层模型版本。实际调用的模型由 Claude Code 运行时按官方策略决定,以发布时官方文档为准。如需精确控制,请查阅 Claude Code 文档 中关于模型选择的章节。