小模型+好 Skill ≈ 大模型裸跑,怎么做到的
你有没有这种感觉——
agent 的配置文件越写越长,CLAUDE.md 从 10 行变成了 200 行,rules 加了一堆,skills 也搞了好几个。然后呢?它干活的质量好像没什么变化,有时候甚至更差了。
我也一样。直到最近看到一篇论文,才搞明白为什么。
一篇论文让我挺意外
CMU 和几所大学的研究者发布了 SkillsBench,这是第一个系统评估 “Agent Skills 到底有没有用” 的 benchmark。84 个任务,11 个领域,7308 条测试轨迹。
三个发现让我很意外:
发现一:人写的 Skill 平均提升 16.2 个百分点,但 AI 自己生成的 Skill 增益为零。
你没看错,为零。模型能从好 Skill 中受益,但自己写不出好 Skill。这说明"知道怎么做"和"知道什么"是两回事。我之前让 agent 自动总结经验写 SKILL.md 的做法,大概率是在做无用功。
发现二:聚焦 2-3 个模块的 Skill 效果最好,大而全的反而差。
最佳长度在 200-800 tokens。一个 Skill 只解决一类问题就够了。我回头看了自己写的 Skill 文件,最大的一个有 3000 多 tokens,塞了流程描述、脚本清单、文件结构、错误处理……全在一个文件里。
发现三:有些场景下,Skill 反而让模型变差。
什么时候?纯计算任务(Skill 让它犹豫)、模型已经准确率 90% 以上的领域(加了只是噪音)、还有过于死板的 step-by-step(阻止模型找更好的路径)。平均掉分 11 个百分点。
<figure><img src=“images/01-skillsbench-findings.png” alt=“01-skillsbench-findings”></figure>
为什么给多了反而蠢
Jason Zuo 的一篇文章给了我一个好的思考框架。他引用了 CMU 和 NYU 的另一篇论文里的概念:Epiplexity。
说白了就是:算力有限的观察者,能从数据里提取多少有用的结构。
你的 agent 就是一个"算力有限的观察者"。它有 context window 上限,有 attention 偏好(开头和结尾比中间好用),还有 compaction 导致的信息丢失。
在这个框架下,结论很直觉:输入里的结构密度比信息总量重要。
你塞了 3000 tokens 的流程文档进去,里面真正影响决策的可能只有 300 tokens。剩下的 2700 tokens 不是"备查参考",而是噪音——它稀释了有用信息的占比,让模型更难找到真正该关注的东西。
这也解释了为什么 @systematicls 那篇 7000+ 赞的实践帖里反复强调:极简启动、研究和实现分离、CLAUDE.md 当路由表不当百科全书。
不是因为他偏好极简主义。是因为少给,agent 才能更好地提取结构。
我们实际做了什么
看完这些,我决定拿自己的 agent 系统开刀。
第一刀:SKILL.md 瘦身。
拿 daily-digest(每日资讯管线)的 SKILL.md 做实验。原来 11484 bytes,塞了发布流程、平台操作、Telegram 模板、文件结构、成功指标……什么都有。
改成两段式:决策树(if-then 判断逻辑)+ 常见陷阱(从真实犯错记录里提取的反模式)。详细操作全部移到 references/ 目录,按需读取。
结果:11484 → 3279 bytes,减了 71%。信息没丢,只是从"全量预加载"变成了"路由按需读取"。
第二刀:Bootstrap context 路由化。
这是更大的一刀。我的 agent 每次启动要加载 8 个文件,其中 MEMORY.md 塞了 Chrome 端口配置、Proxy 代码行号、已修复 bug 的详细过程——这些 70% 的对话根本用不到。昨天的 memory 日志 18000 多 bytes,每次全量注入。
改法:
- MEMORY.md 变路由表。详细内容移到 refs/ 按需读取
- 昨天的 memory 只加载一段 5-8 行的 TL;DR,不加载全文
- 加载顺序调整:身份文件放最前面(利用 attention 的 primacy 效应)
结果:bootstrap 从 ~12200 tokens 降到 ~3800 tokens,减了 69%。
<figure><img src=“images/02-before-after.png” alt=“02-before-after”></figure>
第三刀:禁止 AI 自写 Skill。
SkillsBench 的数据太硬了,self-generated 增益为零。改成规则:agent 执行完任务只记 raw log,Skill 提炼由人审一遍再定稿。人花 30 分钟写的 Skill,抵得上 agent 自动生成 10 个。
你今天就能做的三件事
1. 数数你的 bootstrap context 有多少 tokens。
把所有 always-on 的配置文件加起来,用 wc -c 看看总字节数。除以 3 大概就是 token 数。超过 5000 tokens 就该想想哪些是每条消息都需要的,哪些可以按需加载。
2. 检查你的 Skill / Rules 文件有没有超过 800 tokens。
超了就拆。核心保留两样东西:判断逻辑(什么时候做什么)和反模式(别踩什么坑)。流程细节、命令列表、配置参数,全部移到单独文件按需读取。
3. 如果你在让 agent 自己写 Skill,停了吧。
让它记 log 就好。提炼有用模式这件事,目前还是人做得更好。等未来模型进化了再说。
参考来源:
- SkillsBench: Evaluating Agent Skills — CMU 等,84 任务 / 7308 轨迹
- From Entropy to Epiplexity — CMU/NYU, 2026
- Jason Zuo: Agent 的信息经济学 — Epiplexity 实战
- @systematicls: How To Be A World-Class Agentic Engineer — 7000+ 赞