Top Token-Consuming
本地 Skill Token 消耗体量审计 —— 静态估算你安装的 skill 各自占多少 token,找出最吃上下文的「重型」skill。
它解决什么问题
WorkBuddy 的 skill 在触发时会把 SKILL.md + references/ + scripts/ 注入对话上下文,体量越大越占 token、越贵。但本地没有任何「按 skill 维度的真实 token 账本」,所以本工具换一个角度:
静态估算每个 skill 的「token 消耗体量」,按绝对阈值标红偏胖 skill,让你一眼看出"哪些 skill 最可能吃 token"。
它不是真实账单(真实消耗只在模型供应商账单里),而是体量评估——这已经能抓住真正的问题:内嵌大段 prompt、挂一堆 references、调一堆脚本的 skill,正是 token 消耗大户。
特性
- ✅ 只读审计:绝不修改、删除、移动任何文件。
- ✅ 授权门禁:扫描前必须向用户声明范围并获得确认(项目级需显式授权)。
- ✅ 纯本地、可移植:不联网、不依赖 WorkBuddy 内部数据库私有格式,升级不碎。
- ✅ 时间范围:按
usage-log.json的使用日期过滤(近一周 / 近一月 / 自定义区间)。 - ✅ 清晰排行:名称、功能、单次预估 token、区间使用次数、区间累计预估、异常标记。
安装
将本仓库作为 skill 放入用户级 skills 目录(~/.workbuddy/skills/top-token-consuming/),包含:
top-token-consuming/
├── SKILL.md # 技能定义(触发词 / 授权门禁 / 输出格式)
├── README.md # 本文件
├── scripts/scan.py # 只读扫描 + 估算 + 阈值 → Markdown 报表
└── references/threshold-defaults.md # 阈值与分词说明
用法
通过对话触发即可(见 SKILL.md 的触发词)。若想直接运行脚本:
python scripts/scan.py --skills-dir ~/.workbuddy/skills
常用参数:
| 参数 | 说明 | 默认 |
|---|---|---|
| --skills-dir | 扫描根目录(用户级 / 项目级) | ~/.workbuddy/skills |
| --threshold | 单次触发预估 token 异常阈值(支持 2000 / 2w / 2万 / 20k 单位) | 6000 |
| --range | week / month / all | all |
| --since / --until | 自定义日期区间 YYYY-MM-DD | — |
| --top | 仅显示前 N 个 | 全部 |
| --hide-unused | 隐藏时间范围内未使用的 skill | 关 |
| --detail | 追加每个 skill 最重文件明细 | 关 |
| --output / --json | 另存 Markdown / JSON 报告 | — |
输出示例
# 📊 Top Token-Consuming Skills
- 扫描范围时间:**全部时间**
- 异常阈值(单次触发预估 token ≥):**6,000**
- 已扫描 skill 数:**42** | 异常(偏胖)skill 数:**5**
- 全部 skill 单次预估 token 合计:**128,400**
- 最重 Top3:heavy-skill(9,200)、docs-bot(8,100)、video-fx(7,300)
| 排名 | Skill | 功能 | 单次预估token | 区间使用次数 | 区间累计预估(估算) | 异常 |
|---|---|---|---|---|---|---|
| 1 | heavy-skill | 大型多步骤交付文档生成… | 9,200 | 3 | 27,600 | 🔴 |
...
数据口径与限制
- 静态估算,非真实账单:本地无按 skill 的真实 token 记录,本工具估的是"体量"。
- 时间范围筛的是使用活动日期(
recentDates),不是真实逐日 token。 - recentDates 可能欠计数:过老区间可能漏算。
- 已卸载 skill 不可见:只扫当前磁盘已装的 skill。
- 分词近似:CJK 约 1 字 1 token,其余约 4 字符 1 token(详见
references/threshold-defaults.md)。
安全
- 全程只读;不联网;不修改任何文件。
- 项目级扫描需用户显式授权并指定路径。
微信扫一扫