Skip to content

Agent 上下文也是预算:Skill 装太多时怎么砍

能力目录可以很长;每次会话真正塞得进窗口的说明很短。
装了上百个 skill 却感觉模型变笨,往往不是模型突然坏了,是预算被说明文档和工具 schema 吃掉了。

本站有一篇 Skills 全量清单,把本机 skill 按方向列开。清单解决「有什么」;这篇解决「是不是太多,以及怎么瘦」。


一、先建立数量级直觉

一次会话里,大致会占用上下文的东西:

来源典型特征
系统与工具定义始终在,MCP 工具一多就很显眼
项目 CLAUDE.md / 规则几乎每轮相关
Skill 的 description常驻匹配层;写长了等于常驻税
被触发的 Skill 正文匹配中才整篇读入
对话历史与文件附件随会话增长
检索到的代码片段看你让它读了多少文件

关键差别:

  • description:偏「目录项」,影响会不会被选中,也占匹配相关的固定成本
  • 正文:触发后才重;写 200 行没问题,但别让 50 个 skill 的正文同时相关

经验上:MCP 工具 schema + 臃肿的全局说明,往往比「多两个项目级 skill」更伤。


二、四种该砍的信号

  1. 你说不清最近 30 天用过哪些 skill
  2. 同一意图有三个 skill 抢(code review ×3、写 PR ×2)
  3. 项目无关的行业包常驻用户级目录(物流、医疗 skill 装在纯前端机器上)
  4. 会话里频繁丢约束:刚说的「别动 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 分钟:

  1. 列出用户级 skill 目录
  2. 删掉或归档 30 天未触发、且说不清用途的
  3. 合并 description 高度重叠的
  4. 看 MCP 列表:哪个可用 CLI 替代
  5. 打开一份 CLAUDE.md,删过期命令

若有现成审计类 skill(名称因环境而异,本机清单里有 context-budget 一类),可以用它做盘点,但仍要 人决定删谁——工具只会排序,不会替你负业务责任。


七、最小结论

  • 上下文是硬预算,skill 数量不是收藏指标
  • 先砍 MCP 与空转 description,再砍重复正文
  • 项目约定进 CLAUDE.md,单流程进 skill,长教程进博客
  • 误触发 = 浪费预算 + 做错事,description 的排除句很值钱

相关阅读:Skills 全量清单 · 自己写 Skill · 项目说明书 · 学习路径

用代码记录成长 · RSS 订阅 · 标签