mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-10 11:23:32 +08:00
144 lines
5.5 KiB
Markdown
144 lines
5.5 KiB
Markdown
---
|
||
name: context-budget
|
||
description: 审核Claude Code上下文窗口在代理、技能、MCP服务器和规则中的消耗情况。识别膨胀、冗余组件,并提供优先的令牌节省建议。
|
||
origin: ECC
|
||
---
|
||
|
||
# 上下文预算
|
||
|
||
分析 Claude Code 会话中每个已加载组件的令牌开销,并提供可操作的优化建议以回收上下文空间。
|
||
|
||
## 使用时机
|
||
|
||
* 会话性能感觉迟缓或输出质量下降
|
||
* 你最近添加了许多技能、代理或 MCP 服务器
|
||
* 你想知道实际有多少上下文余量
|
||
* 计划添加更多组件,需要知道是否有空间
|
||
* 运行 `/context-budget` 命令(本技能为其提供支持)
|
||
|
||
## 工作原理
|
||
|
||
### 阶段 1:清单
|
||
|
||
扫描所有组件目录并估算令牌消耗:
|
||
|
||
**代理** (`agents/*.md`)
|
||
|
||
* 统计每个文件的行数和令牌数(单词数 × 1.3)
|
||
* 提取 `description` 前言长度
|
||
* 标记:文件 >200 行(繁重),描述 >30 词(臃肿的前言)
|
||
|
||
**技能** (`skills/*/SKILL.md`)
|
||
|
||
* 统计 SKILL.md 的令牌数
|
||
* 标记:文件 >400 行
|
||
* 检查 `.agents/skills/` 中的重复副本 — 跳过相同副本以避免重复计数
|
||
|
||
**规则** (`rules/**/*.md`)
|
||
|
||
* 统计每个文件的令牌数
|
||
* 标记:文件 >100 行
|
||
* 检测同一语言模块中规则文件之间的内容重叠
|
||
|
||
**MCP 服务器** (`.mcp.json` 或活动的 MCP 配置)
|
||
|
||
* 统计配置的服务器数量和工具总数
|
||
* 估算模式开销约为每个工具 500 令牌
|
||
* 标记:工具数 >20 的服务器,包装简单 CLI 命令的服务器 (`gh`, `git`, `npm`, `supabase`, `vercel`)
|
||
|
||
**CLAUDE.md**(项目级 + 用户级)
|
||
|
||
* 统计 CLAUDE.md 链中每个文件的令牌数
|
||
* 标记:合并总数 >300 行
|
||
|
||
### 阶段 2:分类
|
||
|
||
将每个组件归入一个类别:
|
||
|
||
| 类别 | 标准 | 操作 |
|
||
|--------|----------|--------|
|
||
| **始终需要** | 在 CLAUDE.md 中被引用,支持活动命令,或匹配当前项目类型 | 保留 |
|
||
| **有时需要** | 特定领域(例如语言模式),未在 CLAUDE.md 中引用 | 考虑按需激活 |
|
||
| **很少需要** | 无命令引用,内容重叠,或无明显的项目匹配 | 移除或延迟加载 |
|
||
|
||
### 阶段 3:检测问题
|
||
|
||
识别以下问题模式:
|
||
|
||
* **臃肿的代理描述** — 前言中描述 >30 词,会在每次任务工具调用时加载
|
||
* **繁重的代理** — 文件 >200 行,每次生成时都会增加任务工具的上下文
|
||
* **冗余组件** — 重复代理逻辑的技能,重复 CLAUDE.md 的规则
|
||
* **MCP 超额订阅** — >10 个服务器,或包装了可免费使用的 CLI 工具的服务器
|
||
* **CLAUDE.md 臃肿** — 冗长的解释、过时的部分、本应成为规则的指令
|
||
|
||
### 阶段 4:报告
|
||
|
||
生成上下文预算报告:
|
||
|
||
```
|
||
上下文预算报告
|
||
═══════════════════════════════════════
|
||
|
||
总预估开销:约 XX,XXX 个词元
|
||
上下文模型:Claude Sonnet (200K 窗口)
|
||
有效可用上下文:约 XXX,XXX 个词元 (XX%)
|
||
|
||
组件细分:
|
||
┌─────────────────┬────────┬───────────┐
|
||
│ 组件 │ 数量 │ 词元数 │
|
||
├─────────────────┼────────┼───────────┤
|
||
│ Agents │ N │ ~X,XXX │
|
||
│ Skills │ N │ ~X,XXX │
|
||
│ Rules │ N │ ~X,XXX │
|
||
│ MCP tools │ N │ ~XX,XXX │
|
||
│ CLAUDE.md │ N │ ~X,XXX │
|
||
└─────────────────┴────────┴───────────┘
|
||
|
||
WARNING: 发现的问题 (N):
|
||
[按可节省词元数排序]
|
||
|
||
前 3 项优化建议:
|
||
1. [action] → 节省约 X,XXX 个词元
|
||
2. [action] → 节省约 X,XXX 个词元
|
||
3. [action] → 节省约 X,XXX 个词元
|
||
|
||
潜在节省空间:约 XX,XXX 个词元 (占当前开销的 XX%)
|
||
```
|
||
|
||
在详细模式下,额外输出每个文件的令牌计数、最繁重文件的行级细分、重叠组件之间的具体冗余行,以及 MCP 工具列表和每个工具模式大小的估算。
|
||
|
||
## 示例
|
||
|
||
**基本审计**
|
||
|
||
```
|
||
/context-budget
|
||
技能:扫描设置 → 16个代理(12,400个令牌),28个技能(6,200),87个MCP工具(43,500),2个CLAUDE.md(1,200)
|
||
标记:3个重型代理,14个MCP服务器(3个可替换为CLI)
|
||
最高节省:移除3个MCP服务器 → -27,500个令牌(减少47%开销)
|
||
```
|
||
|
||
**详细模式**
|
||
|
||
```
|
||
/context-budget --verbose
|
||
技能:完整报告 + 按文件细目显示 planner.md(213 行,1,840 个令牌),
|
||
MCP 工具列表及每个工具的大小,重复规则行并排显示
|
||
```
|
||
|
||
**扩容前检查**
|
||
|
||
```
|
||
User: 我想再添加5个MCP服务器,有空间吗?
|
||
Skill: 当前开销33% → 添加5个服务器(约50个工具)会增加约25,000个tokens → 开销将升至45%
|
||
建议:先移除2个可用CLI替代的服务器以保持在40%以下
|
||
```
|
||
|
||
## 最佳实践
|
||
|
||
* **令牌估算**:对散文使用 `words × 1.3`,对代码密集型文件使用 `chars / 4`
|
||
* **MCP 是最大的杠杆**:每个工具模式约消耗 500 令牌;一个 30 个工具的服务器开销超过你所有技能的总和
|
||
* **代理描述始终加载**:即使代理从未被调用,其描述字段也存在于每个任务工具上下文中
|
||
* **详细模式用于调试**:需要精确定位导致开销的确切文件时使用,而非用于常规审计
|
||
* **变更后审计**:添加任何代理、技能或 MCP 服务器后运行,以便及早发现增量
|