主题
Agent 上下文也是预算:Skill 装太多时怎么砍
能力目录可以很长;每次会话真正塞得进窗口的说明很短。
装了上百个 skill 却感觉模型变笨,往往不是模型突然坏了,是预算被说明文档和工具 schema 吃掉了。
本站有一篇 Skills 全量清单,把本机 skill 按方向列开。清单解决「有什么」;这篇解决「是不是太多,以及怎么瘦」。
一、先建立数量级直觉
一次会话里,大致会占用上下文的东西:
| 来源 | 典型特征 |
|---|---|
| 系统与工具定义 | 始终在,MCP 工具一多就很显眼 |
项目 CLAUDE.md / 规则 | 几乎每轮相关 |
Skill 的 description | 常驻匹配层;写长了等于常驻税 |
| 被触发的 Skill 正文 | 匹配中才整篇读入 |
| 对话历史与文件附件 | 随会话增长 |
| 检索到的代码片段 | 看你让它读了多少文件 |
关键差别:
- description:偏「目录项」,影响会不会被选中,也占匹配相关的固定成本
- 正文:触发后才重;写 200 行没问题,但别让 50 个 skill 的正文同时相关
经验上:MCP 工具 schema + 臃肿的全局说明,往往比「多两个项目级 skill」更伤。
二、四种该砍的信号
- 你说不清最近 30 天用过哪些 skill
- 同一意图有三个 skill 抢(code review ×3、写 PR ×2)
- 项目无关的行业包常驻用户级目录(物流、医疗 skill 装在纯前端机器上)
- 会话里频繁丢约束:刚说的「别动 dist」三轮后就忘——窗口后部被挤掉了
出现 2 和 3 时,优先做减法,不要先加「管理 skill 的 skill」。
三、怎么砍:分层而不是一次性清空
1. 用户级 vs 项目级
| 层级 | 只放 |
|---|---|
用户 ~/.claude/skills | 跨仓库习惯:提交信息、通用 review 口吻 |
项目 .claude/skills | 依赖本仓库路径的流程(如本站发文) |
把「只有 NJCodeX 才成立的步骤」放在用户级,等于污染所有其它会话。
2. 合并重复
若三个 skill 都在说「写测试要先断言可见性」,合成一个,description 写全触发词。
匹配靠描述,不靠文件个数。
3. 正文外置
长参考表放到 references/,正文写「需要时再读 references/xxx」。
触发后 agent 仍可按需打开,不必每次全量灌进第一跳上下文。
4. MCP 先于 Skill 动刀
若接了「用 MCP 包一层 gh/npm」的服务器,而终端里原生 CLI 更稳,删 MCP 往往立刻省一大截 schema。
Skill 再多,也难比一组 30+ tools 的服务器更肥。
5. CLAUDE.md 保持瘦
全局说明书写禁区与命令即可;教程放到 docs/notes/。
参见 给 AI 写项目说明书。
四、description 怎么写才省又准
贵且没用的写法:
yaml
description: 帮助你更好地完成各类软件工程任务,提升效率与质量又准又相对省的写法:
yaml
description: >
在 NJCodeX 新增 notes 笔记并注册 sidebar。
用户说「发一篇笔记」「加篇文章」时使用。不要用于改 CSS。规则:
- 触发 原话 写进去
- 排除 写进去(减少误触发 → 少读错误正文)
- 避免散文;一行能说清不用一段
误触发的代价不只是做错事,还包括 读错一整份 SKILL.md。
五、和本站实践的对应
| 做法 | 预算含义 |
|---|---|
| 发文流程写成 skill,而不是每次粘贴 | 流程稳定,但不把全文塞进 CLAUDE.md |
| CLAUDE.md 写「测 dev、别 build 清站」 | 高频约束常驻,省重复纠正 |
| Skills 清单是博客文章,不是常驻 rule | 人查目录;不占每次会话 |
| a11y / 工程暗礁写成笔记 | 需要时再读链接,不预装进上下文 |
清单很长(上百 skill)时,更要在用户级做目录卫生:清单是地图,不是「全部装上才安心」。
六、一套可执行的月度节奏
每月 15 分钟:
- 列出用户级 skill 目录
- 删掉或归档 30 天未触发、且说不清用途的
- 合并 description 高度重叠的
- 看 MCP 列表:哪个可用 CLI 替代
- 打开一份
CLAUDE.md,删过期命令
若有现成审计类 skill(名称因环境而异,本机清单里有 context-budget 一类),可以用它做盘点,但仍要 人决定删谁——工具只会排序,不会替你负业务责任。
七、最小结论
- 上下文是硬预算,skill 数量不是收藏指标
- 先砍 MCP 与空转 description,再砍重复正文
- 项目约定进
CLAUDE.md,单流程进 skill,长教程进博客 - 误触发 = 浪费预算 + 做错事,description 的排除句很值钱
相关阅读:Skills 全量清单 · 自己写 Skill · 项目说明书 · 学习路径