上下文预算¶
分析 Claude Code 会话中加载的所有组件的 Token 开销,并显示用于恢复上下文空间的实用优化。
使用时机¶
- 会话性能下降或输出质量下降时
- 添加了许多技能、代理或 MCP 服务器之后
- 想要确认实际拥有的上下文余量时
- 计划添加组件,并想确认是否有空间时
- 运行
/context-budget命令时(此技能支持该命令)
工作原理¶
阶段 1:清单¶
扫描所有组件目录并估算 Token 消耗:
代理 (agents/*.md)
- 统计每个文件的行数和 Token(单词数 × 1.3)
- 提取 description 前置元数据的长度
- 标记:超过 200 行的文件(过重)、超过 30 个单词的 description(膨胀的前置元数据)
技能 (skills/*/SKILL.md)
- 统计每个 SKILL.md 的 Token
- 标记:超过 400 行的文件
- 检查 .agents/skills/ 中的重复副本 — 为避免重复计数,跳过相同副本
规则 (rules/**/*.md)
- 统计每个文件的 Token
- 标记:超过 100 行的文件
- 检测同一语言模块内规则文件之间的内容重复
MCP 服务器 (.mcp.json 或活动 MCP 配置)
- 统计已配置服务器数量和工具总数
- 估算每个工具的 Schema 开销约为 500 Token
- 标记:拥有 20 个以上工具的服务器,以及包装简单 CLI 命令(gh、git、npm、supabase、vercel)的服务器
CLAUDE.md(项目 + 用户级别) - 统计 CLAUDE.md 链中每个文件的 Token - 标记:总计超过 300 行
阶段 2:分类¶
将所有组件分类到桶中:
| 类别 | 标准 | 操作 |
|---|---|---|
| 始终需要 | 在 CLAUDE.md 中引用、支持活动命令,或匹配当前项目类型 | 保留 |
| 偶尔需要 | 领域特定(例如:语言模式),未在 CLAUDE.md 中引用 | 考虑按需激活 |
| 很少需要 | 无命令引用、内容重复,或无明显项目匹配 | 删除或延迟加载 |
阶段 3:问题检测¶
识别以下问题模式:
- 膨胀的代理 description — 前置元数据中超过 30 个单词的 description 会在每次 Task 工具调用时加载
- 过重的代理 — 超过 200 行的文件会在每次生成时膨胀 Task 工具的上下文
- 冗余组件 — 复制代理逻辑的技能,复制 CLAUDE.md 的规则
- MCP 过度订阅 — 10 个以上服务器,或包装可免费使用的 CLI 工具的服务器
- CLAUDE.md 膨胀 — 冗余说明、过时章节、本应成为规则的指令
阶段 4:报告¶
生成上下文预算报告:
Context Budget Report
═══════════════════════════════════════
Total estimated overhead: ~XX,XXX tokens
Context model: Claude Sonnet (200K window)
Effective available context: ~XXX,XXX tokens (XX%)
Component Breakdown:
┌─────────────────┬────────┬───────────┐
│ Component │ Count │ Tokens │
├─────────────────┼────────┼───────────┤
│ Agents │ N │ ~X,XXX │
│ Skills │ N │ ~X,XXX │
│ Rules │ N │ ~X,XXX │
│ MCP tools │ N │ ~XX,XXX │
│ CLAUDE.md │ N │ ~X,XXX │
└─────────────────┴────────┴───────────┘
WARNING: Issues Found (N):
[ranked by token savings]
Top 3 Optimizations:
1. [action] → save ~X,XXX tokens
2. [action] → save ~X,XXX tokens
3. [action] → save ~X,XXX tokens
Potential savings: ~XX,XXX tokens (XX% of current overhead)
详细模式还会输出每个文件的 Token 数、最重文件的逐行明细、重复组件之间特定的冗余行,以及包含每个工具 Schema 大小估算的 MCP 工具列表。
示例¶
基本审计
User: /context-budget
Skill: Scans setup → 16 agents (12,400 tokens), 28 skills (6,200), 87 MCP tools (43,500), 2 CLAUDE.md (1,200)
Flags: 3 heavy agents, 14 MCP servers (3 CLI-replaceable)
Top saving: remove 3 MCP servers → -27,500 tokens (47% overhead reduction)
详细模式
User: /context-budget --verbose
Skill: Full report + per-file breakdown showing planner.md (213 lines, 1,840 tokens),
MCP tool list with per-tool sizes, duplicated rule lines side by side
扩展前检查
User: I want to add 5 more MCP servers, do I have room?
Skill: Current overhead 33% → adding 5 servers (~50 tools) would add ~25,000 tokens → pushes to 45% overhead
Recommendation: remove 2 CLI-replaceable servers first to stay under 40%
最佳实践¶
- Token 估算:散文使用
単語数 × 1.3,代码较多的文件使用文字数 / 4 - MCP 是最大杠杆:每个工具 Schema 大约消耗 500 Token。拥有 30 个工具的服务器比所有技能加起来消耗更多
- 代理 description 始终加载:即使代理未被调用,其 description 字段也会存在于所有 Task 工具的上下文中
- 调试使用详细模式:仅在需要准确识别特定文件正在驱动开销时使用,不要用于常规审计
- 变更后审计:在添加代理、技能或 MCP 服务器后运行,以尽早捕获开销增长
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC